DE102021208010A1 - Hardware-rechenstruktur für tiefe gleichgewichtsmodelle - Google Patents

Hardware-rechenstruktur für tiefe gleichgewichtsmodelle Download PDF

Info

Publication number
DE102021208010A1
DE102021208010A1 DE102021208010.3A DE102021208010A DE102021208010A1 DE 102021208010 A1 DE102021208010 A1 DE 102021208010A1 DE 102021208010 A DE102021208010 A DE 102021208010A DE 102021208010 A1 DE102021208010 A1 DE 102021208010A1
Authority
DE
Germany
Prior art keywords
input
output
weight
root
deq
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021208010.3A
Other languages
English (en)
Inventor
Jeremy Zieg Kolter
Ken Wojciechowski
Sayyed Mahdi Kashmiri
Efthymios Papageorgiou
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of DE102021208010A1 publication Critical patent/DE102021208010A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Amplifiers (AREA)
  • Complex Calculations (AREA)

Abstract

Eine dynamische Gleichgewichts- (DEQ) Modellschaltung enthält einen ersten Multiplizierer, der dazu ausgelegt ist, eine Eingabe zu empfangen, die Eingabe mit einem ersten Gewicht zu skalieren und die skalierte Eingabe auszugeben, einen zweiten Multiplizierer, der dazu ausgelegt ist, eine Wurzel zu empfangen, die Wurzel mit einem zweiten Gewicht zu skalieren und die skalierte Wurzel auszugeben, einen Summierungsblock, der dazu ausgelegt ist, die skalierte Eingabe, eine Bias-Eingabe und die skalierte Wurzel zu kombinieren und eine nichtlineare Eingabe auszugeben, und eine erste nichtlineare Funktion, die dazu ausgelegt ist, die nichtlineare Eingabe zu empfangen und die Wurzel auszugeben, wobei das erste Gewicht und das zweite Gewicht auf einem trainierten DEQ-Modell eines neuronalen Netzes basieren.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft Computersysteme, die eine Fähigkeit zur künstlichen Intelligenz aufweisen, einschließlich neuronaler Netze.
  • HINTERGRUND
  • Aktuelle Modelle von tiefen neuronalen Netzen (DNN) basieren auf einem Ansatz, bei dem diese Netze aus Schichten bestehen. Während DNNs bei Klassifikationsaufgaben (Inferenz) sehr erfolgreich waren, nimmt die Größe der DNNs (die Anzahl der Schichten und Gewichte) mit zunehmender Schwierigkeit der Aufgaben zu. Mit zunehmender DNN-Größe steigt auch der erforderliche Speicher für Gewichte und nimmt auch die zur Implementierung des Netzes erforderliche Rechenleistung zu. Das dynamische Gleichgewichts-, DEQ, Modell unterscheidet sich von dem DNN, da es mit einer einzigen impliziten Schicht implementiert werden kann. Daher können die Anforderungen an den DEQ-Speicher für Training und Inferenz für eine gegebene Aufgabe viel geringer sein als bei DNN-basierten Netzen. Während jedoch der Speicherbedarf geringer ist, sind die Rechenanforderungen bei aktuellen Instanziierungen erheblich höher als bei herkömmlichen Netzen. Beispielsweise können die DEQ-Rechenanforderungen typischerweise das 2 bis 3-fache der Rechenkosten betragen; dies kann Hindernisse für den praktischen Einsatz solcher Verfahren aufwerfen. Dies liegt daran, dass bei dem DEQ-Verfahren die Inferenz effektiv die Lösung oder den Gleichgewichtspunkt eines nichtlinearen Systems von Differentialgleichungen unter Verwendung einer Wurzelfindungstechnik berechnet. Die Wurzelfindung kann aufgrund ihrer iterativen Natur eine große Rechenlast darstellen und höhere Kosten verursachen als die Rechenlasten tiefer, mehrschichtiger neuronaler Netze. Die Wurzelfindung unter Verwendung von zeitkontinuierlichen analogen Schaltungen kann jedoch mit hoher Effizienz (niedriger Energie), Geschwindigkeit und Genauigkeit im Vergleich zu iterativen Verfahren durchgeführt werden, die zum Finden von Wurzeln in einem digitalen System erforderlich sind. Dies kann daran liegen, dass analoge Systeme so entworfen werden können, dass sie im Laufe der Zeit auf natürliche Weise ihren Gleichgewichtspunkt finden oder sich einzupendeln. Die Offenbarung beschreibt detailliert, wie DEQ-Modelle mit zeitkontinuierlichen Analog- oder Mischsignalschaltungen implementiert werden können, die hocheffiziente Deep-Learning-Netze für Edge-Computing ermöglichen können. Die unten beschriebenen Systeme können DEQ-Modelle in Analog- oder Mischsignalschaltungen implementieren, und umfassen Architekturen zum Implementieren von DEQ-Modellen in Analog- oder Mischsignalschaltungen.
  • KURZDARSTELLUNG
  • Gemäß einer Ausführungsform enthält eine dynamische Gleichgewichts- (DEQ) Modellschaltung einen ersten Multiplizierer, der dazu ausgelegt ist, eine Eingabe zu empfangen, die Eingabe mit einem ersten Gewicht zu skalieren, und die skalierte Eingabe auszugeben, einen zweiten Multiplizierer, der dazu ausgelegt ist, eine Wurzel zu empfangen, die Wurzel mit einem zweiten Gewicht zu skalieren, und die skalierte Wurzel ausgeben, einen Summierungsblock, der dazu ausgelegt ist, die skalierte Eingabe, eine Bias-Eingabe und die skalierte Wurzel zu kombinieren und eine nichtlineare Eingabe auszugeben, und eine erste nichtlineare Funktion, die dazu ausgelegt ist, die nichtlineare Eingabe zu empfangen und die Wurzel auszugeben, wobei das erste Gewicht und das zweite Gewicht auf einem trainierten DEQ-Modell eines neuronalen Netzes basieren.
  • Gemäß einer zweiten Ausführungsform enthält eine dynamische Gleichgewichts-(DEQ) Modellschaltung einen ersten Multiplizierer, der dazu ausgelegt ist, eine Eingabe zu empfangen, die Eingabe mit einem ersten Gewicht zu skalieren, und die skalierte Eingabe auszugeben, einen zweiten Multiplizierer, der dazu ausgelegt ist, eine Wurzel zu empfangen, die Wurzel mit einem zweiten Gewicht zu skalieren, und die skalierte Wurzel auszugeben, einen Summierungsblock, der dazu ausgelegt ist, die skalierte Eingabe und die skalierte Wurzel zu kombinieren, wobei der Summierungsblock dazu ausgelegt ist, eine nichtlineare Eingabe auszugeben, und eine erste nichtlineare Funktion, die dazu ausgelegt ist, die nichtlineare Eingabe zu empfangen und die Wurzel auszugeben, wobei das erste Gewicht und das zweite Gewicht auf einem trainierten DEQ-Modell eines neuronalen Netzes basieren.
  • Gemäß einer dritten Ausführungsform enthält eine dynamische Gleichgewichts-(DEQ) Modellschaltung eine Rechenstruktur, die dazu ausgelegt ist, eine Eingabe an einem Zeilentreiber der Rechenstruktur zu empfangen und die Eingabe mit einem ersten Gewicht und einem zweiten Gewicht zu skalieren und eine Wurzel auszugeben, wobei die Skalierung unter Verwendung einer oder mehrerer elektrischer Komponenten erfolgt, und eine Ausgabeschicht, die dazu ausgelegt ist, die Wurzel zu empfangen, wobei die Ausgabeschicht ferner dazu ausgelegt ist, eine skalierte Wurzel als Reaktion auf die Wurzel und eine erste nichtlineare Funktion auszugeben, wobei das erste Gewicht und zweite Gewicht auf einem trainierten DEQ-Modell eines neuronalen Netzes basieren, wobei die Ausgabeschicht eine oder mehrere elektrische Komponenten aufweist.
  • Figurenliste
    • 1 veranschaulicht eine Darstellung eines DEQ-Netzes.
    • 2 veranschaulicht eine Ausführungsform eines Signalflussdiagramms für DEQ-Netze.
    • 3 veranschaulicht eine Ausführungsform einer einfachen Inverterschaltung 300 mit einem nichtlinearen Verstärker 309.
    • 4 veranschaulicht ein Beispiel für ein Multi-Eingabe-, Multi-Zustands-DEQ-Modell, das auf invertierenden Verstärkern basiert.
    • 5 veranschaulicht ein DEQ-Netz 500, das mit einer Rechenstruktur 503 und einer Ausgabeschicht 504 implementiert ist.
    • 6 veranschaulicht ein Beispiel für eine Rechenstruktur 600.
    • 7 eine Veranschaulichung einer Ausführungsform einer allgemeinen Rechenstruktur, die verwendet werden kann, um ein DEQ-Netz zu implementieren.
    • 8 veranschaulicht, wie das Bias mit der Rechenstruktur verwendet werden kann.
    • 9 veranschaulicht eine alternative Ausführungsform, die eine Ausführungsform der Ausgabeschichtberechnung zeigt, die in die Rechenstruktur integriert ist.
    • 10 ist ein Beispiel für ein zeitkontinuierliches DEQ-Netz, dessen Ausgabe eine zeitkontinuierliche Funktion sowohl der aktuellen als auch der vorherigen Ein- und Ausgaben ist.
    • 11 ist ein Beispiel für ein zeitdiskretes DEQ-Netz, dessen Ausgabe eine zeitdiskrete Funktion der aktuellen und vorherigen Ein- und Ausgaben ist.
    • 12 veranschaulicht ein Signalflussdiagramm für eine zeitdiskrete Implementierung eines DEQ-Netzes ohne Abhängigkeit von vorherigen Ein- oder Ausgaben.
    • 13 veranschaulicht Wellenformen für ein zeitdiskretes DEQ-System einer Ausführungsform aus 12.
    • 14 veranschaulicht ein Signalflussdiagramm für die zeitdiskrete DEQ-Implementierung mit zusätzlichen verzögerten Eingaben und Rückkopplung.
    • 15 veranschaulicht ein Blockdiagramm eines In-Memory-Berechnungs-MAC-Blocks.
    • 16 veranschaulicht eine 4x4-Teilmenge eines Arrays, wie etwa eine 4x4-Teilmenge eines N×M-Arrays.
    • 17(a)-(g) veranschaulicht eine Reihe von Techniken, um die gezeigte Architektur zu erweitern, um auf Gewichte mit höherer Auflösung, Eingabeaktivierungen mit höherer Auflösung und Differentialoperationen zu skalieren.
    • 18(a)-(h) veranschaulicht beispielhafte Schnittstellenschaltungen.
    • 19 veranschaulicht ein Beispiel für einen CMOS-Halbleiterprozess.
    • 20(a)-(e) veranschaulicht verschiedene Beispiele für Ausführungsformen zwischen Verbindungen einer Einheitszelle mit einer Wortleitung und einer Bitleitung, und interne Verbindungen in der Einheitszelle.
    • 21 veranschaulicht ein Beispiel einer ROM-basierten Recheneinheit mit einem einzelnen Transistor (1T), die eine erste Implementierung verwendet.
    • 22 veranschaulicht eine alternative Implementierung, die einen einzelnen Transistor als Einheitselement verwendet.
    • 23 veranschaulicht eine alternative Ausführungsform, die einen einzelnen Transistor als Einheitselement verwendet.
    • 24 veranschaulicht eine Implementierung eines ROM-basierten MAC-Arrays, das einen einzelnen Kondensator als Einheitselement verwendet.
    • 25 veranschaulicht eine alternative Ausführungsform eines ROM-basierten MAC-Arrays, das einen einzelnen Kondensator als Einheitselement verwendet.
    • 26(a)-(b) veranschaulicht eine Implementierung eines ROM-basierten MAC-Arrays, das einen einzelnen Transistor und einen einzelnen Kondensator in dem Einheitselement verwendet.
    • 27(a)-(b) veranschaulicht eine alternative Implementierung mit einem einzelnen Transistor und Kondensator als Einheitselement.
    • 28 veranschaulicht eine Implementierung mit zwei Transistoren und einem Kondensator in dem Einheitselement.
    • 29 veranschaulicht eine Ausführungsform einer ROM-basierten Recheneinheit mit einem einzelnen Transistor und einem einzelnen Kondensator.
    • 30 veranschaulicht eine Ausführungsform eines ROM-basierten MAC-Arrays, das einen einzelnen Widerstand als Einheitselement verwendet.
    • 31(a)-(d) veranschaulicht mehrere Ausführungsformen von Recheneinheiten innerhalb eines IMC-basierten Prozessors für einen beliebigen maschinellen Lernalgorithmus.
    • 32(a-d) veranschaulicht eine Ausführungsform, bei der verschiedene Typen von Einheitszellen verschachtelt und mit derselben Bitleitung verbunden sind.
    • 33(a)-(d) veranschaulicht eine Ausführungsform einer Recheneinheit, die sowohl ROM als auch RAM kombiniert.
    • 34(a)-(d) veranschaulicht verschiedene Ausführungsformen eines 3D-gestapelten ROM-basierten IMC-Arrays.
    • 35(a)-(c) veranschaulicht ein Beispiel für eine „Edge“-Sensorvorrichtung.
    • 36 veranschaulicht eine Ausführungsform einer analogen Multiplikations- und Additionsoperation, die durch ein Crossbar-Netz implementiert wird.
    • 37(a)-(b) zeigt ein Crossbar-Netz mit pulsweitenmodulierten Aktivierungssignalen und in Speichern eingebetteten Binärgewichten.
    • 38(a)-(c) ein Memristor-basiertes Crossbar-Netz, das mit pulsweitenmodulierten Aktivierungen aktiviert und in der Amplitudendomäne mit Analog-Digital-Wandlern in der Amplitudendomäne ausgelesen wird.
    • 39(a)-(c) veranschaulicht eine zeitbasierte Schnittstelle zu einem Punktprodukt berechnenden Crossbar-Netz.
    • 40(a)-(c) veranschaulicht ein Funktionsblockdiagramm und die Operation der vorgeschlagenen Zeitdomänenschnittstelle zu einer Mischsignal-Punktprodukt-Rechenhardware.
    • 41(a)-(c) veranschaulicht ein Multilevel-Aktivierungs-Eingabe-, Multilevel-Punktprodukt-Ausgabe-, SRAM-basiertes In-Memory-Berechnungs-Crossbar-Netz.
    • 42(a)-(b) veranschaulicht eine SRAM-basierte Multilevel-Eingabe-Multilevel-Ausgabe-Zeitdomänenschnittstelle zu einem Crossbar-Netz zur Punktproduktberechnung.
    • 43(a)-(b) veranschaulicht eine Ladungsbegrenzungs-Architektur.
    • 44(a)-(b) veranschaulicht ein Nur-Lese-Speicher- (ROM) basiertes Beispiel für Zeitdomänenschnittstellenschemata, die auf Crossbar-Netze für In-Memory-Punktproduktberechnungen angewendet werden.
    • 45(a)-(b) veranschaulicht eine ROM-basierte Zeitdomänenschnittstelle zur Ladungsumverteilung.
    • 46(a)-(d) veranschaulicht ein Beispiel für ein Floating-Gate-Flash- oder FeFETbasiertes Crossbar-Netz mit ratiometrischer Zeitdomänenschnittstelle.
    • 47 veranschaulicht den Bereich von Transistoren-Schwellenspannungen zum Implementieren von linear skalierten Gewichten eines Crossbar-Netzes unter Verwendung einer Kanalkonduktanz oder Stromquellen in Sättigung oder unter dem Schwellenwert.
    • 48(a)-(b) veranschaulicht eine zweiphasige passive Entladung unter Verwendung einer Bitleitungskapazität und einer Memristorkonduktanz.
    • 49(a)-(b) veranschaulicht ein Memristor-basiertes passives Entladeverfahren mit ratiometrischer Punktprodukt-Ausgabebewertung in der Zeitdomäne unter Verwendung eines Komparators.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es werden hier Ausführungsformen der vorliegenden Offenbarung beschrieben. Es versteht sich jedoch, dass die offenbarten Ausführungsformen lediglich Beispiele sind, und andere Ausführungsformen verschiedene und alternative Formen annehmen können. Die Figuren sind nicht unbedingt maßstabsgetreu; einige Merkmale könnten übertrieben oder minimiert sein, um Details bestimmter Komponenten zu zeigen. Daher sind hierin offenbarte spezifische strukturelle und funktionelle Details nicht als einschränkend zu interpretieren, sondern lediglich als repräsentative Grundlage, um einem Fachmann zu lehren, die Ausführungsformen auf verschiedene Weise einzusetzen. Wie der Durchschnittsfachmann versteht, können verschiedene Merkmale, die unter Bezugnahme auf eine der Figuren veranschaulicht und beschrieben werden, mit Merkmalen kombiniert werden, die in einer oder mehreren anderen Figuren veranschaulicht werden, um Ausführungsformen zu erzeugen, die nicht explizit veranschaulicht oder beschrieben werden. Die veranschaulichten Merkmalskombinationen stellen repräsentative Ausführungsformen für typische Anwendungen bereit. Für bestimmte Anwendungen oder Implementierungen könnten jedoch verschiedene Kombinationen und Modifizierungen der Merkmale in Übereinstimmung mit den Lehren dieser Offenbarung erwünscht sein.
  • Digitale Computermodellierungsimplementierungen für Wurzelfindungsverfahren, wie etwa das Newton- oder Broyden-Verfahren, können zu großen Rechenlasten führen, die viele Iterationen erfordern, um das Gleichgewicht/die Lösung zu finden. Daher kann das DEQ selbst mit den Vorteilen eines reduzierten Speichers keine nennenswerte Beschleunigung der Zeit (Latenz) bereitstellen, die ein DEQ-Modell im Vergleich zu anderen neuronalen Netzen benötigt, um eine Eingabe zu klassifizieren. Das DEQ kann identisch oder ähnlich zu dem Modellieren eines physikalischen Systems sein. DEQ-Netze können mit einem physikalischen System implementiert werden, das den Gleichgewichtspunkt (die Lösung) in kontinuierlicher Zeit berechnet, ohne dass eine „digitale“ Berechnung erforderlich ist. Vor allem können DEQ-Netze durch ein dynamisches System implementiert und dargestellt werden, das eine elektrische Analog- oder Mischsignalschaltung verwendet, die eine Kombination von sowohl analogen als auch digitalen Schaltungen sein kann. Ein Vorteil der Verwendung von Elektronik besteht darin, dass das DEQ direkt auf einer integrierten Schaltung, einem IC, oder einer anwendungsspezifischen integrierten Schaltung, ASIC, implementiert sein kann. Eine solche Implementierung kann eine Mischsignal- oder Analogrechenstruktur sein. Eine Struktur („Fabric“) besteht typischerweise aus Elementen oder Verarbeitungseinheiten, die zum Berechnen des zugrunde liegenden Algorithmus benötigt werden. Die derzeit für die DNN-Berechnung verwendeten Rechenstrukturen sind hauptsächlich digitale Implementierungen (Grafikprozessoreinheiten, GPUs, Computerprozessoreinheiten, CPUs) und andere digitale Beschleuniger, die für Faltungsberechnungen optimiert sind. In letzter Zeit gab es zahlreiche Beispiele für Mischsignal-Beschleuniger, die für Edge-Anwendungen entwickelt wurden. Dies wird im Allgemeinen als In-Memory-Berechnung, IMC, bezeichnet. DEQ-Modelle können mit mehreren Arten von Rechenstrukturen implementiert werden.
  • 1 veranschaulicht eine Darstellung eines DEQ-Netzes. Das DEQ-Netz kann Funktionen, Netze und Training implementieren, wie es in der Anmeldung Nr. 16/895,683 mit dem Titel „SYSTEM AND METHOD FOR MULTISCALE DEEP EQUILIBRIUM MODELS“ eingereicht am 8. Juni 2020, die hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen wird, beschrieben wird. Das DEQ kann eine einzelne Schicht aufweisen. Zwei wichtige Gleichungen werden im DEQ-Modell und Netz von Fehler! Verweisquelle konnte nicht gefunden werden. verwendet. In der ersten Gleichung, zeigt die Gleichung (z. B., Gl. 1) (unten gezeigt), dass die Gleichung ein Einschicht-DEQ-Modell definieren kann. Sie kann aus einer nichtlinearen Funktion σ(·) des Zustands des Modells/Netzes, z, bestehen. Der Eingabe in das Netz kann als x definiert werden, und ein Eingabe-Bias kann als b definiert werden. Es ist zu beachten, dass, während Gl. 1 eine allgemeine Darstellung ist, sie möglicherweise nicht alle möglichen Ausführungsformen eines DEQ-Netzes repräsentiert. Beispielsweise kann sich der lineare Operator Wz nicht nur auf eine Matrixmultiplikation beziehen, sondern auch auf eine Faltung oder einen anderen strukturierten linearen Operator, der in tiefen Netzen üblich ist. Und die verborgene Einheit oder der verborgene Zustand z kann mehr als nur eine typische „einzelne“ verborgene Einheit darstellen und könnte beispielsweise eine Verkettung mehrerer verborgener Einheiten über mehrere unterschiedliche zeitliche oder räumliche Skalen darstellen. Gleichung 2 beschreibt die implizite nichtlineare Differentialgleichung, für die die Wurzeln z* unbekannt sind und gelöst werden müssen, um das DEQ-Netz zu bewerten. Um eine Kostenfunktion nach den Wurzeln aufzulösen, Gl. 3, kann iterativ nach z* aufgelöst werden. Beim iterativen Lösen von Gl. 3 wird das Netz in einen Anfangszustand zn=0 versetzt. Die Iteration fährt dann mit der Berechnung des nächsten Wertes der Kostenfunktion Cn=1 (zn=1, x, b) fort, der unten als Gleichung 3 bekannt ist. Die Wurzelfindung kann als abgeschlossen betrachtet werden (Wurzeln werden gelöst), wenn die Kostenfunktion kleiner als eine vordefinierte Toleranz ε ist, wie in Gleichung 4 gezeigt wird. Wenn diese Bedingung nach k Iterationen erfüllt ist, wird angenommen, dass zk ≈ z* gilt, Gleichung 4. Es ist zu beachten, dass die Eingaben x und b während der Wurzellösung als konstant angenommen werden, und dass sowohl das Training als auch die Inferenz für DEQ-Netze unter Verwendung dieses iterativen Prozesses implementiert werden. Tabelle 1: Gleichungen eines DEQ-Modells
    Gleichung #
    z = f ( z , x , b ) = σ ( W z + U x + b )
    Figure DE102021208010A1_0001
    1
    z * f ( z * , x , b ) = 0
    Figure DE102021208010A1_0002
    2
    C n ( z n , x , b ) = z n f ( z n , x , b )
    Figure DE102021208010A1_0003
    3
    | C k ( z k , x , b ) ) | ε z k z *
    Figure DE102021208010A1_0004
    4
  • Aus Gleichung 1 und Gleichung 2 oben kann ein Signalflussdiagramm entwickelt werden, das die Berechnung von Gleichung 2 beschreibt, wie in 2 gezeigt wird. Das Signalflussdiagramm kann als matrixbasierte Operationen mit einer nichtlinearen Funktion σ dargestellt werden. Dies kann durch eine elektronische Rechenstruktur implementiert werden, auf die weiter eingegangen wird.
  • Definitionen für die Variablen in Fehler! Referenzquelle nicht gefunden sind nachstehend angegeben: Tabelle 2: Variablendefinitionen
    Variable Beschreibung
    x Modelleingabe. Diese kann ein Skalar, ein Vektor oder ein vollständiger Tensor sein
    z Aktueller Zustand des DEQ-Modells. Dieser kann ein Skalar, ein Vektor oder ein vollständiger Tensor sein
    z* Gleichgewichtszustand des DEQ-Modells. Dieser kann ein Skalar, ein Vektor oder ein vollständiger Tensor sein
    W, U Gewichte des DEQ-Modells. Diese können ein Skalar, ein Vektor oder ein vollständiger Tensor sein
    Der Operator „·“ U · x und W · z: „·“ kann eine beliebige lineare Operation zwischen den Variablen U, x und W, sein, z. B. eine Skalaroperation, eine einfache Matrixmultiplikationen oder eine Faltung.
    b DEQ-Eingabe-Bias. Diese kann ein Skalar, ein Vektor oder ein vollständiger Tensor sein.
    Σ Summe
    σ(·) Eine nichtlineare Funktion, die mit einer Skalar-, Vektor- oder Tensoreingabe arbeitet. Ihre Ausgabe kann ein Skalar, ein Vektor oder ein Tensor sein
    y Ausgabe des DEQ-Modells. Diese kann ein Skalar, ein Vektor oder ein vollständiger Tensor sein. Sie ist eine willkürliche Funktion der DEQ-Netzzustände.
    h(·) Beliebige Funktion der DEQ-Zustände. Ihre Eingabe kann ein Skalar, ein Vektor oder ein Tensor sein. Ihre Ausgabe kann ein Skalar, ein Vektor oder ein Tensor sein
  • Wie in 2 gezeigt wird, kann ein DEQ-Netz durch mehrere Multiplikationen und Summierungen dargestellt werden, wie etwa eine Faltung des Eingangs-, Bias- und Ausgangszustands. Dies kann oft als Punktprodukt oder Multiplikations- und Akkumulations- (MAC) Operation bezeichnet werden. Als Ergebnis können Schaltungen, die verwendet werden können, um standardmäßige neuronale Faltungsnetze zu implementieren, modifiziert werden, um ein DEQ-Netz zu implementieren. Die wichtigste Änderung besteht darin, wie die Berechnung durchgeführt wird. In standardmäßigen neuronalen Netzen erhält die Berechnung keine zeitkontinuierliche Rückkopplung der aktuellen Ausgabezustände an den Eingabe des Netzes. Typischerweise erfolgt eine Rückkopplung, wenn diese mit einer Verzögerung erfolgt, d. h. sie ist das Ergebnis einer vorherigen Berechnung.
  • Analoge Berechnung von Wurzeln: Einschwingen in einen Gleichgewichtszustand statt Iterieren:
  • 3 veranschaulicht eine Ausführungsform einer einfachen Inverterschaltung 300 mit einem nichtlinearen Verstärker 309. Der nichtlineare Verstärker 309 kann eine Verzögerung aufweisen, wie beispielsweise einen einpoligen Verstärker. Die Schaltung kann einen ersten Widerstand 305 und einen zweiten Widerstand 307 aufweisen. Der erste Widerstand 305 kann im Laufe der Zeit eine Eingabe 301 empfangen. Ein Aspekt des DEQ-Verfahrens besteht darin, dass die Wurzelfindung, die für die Inferenz und das Training in dem DEQ verwendet wird, analog zu einem physikalischen System (elektrisch, mechanisch, fluidisch usw.) sein kann, das sich in ein Gleichgewicht einschwingt. Inferenz und Training in einem DEQ-Modell können effektiv unter Verwendung eines physikalischen Systems implementiert werden, das sich auf einen Gleichgewichtspunkt 311 (Wurzel-A-Bestimmung) einschwingt. Als Beispiel kann ein einfacher invertierender Verstärker betrachtet werden, wie der in der Schaltung 300 gezeigte als Verstärker 309. Diese analoge Schaltung kann eine nichtlineare Verstärkung 301, σ, mit einer kleinen Signalverstärkung A'' und einem einzelnen Pol (einer einfachen Verzögerung τa) haben, 3a. In diesem Fall kann gezeigt werden, dass die Schaltung eine Funktion, Gleichung 5, (in der Tabelle unten gezeigt) die der Gleichung 1 ähnlich ist, implementiert. Für dieses Beispiel können die Wurzeln von Gleichung 5 als Funktion der Zeit gelöst werden, z. B. wie in den Gleichungen 6, 7 und 8. Es kann in den Gleichungen 6,7 und 8 gezeigt werden, dass sich die analoge Berechnung sich asymptotisch (exponentiell) einem Gleichgewichtszustand z t = *
    Figure DE102021208010A1_0005
    nähert oder sich darauf einschwingt. Es ist zu beachten, dass der ideale Gleichgewichtszustand, z * = z t = * ,
    Figure DE102021208010A1_0006
    wegen der endlichen Verstärkung des Verstärkers und des exponentiellen Einschwingens nie erreicht werden kann.
  • Die folgenden Gleichungen können die invertierende Schaltung 300 von 3 repräsentieren: v + v = ( R 2 R 1 + R 2 x ( t ) + R 1 R 1 + R 2 z ( t ) + b ( t ) , t ) ;
    Figure DE102021208010A1_0007
    σ ( v + v , t ) t a n h [ A v ( v + v ) ( 1 e t τ a ) ]
    Figure DE102021208010A1_0008
  • Die Näherungslösung (Wurzeln) für die Ausgabe für ein Beispiel einer einfachen invertierenden Schaltung: z * σ [ A v A v + 1 ( R 1 + R 2 R 1 b ( t ) R 2 R 1 x ( t ) ) ( 1 + e t τ p ) ] z t = * A v A v + 1 ( 1 + e t τ p ) u n d τ p τ a R 1 + R 2 ( 1 + A ν ) R 1
    Figure DE102021208010A1_0009
  • Die einfache Inverterschaltung 300 mit dem nichtlinearen Verstärker 309 kann eine Verzögerung 310 (z.B. einen einpoligen Verstärker) aufweisen. Eine solche analoge Rückkopplungsschaltung 300 kann eine beispielhafte Implementierung eines Grundbausteins für ein analoges DEQ-Netz sein. Die Gleichungen, die eine einfache Inverterschaltung und eine Näherungslösung (Wurzeln) einer Ausgabe für eine einfache Inverterschaltung darstellen, sind in der Tabelle 3 unten gezeigt: Tabelle 3: Gleichungen für eine einfache Inverterschaltung
    GLEICHUNG #
    z ( t ) σ ( R 2 R 1 + R 2 x ( t ) + R 1 R 1 + R 2 Z ( t ) + b ( t ) , t ) = 0
    Figure DE102021208010A1_0010
    5
    z t = σ [ R 2 R 1 + R 2 b ( t ) R 2 R 1 x ( t ) ]
    Figure DE102021208010A1_0011
    6
    z z t = A ν A ν + 1 ( 1 + e t τ p )
    Figure DE102021208010A1_0012
    7
    τ p τ a R 1 R 2 ( 1 + A ν ) R 1
    Figure DE102021208010A1_0013
    8
  • Das obige Beispiel veranschaulicht, dass ein DEQ-Netz unter Verwendung einer zeitkontinuierlichen Analogschaltung implementiert werden kann, um die Wurzeln des DEQ-Netzes zu berechnen. Es ist zu beachten, dass die Wurzeln des DEQ-Netzes der Endzustand von z(t) des Netzes sind. Es veranschaulicht auch, wie ein endlicher Verstärkungsfaktor, Av, und eine endliche Bandbreite, W ∝ 1/τa, einen Fehler im finalen Gleichgewichtszustand oder den Wurzeln z* verursachen können. Bei DEQ-Netzen, die analoge Berechnungen verwenden, hängen die Genauigkeit und/oder der Fehler in z* davon ab, wie lange die Schaltung einschwingen darf oder wie viele Zeitkonstanten τp verstreichen dürfen, bevor ihre Ausgabe ausgelesen wird, wie in Gleichung 9 gezeigt wird. Dies kann analog zu dem iterativen Wurzellösungsansatz bei der digitalen Berechnung sein, bei dem die Anzahl der Iterationen oder die Zeit, die zum Berechnen der Lösung benötigt wird, von der erforderlichen Genauigkeit oder finalen Fehlertoleranz ε abhängt. Bei analogen Schaltungen hängt der Fehlerbetrag im Endzustand jedoch auch von dem endlichen Verstärkungsfehler ab, der durch den Verstärkungsfaktor, Av, Gleichung 9, eingestellt wird. Aus den Gleichungen. 9,10 kann man Anforderungen an den Verstärkungsfaktor und die Bandbreite, um eine gewünschte Genauigkeit zu erreichen, berechnen. Beispielsweise erfordern 99,9 % oder ein Fehler von 0,1 % ~9,9 Bit Genauigkeit. Dies kann eine Latenz von mehr als sieben Zeitkonstanten, 7·τp, und einen Verstärkungsfaktor von mehr als 1000 erfordern. Somit müssen die gewünschte Genauigkeit und Latenz eines Analog- oder Mischsignal-DEQ-Netzes beim Entwurf des Verstärkers und des Netzes beachtet werden, um das DEQ-Netz zu implementieren. Tabelle 4: Gleichungen für den Verstärkungsfaktor und die Bandbreite
    Gleichung #
    E r r o r = Δ z ( t ) z t = = z t = Z ( t ) z t = 1 A ν A ν + 1 ( 1 + e t e τ p )
    Figure DE102021208010A1_0014
    9
    % d e r B i t - G e n a u i g k e i t = l o g 2 ( 1 1 Δ z ( t ) z t = )
    Figure DE102021208010A1_0015
    10
  • Im Allgemeinen liefern analoge Verfahren möglicherweise keine Rechengenauigkeit, die digitalen Implementierungen entspricht. Es kann jedoch bei der analogen Verarbeitung einen Vorteil hinsichtlich der Gesamtsystemleistung für Anwendungen geben, die mit Anwendungen mit geringerer Genauigkeit oder niedrigerem SNR implementiert werden können. Daher könnte eine analoge Berechnung mit DEQ-Netzen maschinelles Lernen mit sehr geringem Energieaufwand für eingebettete Anwendungen ermöglichen, für die die Energie dieser DEQ-Netze auf die gewünschte Latenz/Geschwindigkeit der Anwendung zugeschnitten werden kann.
  • Im vorherigen Abschnitt wurde beschrieben, wie DEQ-Modelle mit zeitkontinuierlicher analoger Berechnung implementiert werden können. Dies basiert auf der Erkenntnis, dass ein DEQ-Netz mit Gl. 1 modelliert werden kann, und dass es mit einem in 2 gezeigten Signalflussdiagramm 200 modelliert werden kann. Dieses Diagramm und weitere Erweiterungen davon bilden die Basis für alle nachfolgenden Erfindungen.
  • Viele Ausführungsformen von Mischsignal-Schaltungsarchitekturen können verwendet werden, um DEQ-Modelle/Netze basierend auf dem Signalflussdiagramm in 2 zu implementieren.
  • 4 veranschaulicht ein Beispiel eines Multi-Eingabe-Multi-Zustands-DEQ-Modells 400 basierend auf invertierenden Verstärkern 409a, 409b, 409c. Somit kann das DEQ-Modell sowohl auf invertierenden Verstärkern als auch auf Widerstandsnetzen basieren. In einem solchen Beispiel kann es drei Eingaben 401a, 401b, 401c (x1 bis x3), drei Zustände 403a, 403b, 403c (z1 bis z3) und eine Ausgabe 450, y, geben. Die Ausgabeschicht 420b kann die Widerstände 1/ O1, 1/ O2 und 1/O3 verwenden, um die Gewichte der Eingaben anzuwenden und als Ausgabe 450 durch eine Aktivierungsfunktion zu leiten. Der verborgene Zustand (z) kann die Ausgaben der Verstärker 409a, b, c sein. Die erste davon kann eine Erweiterung des invertierenden Verstärkers, zum Beispiel aus 3, zu einem Multi-Eingabe- und Multi-Ausgabe-DEQ-Netz, 4, sein. Dieses Beispiel kann ein vollständig verbundenes Netz im Sinne von DEQ-Netzzuständen, zi, implementieren, z. B. alle Zustände rückgekoppelt zu jeder Eingabe. Der Vollständigkeit halber werden die Gleichungen für den Gleichgewichtszustand des DEQ-Modells, Gleichungen 11, 12, und die Ausgabe, Gleichung 13, bereitgestellt. In einem solchen Beispiel kann der Einfachheit halber angenommen werden, dass die Verstärkung 420a, 420b des Verstärkers unendlich ist. Die Gleichungen sind in der folgenden Tabelle angegeben: Tabelle 5:
    Gleichung #
    [ z 1 z 2 z 3 ] σ [ [ U 1 0 0 0 U 2 0 0 0 U 3 ] [ x 1 x 2 x 3 ] [ 0 W 12 W 13 W 21 0 W 23 W 31 W 32 0 ] [ z 1 z 2 z 3 ] + [ b 1 b 1 b 3 ] ]
    Figure DE102021208010A1_0016
    11
    [ b 1 b 2 b 3 ] = [ ( U 1 + W 12 + W 13 + 1 ) d 1 ( U 2 + W 21 + W 23 + 1 ) d 2 ( U 3 + W 31 + W 32 + 1 ) d 3 ]
    Figure DE102021208010A1_0017
    12
    y σ [ [ O 1 O 2 O 3 ] [ z 1 z 2 z 3 ] ]
    Figure DE102021208010A1_0018
    13
  • Es ist zu beachten, dass im allgemeinen Fall andere Arten von Verbindungen über eine vollständig verbundene Architektur hinaus verwendet werden könnten. Außerdem könnten die Widerstände des Netzes 400 durch andere elektrische Komponenten, wie etwa Memristoren oder Kondensatoren, oder durch Kombinationen von Komponenten ersetzt werden. Schließlich könnten auch andere Verstärkerkonfigurationen, wie etwa nicht invertierende Verstärker oder geschaltete Kondensatorverstärker, verwendet werden, um ähnliche DEQ-Netze zu implementieren.
  • 5 veranschaulicht ein DEQ-Netz 500, das mit einer Rechenstruktur 503 implementiert ist. Die Ausgabeschicht 511 kann Teil der Rechenstruktur 503 sein oder nicht. In diesem Beispiel können die impliziten Matrixmultiplikationen (Punktprodukte, Faltungen) von Gleichung 1 in der Struktur 503 implementiert werden. Die nichtlineare Funktion σ(·) kann innerhalb oder außerhalb der Rechenstruktur implementiert werden. Die Rechenstruktur 503 führt die zeitkontinuierliche Berechnung der DEQ-Gleichgewichtszustände in der analogen Domäne als Reaktion auf den Empfang der Eingabe 501 und der Vorspannung 502 durch, die entweder digital oder analog sein kann. Die Arrays der Rechenstruktur 503 sind im Allgemeinen Arrays von Impedanzen, die mit Komponenten wie Widerständen, Kondensatoren, Transistoren oder Kombinationen dieser Bauelemente implementiert sind. Einige Rechenstrukturen 503 können auch unter Verwendung von flüchtigen Speichertechnologien, wie etwa SRAM oder DRAM oder nichtflüchtigem Speicher, NVM, Technologien, wie etwa Flash, RRAM, MRAM, PCM, usw. implementiert werden. Wenn eine dieser Speichertechnologien verwendet wird, können Rechenstrukturen als In-Memory-Rechenstrukturen oder IMC-Strukturen bezeichnet werden. Die Ausgabeschicht 511 des DEQ-Netzes, 5, kann mit digitaler, analoger Berechnung oder einer Kombination davon (gemischtes Signal) implementiert werden. In einigen Fällen kann es optimal sein, die Ausgabeschicht 511 in derselben Rechenstruktur zu implementieren, die verwendet wird, um die Gleichgewichtszustände z* zu berechnen. Es ist zu beachten, dass die Gleichgewichtszustände die Wurzeln des DEQ-Netzes und im Allgemeinen der Endzustand, z=z*, des Netzes sind. Die Eingaben x und b können digitale Signale sein, die innerhalb der Rechenstruktur in analoge Signale umgewandelt werden. Oder sie können analog sein. Im Allgemeinen wird die Wurzel 509, z, des DEQ-Netzes als analoges Signal in die Rechenstruktur 503 rückgekoppelt. Es könnte jedoch alternative Ausführungsformen geben, bei denen die Zustände 509 als digitale Signale oder zeitbasierte Signale rückgekoppelt werden. Sowohl die Eingaben zur Ausgabeschicht als auch die Ausgaben, y, und die Funktion h(·) können mit digitaler, analoger oder gemischter Signalschaltung realisiert werden.
  • 6 veranschaulicht ein Beispiel einer Rechenstruktur 600. Die Rechenstruktur 600 ist lediglich ein Beispiel für eine, die in den verschiedenen Ausführungsformen verwendet werden kann. Die Gleichungen können Berechnungen darstellen, die von der Struktur 600 durchgeführt werden. 6 ist ein Beispiel für eine Rechenstruktur. Die Elemente 611, URC, können mit unterschiedlichen Komponenten, wie etwa Widerständen (RRAM, PCM), Kondensatoren, Transistoren, oder Kombinationen davon, implementiert werden. Diese Elemente können verwendet werden, um Punktprodukte oder Faltungen der Eingabesignale auf den Zeilen 603 mit Gewichten durchzuführen, die durch Werte der Elemente 611, URC, bestimmt werden. Diese analoge Summierung basiert auf grundlegenden elektrischen Phänomenen, wie etwa Stromsummierung (Kirchhoffsche Stromgesetz), Ladungserhaltung (Ladungssummierung, Umverteilung), Ohmsches Gesetz, usw. Diese grundlegenden Phänomene können intrinsisch eine analoge Berechnung oder Summierung und Multiplikation im Bereich von Ladung, Strom und Spannung ermöglichen. Die Zeilentreiber 612 können je nach Typ des in der Rechenstruktur 600 verwendeten Bauelements unterschiedliche Funktionen ausführen. In einigen Fällen können sie vollständig digital oder analog sein. In anderen führen sie eine Digital-Analog-Wandlung durch. Eingaben 601 können an den Zeilentreibern 612 empfangen werden. Im Allgemeinen erfolgt eine Summierung von Ladung, Strom, Spannung typischerweise in den Spalten 607. Die Leseverstärker (oder „Amps“) 609 können als die erste Verstärkungsstufe für die Summierung verwendet werden und können je nach Netzwerktyp unterschiedliche Funktionen haben. Beispielsweise können die Leseverstärker oder Leseverstärker für ein DEQ-Netz eine nichtlineare Funktion, σ(·), implementieren, die die Form eines hyperbolischen Tangens oder anderer bekannter nichtlinearer Aktivierungsfunktionen, wie etwa einer gleichgerichteten linearen Einheit (reLU), annehmen kann.
  • 7 eine Veranschaulichung einer Ausführungsform einer Rechenstruktur, die verwendet werden kann, um ein DEQ-Netz zu implementieren. In diesem Beispiel wird das Eingabe-Bias, b = [ b 1 b 2 ] ,
    Figure DE102021208010A1_0019
    unter Verwendung der Leseverstärker hinzugefügt. Es können mehrere Variationen in Verbindung mit 7 zum Implementieren von DEQ mit einer analogen Rechenstruktur vorhanden sein. Zum Beispiel kann es einen Leseverstärker 709 oder einen Leseverstärker für mehrere Spalten oder alle Spalten geben. Es kann einen Zeilentreiber 702 pro Zeile 703 oder einen Zeilentreiber 702 für mehrere oder alle Zeilen 703 geben. In einer anderen Ausführungsform können die Leseverstärker 709 jede nichtlineare Funktion implementieren. Außerdem können die Leseverstärker 709 dazu verwendet werden, um das Bias, b, hinzuzufügen. Im Allgemeinen könnten die Leseverstärker 709 auch durch einen Analog-Digital-Wandler ersetzt werden oder ein Teil davon sein, wenn eine Digitalisierung der Struktur-Ausgabe oder der Ausgabeschicht 711 erforderlich ist. Die Leseverstärker 709 können verwendet werden, um eine genauere Summierung zu ermöglichen - was eine Ladungs- oder Stromsummierung beinhalten kann. In noch einer anderen Variation einer Ausführungsform können die Zeilentreiber 702 analoge, digitale Signale auf die Zeilen 703 treiben. Die Zeilentreiber 702 können auch zeitbasierte Signale (Pulse, Pulsbreitenmodulations- (PWM) Signale, usw.) treiben. Die Struktur-Elemente 713, URC, können ein beliebiges Element sein, das eine Berechnung (Multiplikation, Summierung) ermöglicht. Somit können die Struktur-Elemente ein Widerstand, ein Kondensator, Transistoren usw. sein. Jede Kombination kann verwendet werden, um die in der Rechenstruktur verwendeten Gleichungen zu lösen.
  • 8 zeigt, wie das Bias 820, b, unter Verwendung der Rechenstruktur 800 verwendet werden kann, anstatt durch die Leseverstärker 809 hinzugefügt zu werden, im Gegensatz zu der in 7 gezeigten Ausführungsform. In dem Beispiel von 8 wird das Eingabe-Bias, b = [ b 1 b 2 ] ,
    Figure DE102021208010A1_0020
    unter Verwendung der Rechenstruktur hinzugefügt. Das Bias 820 könnte auch durch andere Mittel hinzugefügt werden. Die Leseverstärker 809 könnten auch durch einen Analog-Digital-Wandler ersetzt werden oder ein Teil davon sein, wenn eine Digitalisierung der Struktur-Ausgabe erforderlich ist, oder der Ausgabeschicht 811. Der Leseverstärker 809 kann eine nichtlineare Funktion sein, die auf einem Skalar, Vektor, oder Tensor-Eingabe angewendet wird. Die Ausgabe kann auch ein Skalar, Vektor oder Tensor sein.
  • 9 veranschaulicht eine alternative Ausführungsform, die einen Weg aufzeigt, wie die Berechnung der Ausgabeschicht 911 in die Rechenstruktur integriert werden könnte. Die Ausgabeschicht 911 kann auch aus einem Leseverstärker 910 bestehen, der sich von dem Leseverstärker 909 unterscheidet. Die Eingabe 901 kann in die Zeilentreiber 902 eingespeist werden. Die Ausgabeschicht 911 kann den Leseverstärker 910 aufweisen. Ein anderer Leseverstärker 909 kann verwendet werden, um die verschiedenen Zustände an die Zeilentreiber 902 rückzukoppeln, bis eine Konvergenz erreicht wird. Die finale Ausgabe des DEQ-Modells kann von dem Leseverstärker 910 ausgegeben werden.
  • Die Offenbarung kann auch DEQ-Netze mit Abhängigkeiten von aktuellen und vorherigen Netzwerkwurzeln und Eingaben berücksichtigen. Frühere Beispiele von DEQ-Modellen/Netzen wurden gezeigt, bei denen die Ausgabezustände, z, eine Funktion der Eingaben, x, sind und in kontinuierlicher Zeit ohne Verzögerung rückgekoppelt werden. Es gibt jedoch Fälle, in denen ein DEQ-Netzzustand eine Funktion früherer (verzögerter) Eingaben und Wurzeln sein kann. Ein zeitkontinuierliches DEQ-Netz mit Abhängigkeiten von vorherigen Zuständen und Eingaben kann allgemein durch die Gl. 14 und 15 beschrieben werden. Tabelle 6 - zeitkontinuierliches DEQ-Netz:
    Gleichung #
    z ( t ) = f ( z ( t ) , z ( t τ 21 ) ,..., z ( t τ z m ) , x ( t ) , x ( t τ x 1 ) ,..., x ( t τ x k ) )
    Figure DE102021208010A1_0021
    14
    z ( t ) = σ ( W 0 z ( t ) + + W m z ( t τ z m ) + U 0 x ( t ) + + U k x ( t τ x k ) + b ( t ) )
    Figure DE102021208010A1_0022
    15
  • In den obigen Gleichungen werden sowohl Eingaben als auch Zustände durch kontinuierliche Zeitverzögerungen, τx1 ··· τxk τz1 ··· τzm, verzögert. Eine mögliche Funktion zum Implementieren eines DEQ-Netzes ist in Gl. 15 gezeigt.
  • 10 ist ein Beispiel für ein Netzwerk, das die Gleichungen 14 und 15 implementiert. 2 veranschaulicht eine Ausführungsform eines DEQ-Netzes 1000 mit Abhängigkeiten von vorherigen Zuständen und Eingaben. Ein zeitdiskretes DEQ-Modell kann mit den Gleichungen 16 und 17 beschrieben werden. In diesem Fall ist das DEQ-Netz 1000 eine Funktion früherer Zustände und Eingaben, die zu früheren Zeiten, t(n), aufgetreten sind. Typischerweise wird in diesen Systemen z(n) 1109 als äquivalent zu z(t(n)) angesehen. Die Zeit zwischen aufeinanderfolgenden Berechnungen des DEQ-Ausgabezustands beträgt Tcalc = t(n) - t(n - 1). Tcalc kann durch eine Systemuhr eingestellt werden, d. h. T c a l c = 1 f c l k .
    Figure DE102021208010A1_0023
    Oder das System kann selbstgetaktet oder asynchron sein. In diesem Fall hängt die Zeit zwischen aufeinanderfolgenden Berechnungen nur von der Geschwindigkeit ab, mit der die Hardware den nächsten Zustand berechnen kann. Die Eingabe 1001 über die Zeit kann mit einer Verzögerung bezogen auf die Zeit 1005 eingespeist werden. Das Bias 1002 kann auch in die Rechenstruktur 1003 eingegeben werden. Die Rechenstruktur 1003 kann die Zustände 1009 mit einer anderen Zeitverzögerung 1007 erneut einspeisen. Die Rechenstruktur 1003 kann einen Endzustand 1009 an eine Ausgabeschicht 1011 auszugeben. Die Eingabe 1001, das Bias 1002 und die Ausgabe 1003 können ein Skalar, ein Vektor oder ein vollständiger Tensor sein. Sie kann auch eine beliebige Funktion der DEQ-Netzzustände sein. Tabelle 7 - zeitdiskretes DEQ-Netz:
    Gleichungen #
    z ( n ) = f ( z ( t ) , z ( n 1 ) ,..., z ( n m ) , x ( n ) , x ( n 1 ) ,..., x ( n k ) )
    Figure DE102021208010A1_0024
    16
    z ( n ) = σ ( W 0 z ( t ) + + W m z ( n m ) + U 0 x ( n ) + + U k x ( n k ) + b ( n ) )
    Figure DE102021208010A1_0025
    17
  • 11 veranschaulicht ein Diagramm eines zeitdiskreten DEQ-Netzes 1100. In diesem Beispiel verwendet das Netz 1100 die Rechenstruktur 1103.
  • 11 veranschaulicht ein allgemeines Beispiel eines DEQ-Netzes, das durch die oben gezeigten Gleichungen 16 und 17 beschrieben wird. Das Netz 1100 kann eine Eingabe 1101 mit einer Anzahl von vorherigen Eingaben empfangen, die durch Verzögerungen 1105 an der Eingabe bereitgestellt werden, die an die Rechenstruktur 1103 gesendet werden soll. Die abgetasteten Zustände 1109 können an die Ausgabeschicht 1111 gesendet werden. Die aktuellen Zustände 1109 können auch an die Rechenstruktur 1103 rückgekoppelt werden, wobei der vorherige Zustand durch die Verzögerungen 1107 bereitgestellt wird. Die Ausgabeschicht 1111 kann die finale Ausgabe y(n) 1113 als Funktion des DEQ-Modells, einschließlich des DEQ-Modells über die Zeit, ausgeben. Die Ausgabe 1113 kann ein Skalar, ein Vektor oder ein vollständiger Tensor sein. Sie kann auch eine beliebige Funktion der DEQ-Netzzustände sein.
  • 12 veranschaulicht ein Signalflussdiagramm für das DEQ. Es kann sich um eine zeitdiskrete Implementierung handeln. Die Wellenformen für das zeitdiskrete DEQ-System sind in 13 gezeigt. Ein Beispiel für ein DEQ-Netz basierend auf diskreter Zeit ist in 12 gezeigt. In diesem Fall werden die Eingaben und Zustände des DEQ-Netzes zu Zeiten nTclk abgetastet. Die Ausgabe des Abtastens und Haltens 1203, 1207 kann eine Verzögerung aufweisen. Das zweite Abtasten und Halten 1207 gibt eine Funktion der DEQ-Zustände aus. Die Eingabe kann ein Skalar, ein Vektor oder ein Tensor sein, ebenso wie die Ausgabe. Die Ausgabe 1211 kann ein DEQ-Modell oder ein Skalar, Vektor oder Tensor sein.
  • 12 veranschaulicht ein Beispiel von Wellenformen für zeitdiskrete DEQ-Systeme. Für dieses Beispiel kann das Abtasten und Halten ideal sein und keine Verzögerung aufweisen. 13 veranschaulicht auch Wellenformen, die die Zeitsequenz für die Eingaben und Ausgaben des DEQ-Netzes beschreiben. Dies ist insofern ein interessantes Beispiel, als die Rechenstruktur zeitkontinuierlich mit den zeitdiskreten Eingaben x x(n), z(n) und b(n) arbeitet, die während der Berechnung konstant bleiben, 13. Der Ausgabezustand, z(t), schwingt sich in kontinuierlicher Zeit in den Gleichgewichtszustand, z*(t) = z(n), ein. Es ist zu beachten, dass der Gleichgewichtszustand z*(t) abgetastet und dann für Berechnungen in der Ausgabeschicht verwendet werden kann.
  • 14 veranschaulicht ein Signalflussdiagramm für eine zeitdiskrete DEQ-Implementierung mit zusätzlichen verzögerten Eingaben und Rückkopplung. Eine Abtast- und Halteschaltung 1403 kann die Eingabe 1401 im Laufe der Zeit abrufen. Die zeitverzögerte Eingabe 1404 (z. B. ist als eine Taktperiode als Beispiel gezeigt, es kann aber eine beliebige Art von Verzögerungsperiode sein) kann in den Summierungsblock 1405 eingespeist werden, der eine Rechenstruktur sein kann. Der Summierungsblock 1405 kann eine nichtlineare Funktion basierend auf den verschiedenen Eingaben und Zuständen implementieren. Der Summierungsblock 1405 kann die Verzögerung der Wurzel einer oder mehrerer Taktperioden berücksichtigen, wie in 14 gezeigt wird. Der Summierungsblock 1405 kann eine Wurzel an eine zweite Abtast- und Halteschaltung 1407 ausgeben. Die Abtast- und Halteschaltung 1407 kann einen Zustand des DEQ-Modells an eine Funktion 1409 ausgeben. Schließlich kann eine Ausgabe 1411 des DEQ-Modells als beliebige Funktion der DEQ-Netzzustände ausgegeben werden.
  • 15 veranschaulicht ein Blockdiagramm eines In-Memory-Berechnungs-MAC-Blocks. In einer einfachen Implementierung können N Eingabeaktivierungen entlang der horizontalen Dimension bereitgestellt werden (eine pro Zeile von Einheitselementen), und es können M MAC-Ausgaben entlang der vertikalen Dimension erzeugt werden (eine pro Spalte von Einheitselementen). Somit kann der Zeilentreiber 1503 die N Aktivierungen an das Array 1501 ausgeben. Das Array kann die M Spalten an die Spaltenauslesung 1505 ausgeben. Die Eingabeaktivierungen und Ausgaben werden durch physikalische Parameter, wie etwa eine Spannung, dargestellt. Ein „Neuron“ kann sich auf eine einzelne Spalte beziehen, die alle mit dieser Spalte verbundenen Einheitselemente aufweist. Mehrere Neuronen (Spalten) sind benachbart verbunden, und jedes gibt das Ergebnis einer einzelnen MAC-Operation aus. Ein Rücksetzblock 1507 kann optional enthalten sein, um das Array auf einen spezifizierten Anfangszustand zurückzusetzen.
  • 16 veranschaulicht eine 4x4-Teilmenge eines Arrays, wie etwa eine vier-mal vier-Teilmenge eines NxM-Arrays 1501. Somit kann die Figur das Innere eines MAC-Arrays, das ein einzelnes Element zeigt, das mit einer Wortleitung 1609 und einer Bitleitung 1611 verbunden ist, detailliert darstellen. Eingaben (Xi) können als Einzelbitauflösung (binär) oder mit einer höheren Auflösung (Mehrbitauflösung) bereitgestellt werden, aber die Summierung wird immer in jeder Spalte auf analoge Weise durchgeführt. Jedes Einheitselement speichert einen Gewichtswert (Wij), der eine Einzelbit-Auflösung (binär) oder eine höhere (Mehrbit-)Auflösung aufweisen kann. Das Gewicht wird unter Verwendung eines physikalischen Parameters (zum Beispiel Konduktanz) der Schaltungselemente in der Einheitszelle gespeichert. Die Ausgabe jeder Spalte des Arrays (Yj) ist ein analoger Wert, der in der analogen Domäne gehalten, zur weiteren Verwendung innerhalb des Prozessors digitalisiert, wie etwa für die Eingabe in einen anderen MAC-Block, oder als finale Ausgabe verwendet werden kann, Für dynamische Ausleseschemata kann optional ein Rücksetzblock 1607 enthalten sein, um das Array auf einen spezifizierten Anfangszustand zurückzusetzen.
  • 17 veranschaulicht eine Anzahl von Techniken, um die gezeigte Architektur zu erweitern, um auf Gewichte mit höherer Auflösung, Eingabeaktivierungen mit höherer Auflösung und Differentialbetrieb zu skalieren. Mehrere Einheitselemente können parallel verwendet werden, um die Gewichtsauflösung zu erhöhen, wie in 17(a) gezeigt wird. Gewichtswerte können auch unter Verwendung eines Thermometercodes, Binärcodes oder eines anderen Codes codiert werden (d. h. das Gewicht W11 kann in mehrere codierte Komponenten W111, W112, usw. aufgeteilt werden). Wie in 17(b) gezeigt wird, können Einheitszellen, die den codierten Gewichtskomponenten entsprechen, über mehrere Bitleitungen verbunden sein. Die Teilergebnisse (z. B. Y11 und Y12) der entsprechenden Bitleitungen werden durch die Spaltenausleseschaltung in der digitalen oder analogen Domäne kombiniert. Bei einem Thermometer-Codierungsschema hat jede Komponente des Gewichts (z. B. W111, W112) denselben Einfluss auf das Ergebnis der MAC-Operation. Bei einem binären oder anderen Codierungsschema hat jedoch jede Gewichtskomponente einen skalierten Einfluss auf das Ergebnis der MAC-Operation. Diese Skalierung kann digital innerhalb der Spaltenausleseschaltung 1705 ausgeführt werden. Alternativ kann der physikalische Parameter, der den Gewichtswert innerhalb der Einheitszelle darstellt (z. B. die Konduktanz), geeignet skaliert werden, um dem Codierungsschema zu entsprechen. Wie in 17(c) gezeigt wird, können anstelle des Skalierens des physikalischen Parameters mehrere Einheitselemente parallel in einigen Spalten verwendet werden, um das Codierungsschema anzupassen. Die Auflösung der Eingabeaktivierungen kann auch unter Verwendung ähnlicher Techniken, wie die in 17(b) und 17(c) gezeigten, erhöht werden. Die Eingabeaktivierungswerte können auch unter Verwendung eines Thermometers, eines Binärcodes oder eines anderen Codes codiert werden (z. B. wird die Eingabe X1 in mehrere codierte Komponenten X11, X12, usw. aufgeteilt). Wie in 17(d) gezeigt wird, werden diese Eingabewerte an Einheitselemente geliefert, die denselben Gewichtswert enthalten und mit derselben Bitleitung verbunden sind. Beispielsweise wird der Gewichtswert W11 in allen Elementarzellen in einer einzigen Spalte gespeichert, die auch mit einer Komponente von X1 verbunden sind. Bei einem Thermometer-Codierungsschema hat jede Komponente der Eingabe (z. B. X11, X12) den gleichen Einfluss auf das Ergebnis der MAC-Operation. Bei einem binären oder anderen Codierungsschema kann jedoch jede Eingabekomponente einen skalierten Einfluss auf das Ergebnis der MAC-Operation haben. Diese Skalierung kann durch geeignetes Skalieren des physikalischen Parameters, der die Eingabeaktivierung darstellt (z. B. die Spannung), erreicht werden, um dem Codierungsschema zu entsprechen. Stattdessen kann der physikalische Parameter, der den in den Einheitselementen gespeicherten Gewichtswert in einigen Zeilen darstellt (z. B. die Konduktanz), skaliert werden, um den Einfluss einzelner Komponenten der Eingabeaktivierung zu skalieren und dem Codierungsschema zu entsprechen. Alternativ können, wie in 17(e) gezeigt wird, in einigen Reihen mehrere Einheitselemente parallel verwendet werden, um die Auswirkungen einzelner Komponenten der Eingabeaktivierung zu skalieren und das Codierungsschema anzupassen.
  • Es können auch Differentialtechniken verwendet werden, die Robustheit gegenüber Versorgungsrauschen und Schwankungen bieten, während der Dynamikbereich erhöht wird, wie in 17(f) und 17(g) gezeigt wird. 17(f) zeigt ein differentielles Gewichtsschema, bei dem komplementäre Gewichtswerte (z. B. W11 und W11b) in Einheitselementen gespeichert werden, die mit komplementären Bitleitungen verbunden sind, jedoch mit derselben Eingabeaktivierung. Die Ausgaben der komplementären Bitleitungen (z. B. Y1 und Y1b) können durch die Spaltenausleseschaltungen differentiell ausgelesen werden. 17(g) zeigt ein differentielles Eingabeaktivierungsschema, bei dem komplementäre Eingabeaktivierungswerte (z. B. X1 und X1b) auf separaten Wortleitungen bereitgestellt werden. Die komplementären Wortleitungen können mit Einheitselementen verbunden sein, die denselben Gewichtswert speichern, jedoch mit komplementären Bitleitungen verbunden sind. Wie zuvor werden die Ausgaben der komplementären Bitleitungen (z. B. Y1 und Y1b) von den Spaltenausleseschaltungen differentiell ausgelesen.
  • Die in 17 beschriebenen Techniken sind miteinander kompatibel und können in derselben Implementierung verwendet werden. Somit können verschiedene Gewichtsschemata austauschbar verwendet werden.
  • In einer Ausführungsform können, wie in 17(a) gezeigt wird, mehrere Einheitszellen verwendet werden, um die Auflösung gespeicherter Gewichte zu erhöhen. In einer anderen Ausführungsform können, wie in 17(b) gezeigt wird, Elementarzellen 1701, die Komponenten codierter Gewichte 1701 speichern, mit separaten Bitleitungen verbunden sein. Die Teilergebnisse der getrennten Bitleitungen können in der Spaltenausleseschaltung in der analogen oder digitalen Domäne kombiniert werden. In einer anderen Ausführungsform können, wie in 17(c) gezeigt wird, die mehreren Einheitszellen in einigen Spalten parallel verwendet werden, um dem Codierungsschema zu entsprechen. In einer anderen Ausführungsform können, wie in 17(d) gezeigt wird, codierte Eingabeaktivierungen auf Elementarzellen angewendet werden, die dieselben Gewichtswerte halten und mit derselben Bitleitung verbunden sind, um die Auflösung der Eingabeaktivierungsfunktion(en) zu erhöhen. In einer anderen Ausführungsform, wie etwa in 17(e), können mehrere Einheitszellen parallel in einigen Zeilen 1703 verwendet werden, um die Auswirkung der Eingabeaktivierungsfunktion zu skalieren und das Codierungsschema anzupassen. In der Ausführungsform von 17(f) sind Differenzgewichte mit separaten Bitleitungen verbunden. Die Differenzausgabe auf den Bitleitungen wird unter Verwendung von Differenzspalten-Ausleseschaltungen gelesen. In der Ausführungsform von 17(g) werden differentielle Eingabeaktivierungen an duplizierte Gewichte bereitgestellt, die mit separaten Bitleitungen verbunden sind. Die Differenzausgaben auf den Bitleitungen werden unter Verwendung von Differenzspalten-Ausleseschaltungen gelesen. Die Ausführungsform kann auch einen Rücksetzblock 1707 aufweisen.
  • Der Zeilentreiber 1703, die Einheitszelle in dem Array und die Spaltenausleseschaltungen 1705 arbeiten zusammen, um die MAC-Berechnung durchzuführen. Die Zeilentreiber- und Spaltenausleseschaltungen bilden zusammen die Schnittstelle zur MAC-Engine. Die Eingabe in die MAC-Engine kann in einem von mehreren möglichen Domänen, wie etwa Spannung, Strom, Ladung oder Zeit, dargestellt werden. Als Ausgabe kann dieselbe Domäne oder eine andere Domäne verwendet werden. Beispielsweise kann ein Spannungstreiber verwendet werden, um die Eingabeaktivierung entlang der Wortleitungen bereitzustellen, und eine Stromausleseschaltung kann verwendet werden, um die Ausgabe von den Bitleitungen zu lesen. Diese Schnittstellenschaltungen können statisch sein, wobei sich der Ausgabe des Arrays natürlich auf den Ausgabe des MAC-Operationswerts einstellt, wenn eine neue Eingabe angelegt wird, oder können dynamisch sein. In einer dynamischen Implementierung können mehrere Taktphasen verwendet werden, um eine einzelne MAC-Operation abzuschließen, wie etwa in einem Schaltkondensatorschema. Die Schnittstellenschaltungen können auch zeitbasiert sein. Beispielsweise kann der Eingabeaktivierungswert in der Breite oder Dauer eines Spannungsimpulses kodiert sein.
  • 18 veranschaulicht beispielhafte Schnittstellenschaltungen. Die 18(a) zeigt einen spannungsbasierten Zeilentreiber (z. B. einen Digital-Analog-Wandler (DAC), gefolgt von einem Spannungspuffer), der eine neue statische Spannung, VXi, auf der Wortleitung i für jeden Eingabewert (In1, In2, In3, usw.) bereitstellt. 18(b) zeigt ein auf Spannungsimpulsbreitenmodulation (PWM) basierendes Schema, das einen Spannungsimpuls, IXi, mit variabler Breite proportional zu dem Eingabeaktivierungswert bereitstellt. Stattdessen kann ein Pulsdichtemodulations- (PDM) Schema verwendet werden, bei dem eine Anzahl von Pulsen proportional zum Eingabeaktivierungswert an die Wortleitung angelegt wird. In einem PDM-Schema hat jeder Impuls eine identische Breite/Dauer. 18(c) zeigt ein Strom-PWM-basiertes Schema, das einen Stromimpuls, IXi, mit variabler Breite proportional zum Eingabeaktivierungswert bereitstellt. Die an der Wortleitung entwickelte Spannung, VXi, für jeden Eingabe hängt vom Strompegel, der Impulsdauer und der Impedanz der Wortleitung ab. Somit sind strombasierte Treiber besser für Implementierungen geeignet, bei denen die Wortleitungsimpedanz konstant ist (unabhängig von der Eingabeaktivierung oder gespeicherten Gewichtswerten). Für einen ähnlichen Effekt kann auch ein PDM-Schema anstelle von PWM mit einem Stromtreiber verwendet werden. 18(d) zeigt eine Zeilenausleseschaltung, die direkt die Spannung, VBLj, oder den Strom, IBLj, von der Bitleitung j liest. Der Strom, IBLj, von der Bitleitung j kann auch unter Verwendung eines Transimpedanz-(TIA)Verstärkers ausgelesen werden, wie in 18(e) gezeigt wird. Der TIA hält die Bitleitungsspannung, VBLj, als eine virtuelle Masse, und der Bitleitungsstrom wird durch die Impedanz Zj nebengeschlossen, um den Wert in eine Spannung umzuwandeln. 18(f) zeigt einen kapazitiven TIA, der als Ladungsintegrator fungiert. Der kapazitive TIA kann zusammen mit einem Schaltkondensatorschema verwendet werden, um ein ladungsbasiertes Signal auszulesen. Ein Analog-Digital-Wandler (ADC) kann direkt auf der Bitleitung verwendet werden, wie in 18(g) gezeigt wird, um den analogen Wert (zum Beispiel Spannung, Strom oder Ladung) in einen digitalen umzuwandeln, oder er kann einem anderen Verstärker (gestrichelt dargestellt) folgen. 18(h) zeigt ein differentielles Ausleseschema (das auf einem der in 18(d-g) gezeigten Schemata basieren kann, das die Differenz der Ausgabegrößen (zum Beispiel Spannung, Strom oder Ladung) zwischen benachbarten Spalten oder Gruppen von Spalten liest. In einer differentiellen Implementierung werden komplementäre Gewichte in den Einheitszellen in benachbarten Spalten gespeichert.
  • Innerhalb des MAC-Engine-Arrays erleichtert das Einheitselement die Multiplikationsoperation zwischen der Eingabeaktivierung und dem gespeicherten Gewichtswert. Außerdem kann das Einheitselement auch als Transduktionselement fungieren. Es kann auch von der Eingabedomäne, wie etwa Spannung, Strom oder Zeit, in einer anderen Domäne, wie etwa Spannung, Strom, Ladung oder Zeit, umgewandelt werden, der über die gemeinsam genutzte Bitleitung akkumuliert und aus der MAC-Engine ausgelesen wird.
  • In vielen NN-Algorithmen wird der Ausgabe der MAC-Operation ein trainierbares Bias (Offsetterm) hinzugefügt. Dies kann innerhalb der Array-Struktur, wie etwa die in 16 gezeigten, erleichtert werden, indem eine oder mehrere Zeilen von Einheitselementen zugewiesen werden, um den Bias-Parameter zu speichern und geeignete Eingaben an die entsprechenden Wortleitungen anzulegen. Das Bias kann auch in analogen oder digitalen Schaltungen innerhalb der Spaltenauslesestruktur oder in Schaltungen nach der MAC-Einheit vor der Eingabe zur Eingabe der nächsten Schicht des NN enthalten sein.
  • 18 veranschaulicht Beispiele von Implementierungen für die Schnittstellenschaltung für die MAC-Engine. Zum Beispiel ist 18(a) eine Darstellung einer statischen Spannungseingabe. In einem anderen Beispiel veranschaulicht 18(b) pulsdichtemodulierte Spannungsimpulse. In noch einer anderen Ausführungsform veranschaulicht 18(c) veranschaulicht eine direkte Spannungs- oder Stromauslesung. In einer anderen beispielhaften Ausführungsform zeigt 18(d) zeigt eine Transimpedanzverstärker-Auslesung. In einer anderen Ausführungsform veranschaulicht 18(e) einen kapazitiven Transimpedanzverstärker (Ladungsintegrator) zum ladungsbasierten Auslesen. In einer anderen Darstellung, 18(g), kann ein ADC verwendet werden, um das Ergebnis der MAC-Operation direkt auszulesen, oder kann einem Verstärker folgen. In noch einer anderen Darstellung verwendet 18(h) eine Differenzanzeige zwischen benachbarten Spalten oder Sätzen von Spalten, j und j + 1.
  • Für Misch-Signal-IMC-NN-Prozessoren wurden verschiedene Typen von Direktzugriffsspeicher- (RAM) Technologien verwendet, wie etwa SRAM, resistiver RAM (RRAM) oder Phasenänderungsspeicher (PCM), magnetoresistiver RAM (MRAM), ferroelektrische Feldeffekttransistoren (FeFETs) und Flash-Speicher. Speicher, die diese RAM-Technologien verwenden, können in beliebiger Reihenfolge gelesen und aktualisiert werden. SRAM ist eine flüchtige RAM-Speichertechnologie, die typischerweise als Einheitszellen mit sechs, acht oder mehr Transistoren organisiert ist, die binäre Gewichtswerte speichern können. Außerdem ist SRAM in den meisten standardmäßigen integrierten Schaltungsprozessen weit verbreitet und erfordert keine spezielle Verarbeitung. Die anderen oben aufgeführten Technologien, neben Flash-Speicher, sind neue nichtflüchtige Speicher (genannt eNVM oder NVRAM) und können Binärwerte, Werte mit mehr Bits an Auflösung, oder Analogwerte speichern. Die Einheitselemente in diesen verschiedenen NVRAM-Technologien können physikalisch kleiner als eine SRAM-Zelle sein, möglicherweise bis zur minimalen Strukturgröße der Technologie (z. B. in der Größenordnung eines einzelnen Transistors). Viele NVRAM-Technologien befinden sich jedoch noch in der Entwicklung, sind typischerweise nicht in standardmäßigen integrierten Schaltungsprozessen verfügbar, und haben höhere Kosten. Da diese NVRAM-Technologien außerdem eine Neuprogrammierung eines physikalischen Parameters, wie etwa des Widerstands, erfordern, haben sie Probleme aufgrund schlechter Stabilität, Retention, Ausbeute und Driftleistung.
  • Ein einmalig programmierbarer Festwertspeicher (ROM) kann in dem Einheitselement eines IMC-Prozessors verwendet werden. Das ROM-Array kann entweder während oder kurz nach der Herstellung des Prozessors programmiert werden. ROM-basierte Prozessoren können in jedem integrierten Schaltungsprozess unter Verwendung von der Technologie inhärenten Komponenten entworfen werden und haben Vorteile in Bezug auf Leistung, Sicherheit und Kosten. Sie eignen sich gut für Anwendungen, die keine Umprogrammierung im Feld erfordern, wie etwa kostengünstige Sensoren, die an der Edge für Internet-der-Dinge- (IoT) Anwendungen eingesetzt werden. Für andere Anwendungen können, neben Recheneinheiten mit RAM, auch ROM-basierte Recheneinheiten verwendet werden. Die Mehrheit der Modellparameter kann fixiert werden, während ein dedizierter Satz neuprogrammierbarer aufgabenspezifischer Parameter für einige NN-Algorithmen beibehalten wird. Dies kann in einem auf IMC basierenden Prozessor erreicht werden, indem die Mehrheit der Modellparameter innerhalb der ROM-basierten Recheneinheiten mit einer geringeren Anzahl von aufgabenspezifischen Parametern, die in einer RAM-basierten Recheneinheit unter Verwendung einer Technologie, wie etwa SRAM, gespeichert sind, gespeichert werden. Dieses Verfahren behält die meisten Vorteile einer ROM-basierten IMC-Architektur und ermöglicht gleichzeitig die Programmierbarkeit für die Aufgabenspezialisierung, den Umgang mit im Laufe der Zeit variierenden Betriebsbedingungen, und das Training an der Edge.
  • 19 veranschaulicht ein Beispiel eines CMOS-Halbleiterprozesses. Die Gewichtswerte in den IMC-ROM-basierten Recheneinheiten sind während oder kurz nach der Herstellung einmalig programmierbar. Die elektrische Back-End-of-Line- (BEOL) Verbindung in einem CMOS-Halbleiterprozess (in 19 gezeigt) wird verwendet, um die Programmierbarkeit zu ermöglichen. Beispielsweise können Metallverbindungen, Kontakte zu siliziumbasierten Bauelementen (wie etwa Transistoren, Widerstände oder Dioden) oder Vias zwischen Metallschichten verwendet werden, um die in einem NN gespeicherten Gewichte neu zu konfigurieren. Dies kann kostengünstig erfolgen, nachdem die Front-End-of-Line- (FEOL) Verarbeitung abgeschlossen ist, indem die lithografischen Masken geändert werden, die verwendet werden, um die Metall-, Kontakt- oder Via-Schichten in dem BEOL-Prozess zu definieren. Schließlich kann es möglich sein, teilweise bearbeitete CMOS-Wafer für eine spätere Konfiguration zu speichern. Die Waferbearbeitung kann vor der Bearbeitung der Schicht (wie etwa einer Metall-, Kontakt- oder Via-Schicht) gestoppt werden, und kann verwendet werden, um die Gewichte zu definieren, die in den ROM-basierten Recheneinheiten gespeichert werden. An diesem Punkt können die Wafer für die spätere Programmierung gelagert werden, während die restlichen Schichten verarbeitet werden. Dies ermöglicht die schnelle und kostengünstige Herstellung verschiedener Versionen von ROM-basierten Recheneinheiten mit nur Änderungen an einer kleinen Anzahl von Masken oder sogar nur einer einzigen Maskenschicht.
  • Wie gezeigt wird, enthält ein Querschnitt eines typischen CMOS-Halbleiterprozesses, der die Front-End-of-Line (FEOL) zeigt, aus Silizium hergestellte Bauelemente enthält - Widerstände, Transistoren, Kondensatoren. Genauso wie das Back-End-of-Line (BEOL), das die elektrische Verbindung auf dem Chip definiert. Es ist zu beachten, dass der BEOL-Schichtstapel typischerweise auch elektrische Bauelemente, wie etwa Kondensatoren, Induktivitäten, Widerstände usw., enthalten kann. In fortgeschritteneren Prozessen kann der BEOL-Schichtstapel auch nichtflüchtigen Speicher, wie etwa PCM, RRAM und 3D-NAND-Flash, aufweisen.
  • 20 veranschaulicht verschiedene Beispiele von Ausführungsformen zwischen Verbindungen einer Einheitszelle mit einer Wortleitung 2001 und einer Bitleitung 2003. Beispielsweise veranschaulicht in 20(a) die Ausführungsform eine Einheitszelle 2005, die sowohl mit der Bitleitung 2003 als auch mit der Wortleitung 2001 verbunden ist. In 20(b) werden Metallverbindungen geändert, um den in der Zelle gespeicherten Gewichtswert zu ändern. In 20(c) zeigt die Ausführungsform ein ähnliches Beispiel, bei dem Kontakt oder Via-Verbindungen 2007 geändert werden, um den Gewichtswert zu ändern. Somit wird das Einheitszellengewicht durch Entfernen eines Kontakts oder über einer Durchgangsverbindung geändert. Alternativ können interne Metallverbindungen innerhalb der Einheitszelle modifiziert werden, um das in der Einheitszelle gespeicherte Gewicht zu programmieren. Wie beispielsweise in 20(d) gezeigt wird, können Metallschichtverbindungen verwendet werden, um eine Verbindung mit null, einer oder mehr Verbindungsoptionen (z. B. C1, C2 oder C3) herzustellen. In einer solchen Ausführungsform wird das Gewicht geändert, indem interne Metallverbindungen 2009 gewählt werden. 20(e) zeigt, dass Kontakt- oder Via-Verbindungen anstelle von Metallschichtverbindungen verwendet werden können. Einmal programmierbare eFuses können auch zur Programmierung der Gewichtswerte verwendet werden, diese sind jedoch möglicherweise nicht so flächeneffizient wie die Programmierung unter Verwendung von Metall, Kontakt oder Vias (Durchkontaktierungen).
  • ROM-basierte Recheneinheiten, die unter Verwendung der in 20 gezeigten Verfahren programmiert sind, können auch mit den in 17 gezeigten Implementierungen und den oben beschriebenen und in 18 gezeigten Ausleseschemata kompatibel sein. Beispielsweise kann das in 17(a) gezeigte Schema, wo mehrere Einheitszellen parallel geschaltet sind, mit dem in 20(d) und 20(e) gezeigten Programmierverfahren kombiniert werden. Passive (z. B. Widerstände und Kondensatoren) und/oder aktive (z. B. Transistoren) Elemente können in der Einheitszelle enthalten sein, wobei der gespeicherte Gewichtswert bestimmt, wie sie miteinander verbunden sind. Um beispielsweise einen Gewichtswert von „3“ zu speichern, können drei Transistoren parallel und mit der Wortleitung und der Bitleitung verbunden werden. Anstelle mehrerer Transistoren können auch mehrere Finger eines einzelnen Transistors verwendet werden, die entsprechend dem gewünschten Gewicht umkonfiguriert werden.
  • Es kann mehrere Implementierungen für eine In-Memory-Berechnungs- (IMC) ROM-basierte Recheneinheit geben. Dabei kann es sich um eine Kombination von Transistoren und/oder passiven Elementen (Widerstände und Kondensatoren) handeln. Jede dieser Implementierungen nutzt Elemente, die in weit verbreiteten standardmäßigen integrierten Schaltungsprozessen allgemein verfügbar sind, erfordert keine spezialisierte Technologie, und kann daher mit geringen Kosten implementiert werden. Darüber hinaus ist, da diese Implementierungen gut modellierte Komponenten in der Technologie verwenden, ihre Leistung robust und kann im Vergleich zu den oben erwähnten experimentellen oder neu entstehenden Technologien (z. B. RRAM und MRAM) garantiert werden. Transistoren und passive Elemente können in der Größenordnung der minimalen Strukturgröße in der Technologie hergestellt werden, wodurch diese Implementierungen sehr kompakt sind und einen geringen Flächenaufwand haben, was sich direkt in niedrigen Kosten niederschlägt. Im Folgenden werden mehrere spezifische Implementierungen der ROM-basierten Recheneinheit und deren Operation beschrieben. Diese unterscheiden sich hauptsächlich durch die Struktur des Einheitselements im ROM, wie weiter unten diskutiert wird.
  • Aus diesen Gründen haben ROM-basierte IMC-Einheiten die folgenden Vorteile gegenüber anderen Technologien. Sie leiden beispielsweise nicht unter Stabilitäts-, Retentions-, Ausbeute- oder Drift-Problemen, die für den Langzeitbetrieb mit nichtflüchtigen Speichertechnologien, wie etwa PCM, RRAM, MRAM, FeFET oder Flash, ein Problem darstellen können. Darüber hinaus leiden die ROM-basierten IMC-Einheiten nicht unter den Leckströmen, die in Technologien wie etwa SRAM eine erhebliche statische Leistung verbrauchen.
  • ROM-basierte Einheitszellen können unter Verwendung von Elementen entworfen werden, die in allen integrierten Schaltungsprozessen (z. B. Widerstände, Kondensatoren und Transistoren) weit verbreitet sind (z. B. Widerstände, Kondensatoren und Transistoren) und keine spezialisierte Technologie mit hohen Kosten erfordern. ROM-Einheitselemente können mit hoher Dichte und einer Größe in der Größenordnung eines einzelnen Transistors hergestellt werden, wodurch die Kosten weiter gesenkt werden und Algorithmen ermöglicht werden, die eine große Anzahl (z. B. Millionen) von Parametern auf einem einzigen Chip speichern müssen.
  • Möglicherweise ist keine Schaltung zum Programmieren der Einheitselemente erforderlich, wodurch Fläche, Kosten und Energie eingespart werden. ROM-basierte Recheneinheiten können Vertraulichkeit bereitstellen, da keine Schaltkreise, um den Speicher neu zu programmieren oder direkt zu lesen, enthalten sind, und es somit sehr schwierig ist, die Modellparameter (und den Algorithmus) aus der Recheneinheit zu kopieren. ROM-basierte Recheneinheiten können aus ähnlichen Gründen auch eine hohe Integrität und Authentizität aufweisen. Daher kann es, nach dem Einsatz des Sensors, unmöglich sein, die gespeicherten Modellparameter neu zu programmieren, wodurch die Recheneinheit manipulationssicher wird.
  • Die ROM-basierten Recheneinheiten können allein unter Verwendung von BEOL-, Metall-, Kontakt- oder Via-Verbindungen programmiert werden. Wenn eine Schicht, wie etwa die oberste oder letzte Metallschicht, oder eine kleine Anzahl von Schichten zum Programmieren der Recheneinheit verwendet wird, können Wafer bis zur Programmierschicht hergestellt und gespeichert werden. Falls gewünscht, kann die BEOL-Verarbeitung mit Änderungen an nur einer Maske oder einer kleinen Anzahl von Masken abgeschlossen werden, um Recheneinheiten mit aktualisierten oder anderen Algorithmen für verbesserte Leistung, Aufgabenspezialisierung oder völlig neue Anwendungen herzustellen. Dies ist kostengünstig möglich, da nur für eine kleine Anzahl von Masken oder sogar eine einzelne Maske Modifizierungen erforderlich sind.
  • Alle der folgenden in den 21 bis 34 gezeigt Implementierungen von Recheneinheiten, die ROM-basierte Elemente verwenden, können unter Verwendung von Metall-, Kontakt- oder Via-Verbindungen programmiert werden, wie in 20 gezeigt wird. Um die Operation jeder Implementierung zu veranschaulichen, wird ein Beispiel wird vorgestellt, das eine unipolare Gewichtscodierung (z. B. Gewichtswerte von „0“ oder „1“) und ein einzelnes Schnittstellenschema für jede verwendet. Andere Gewichtscodierungen, wie etwa bipolare Gewichte (z. B. Gewichtswerte von „-1“ oder „1“) oder Mehrbit-Gewichtswerte sind unter Verwendung der in 17 gezeigten Schemata möglich. Es ist möglich, andere Schnittstellenschemata zu verwenden, wie etwa die verschiedenen Varianten in 18. Die Wahl des Codierungsverfahren und der Schnittstelle (Treiber und Ausleseschema) ist abhängig von technologischen Einschränkungen sowie von Leistungskennzahlen, wie etwa Fläche, Kosten, Latenz, Durchsatz und Signal-Rausch-Verhältnis.
  • 21 veranschaulicht ein Beispiel einer Einzeltransistor- (1T) ROM-basierten Recheneinheit, die eine erste Implementierung verwendet. Ein Einzeltransistor kann als ROM-Einheitselement verwendet werden, das einen binären Gewichtswert speichert, beispielsweise entweder 0" oder „1“. Dies kann mit mehreren Implementierungen erreicht werden. 21 veranschaulicht eine erste Implementierung, bei der ein einzelner NMOS-Transistor 2103 verwendet werden kann, der als das Einheitselement verwendet werden kann, wobei der erste (Drain-)Anschluss mit der Wortleitung verbunden ist und der zweite (Source-)Anschluss mit der Bitleitung verbunden ist. Ein Drei-mal-Drei-Array-Unterabschnitt eines N mal M Arrays wird gezeigt. Anstelle von NMOS-Bauelementen können PMOS-Transistoren verwendet werden. Außerdem können die Source- und Drain-Anschlüsse umgeschaltet werden. Das Gewicht kann im Gate-Anschluss des Transistors entweder auf eine Spannung Von oder auf eine Spannung VOff codiert werden. Wenn das Gate des Transistors Mi,j mit Von verbunden ist, ist das Bauelement eingeschaltet, und das entsprechende gespeicherte Gewicht, Wi,j, kann als „1“ angesehen werden. Der Transistor kann als Widerstand mit effektivem Widerstand Ri,j = Ron und Leitwert Gi,j = Gon n wirken. Alternativ, wenn das Transistor-Gate mit Voff verbunden ist, kann das Bauelement ausgeschaltet sein, und Wi,j wird als „0“ betrachtet. Die Gewicht kann auch auf „0“ gesetzt werden, indem das Gate mit Von verbunden bleibt und ein oder beide Anschlüsse von der Wortleitung oder Bitleitung getrennt werden. Der Transistor kann als Widerstand mit effektivem Widerstandswert Ri,j = Roff und Leitwert Gi,j = Goff wirken. Eine solche Implementierung kann auch mit den in 17 gezeigten Techniken zum Erhöhen der Auflösung der Eingabeaktivierungen oder Gewichten sowie mit der Differentialoperation kompatibel sein. Der Zusammenhang zwischen Leitwert und Gewichtswert kann mit der folgenden Formel beschrieben werden:
    G i , j = G s c a l e W i , j + G o f f s e t
    Figure DE102021208010A1_0026
  • Der Ausdruck Gscale, kann ein Skalierungsfaktor sein, der das Gewicht in einen Leitwert umwandelt, und Goffset ist ein Offset, der auch gleich Null sein kann.
  • Wie oben beschrieben, kann es mehrere mögliche Implementierungen der Zeilentreiber- und Spaltenausleseschaltungen geben (Spannungs- oder Strom-basiert, statisch oder dynamisch). In einer Ausführungsform kann ein einzelnes mögliches Treiber- und Ausleseschema ein Beispiel sein (statische, Spannungs-basierte Eingabeaktivierung und Stromauslesung). Bei dieser Implementierung wird der Rücksetzblock nicht benötigt und kann weggelassen werden. Betrachtet man nur eine einzelne Bitleitung und Spalte (entsprechend einem einzelnen Neuron im NN), wird die Multiplikationsoperation durchgeführt, indem Eingabeaktivierungen (Xi) als Spannungen (VXi) 2101 entlang der Wortleitung angelegt werden, die binäre Informationen (digital) oder mehrere Bits von Informationen (bis zu Analogwerten) tragen können:
    V X i = V X s c a l e X i + V X o f f s e t
    Figure DE102021208010A1_0027
  • Der Ausdruck VXscale ist ein Skalierungsfaktor, der den Aktivierungswert in eine Spannung umwandelt, und der Ausdruck VXoffset ist ein Offset, der auch gleich Null sein kann. Die Aktivierungsspannung erzeugt in dem Transistor einen Strom, der zu seinem effektiven Leitwert proportional ist und somit eine Multiplikation mit dem gespeicherten Gewichtswert darstellt:
    I i , j = V X i V B L R i , j = ( V X i V B L ) G i , j
    Figure DE102021208010A1_0028
  • Wenn der zweite Anschluss jedes Transistors in einer Spalte mit derselben Bitleitung am Eingang eines Transimpedanzverstärkers (wie in 18 gezeigt wird) verbunden ist und auf einem konstanten Spannungspegel (VBL) gehalten wird, repräsentiert die Stromsummierung die Akkumulationsoperation:
    I B L j = i = 1 N I i , j = i = 1 N ( V X i V B L ) G i , j
    Figure DE102021208010A1_0029
  • In einer beispielhaften Implementierung, die binäre Gewichtswerte verwendet, wobei Goffset = 0, VBLj = 0V, VXoffset = 0V ist, ergibt die Kombination von Gleichung (Gl.) 18, 19 und 21:
    I B L j = i = 1 N V X s c a l e X i G s c a l e W i , j = V X s c a l e G s c a l e i = 1 N X i W i , j
    Figure DE102021208010A1_0030
  • Die Summierung 2109 in Gl. 22 repräsentiert die gesamte MAC-Operation. Der Strom kann mit einem Transimpedanzverstärker in eine Spannung umgewandelt werden und dann in einer nachfolgenden Analog-Digital-Wandler-Stufe digitalisiert werden. Alternativ kann der Strom direkt unter Verwendung eines Stromeingangs-ADC digitalisiert oder gepuffert werden und an eine nachfolgende Stufe weitergegeben werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der in dieser Spalte gespeicherten Gewichten durchgeführt. Die Schaltung kann auch einen Rücksetzblock 2107 aufweisen.
  • 22 veranschaulicht eine alternative Implementierung, die einen einzelnen Transistor als das Einheitselement verwendet. In dieser Ausführungsform ist der Gate-Anschluss des Transistors mit der Wortleitung verbunden, der erste Anschluss (Drain) ist mit der Bitleitung verbunden, und der zweite Anschluss (Source) ist mit einer Referenzspannung verbunden. Ein Drei-mal-Drei-Array-Unterabschnitt eines N mal M Arrays wird gezeigt. Anstelle von NMOS-Bauelementen können PMOS-Transistoren verwendet werden. Zusätzlich können die Source- und Drain-Anschlüsse vertauscht werden. Diese Referenzspannung kann als Signalmasse dargestellt werden, kann aber je nach Systemdesign auch eine andere Spannung sein. Das Gewicht kann in der Einheitszelle codiert werden, indem eines oder mehrere von Gate, Drain oder Source von der Wortleitung, Bitleitung oder Referenzspannung unter Verwendung von Metall, Kontakt oder Via-Verbindungen im CMOS-Prozess (die gestrichelten Linien in 22) verbunden oder getrennt werden. Wenn alle diese Anschlüsse verbunden sind, ist das in dem Transistor Mi,j gespeicherte Gewicht Wi,j „1“. In Abhängigkeit von dem Biasing-Schema des Transistors gibt es mehrere Möglichkeiten, den Einfluss der Gewicht auf die Bauelementparameter zu modellieren. Wird der Transistor im Triodenbereich vorgespannt, kann er als Widerstand mit effektivem Widerstand Ri,j = Ron und Leitwert Gi,j = Gon modelliert werden. Alternativ, wenn der Transistor in den Sättigungs- oder Unterschwellenbereichen vorgespannt ist, kann er als Stromquelle modelliert werden, die einen Strom Ij,j = Ion liefert. Wenn einer der Anschlüsse getrennt ist, ist das in dem Transistor Mi,j gespeicherte Gewicht Wi,j „0“. Wenn der Transistor im Triodenbereich vorgespannt ist, kann er als Widerstand mit effektivem Widerstand Ri,j = Roff und Leitwert Gi,j = Goff modelliert werden (Roff kann sehr groß sein, wenn die Anschlüsse von der Bitleitung oder der Referenzspannung getrennt sind). Alternativ, wenn der Transistor alternativ in den Sättigungs- oder Unterschwellenbereichen vorgespannt ist, kann er als Stromquelle modelliert werden, die einen Strom Ii,j = Ioff liefert. Diese Implementierung ist auch mit den in 17 gezeigten Techniken zum Erhöhen der Auflösung der Eingabeaktivierungen oder Gewichten sowie der Differentialoperation kompatibel. Für den Fall, dass sich der „Ein“- („on“) Transistor im Triodenbereich befindet und als Impedanz modelliert wird, kann die Beziehung zwischen dem Leitwert und dem Gewichtswert mit Gl. 18 beschrieben werden.
  • Wie oben beschrieben wird, gibt es mehrere mögliche Implementierungen der Zeilentreiber- und Spaltenausleseschaltungen (Spannungs- oder Strom-basiert, statisch oder dynamisch). Hier wird nur ein einziges mögliches Ansteuer- und Ausleseschema als Beispiel (statische, spannungsbasierte Eingabeaktivierung und Stromauslesung) für den Fall beschreiben, dass der Transistor im Triodenbereich 2203 als Impedanz modelliert wird. Bei dieser Implementierung wird der Rücksetzblock nicht benötigt und kann weggelassen werden. Die Eingabeaktivierungen Xi können in den Spannungen VXi codiert werden, wie oben und in Gl. 19 beschrieben wird. Die Spannung VXi (als Spannungen 2201 gezeigt) kann analoge Werte annehmen, die weiterhin die Konduktanz des Transistors modulieren. Alternativ kann VXi ein digitales Signal mit nur zwei Pegeln, niedrig oder hoch, sein, entsprechend Xi = 0 bzw. Xi = 1. In dem Fall, in dem VXi niedrig ist, ist der Transistor unabhängig vom Gewichtswert immer ausgeschaltet. Der Strom durch das Einheitselement entspricht der Multiplikation von Aktivierung und Gewicht und wird beschrieben durch:
    I i , j = V B L X i G i , j
    Figure DE102021208010A1_0031
  • Unter Betrachtung nur einer einzelnen Bitleitung und Spalte (entsprechend einem einzelnen Neuron im NN), werden alle Ströme von den Einheitselementen entlang der Bitleitung wie oben beschrieben summiert:
    I B L j = i = 1 N I i , j = i = 1 N V B L X i G i , j
    Figure DE102021208010A1_0032
  • Kombinieren von Gl. 24 mit Gl. 18 und mit Goffset = 0 ergibt:
    I B L j = V B L G s c a l e i = 1 N X i W i j
    Figure DE102021208010A1_0033
  • Bei dieser Implementierung kann die Spannung VBL nicht auch 0V sein und muss sich von der an der Source jedes Transistors angeschlossenen Referenzspannung unterscheiden, um einen Strom zu erzeugen. Die Summe 2109 in Gl. 25 repräsentiert die gesamte MAC-Operation. Der Strom kann mit einem Transimpedanzverstärker in eine Spannung umgewandelt werden und dann in einer nachfolgenden Analog-Digital-Wandler-Stufe digitalisiert werden. Alternativ kann der Strom direkt unter Verwendung eines Strom-Eingangs-ADC digitalisiert oder gepuffert werden und an eine nachfolgende Stufe weitergegeben werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der in dieser Spalte gespeicherten Gewichten durchgeführt.
  • 23 veranschaulicht eine alternative Ausführungsform, die einen einzelnen Transistor als das Einheitselement verwendet. In dieser Ausführungsform ist der Gate-Anschluss des Transistors mit der Wortleitung verbunden, der erste Anschluss (Drain) ist mit der Bitleitung verbunden, und der zweite Anschluss (Source) ist mit einer aus einem Satz von Referenzspannungen verbunden. Ein Drei-mal-Drei-Array-Unterabschnitt eines N mal M Arrays wird gezeigt. Anstelle von NMOS-Bauelementen können PMOS-Transistoren verwendet werden. Außerdem können die Source- und Drain-Anschlüsse umgeschaltet werden. Das Gewicht wird programmiert, indem eine der möglichen Referenzspannungen ausgewählt wird und an den Transistor angelegt wird, wobei jeder Pegel einem einzelnen Gewichtswert entspricht. Es werden drei Referenzspannungen 2303 gezeigt ((VREF1, VREF2, aud VREF3), jedoch kann jede beliebige ganze Zahl, P, von Referenzspannungen verwendet werden. Mehr Referenzspannungspegel ermöglichen eine größere Anzahl von Gewichtspegeln (höhere Auflösung), und weniger Referenzspannungen ermöglichen nur eine kleinere Anzahl von Gewichtspegeln (geringere Auflösung). Es ist möglich, zu erlauben, dass der Transistor von allen Referenzspannungen getrennt ist, was einem zusätzlichen Pegel entspricht (für insgesamt P + 1). Diese Implementierung ist auch mit den in 17 gezeigten Techniken zum Erhöhen der Auflösung der Eingabeaktivierungen oder Gewichte sowie der Differentialoperation kompatibel. Die Referenzspannungspegel können aus einer beliebigen Verteilung gezogen werden (d. h., sie sind möglicherweise nicht gleichmäßig verteilt), es kann aber eine lineare Verteilung verwendet werden.
  • Der Referenzspannungspegel VREFi,j in einer einzelnen Elementarzelle entspricht dem Gewichtspegel Wi,j und kann durch den folgenden Ausdruck beschrieben werden:
    V R E F i , j = V R E F s c a l e W i , j + W R E F o f f s e t
    Figure DE102021208010A1_0034
  • Der Ausdruck VREFscale ist ein Skalierungsfaktor, der den Gewichtswert in einen Spannungspegel umwandelt, und VREFoffset ist ein Offset-Term, der auch gleich Null sein kann. In diesem Fall können wir den Widerstand und die Konduktanz des Transistors Mi,j als konstante Werte modellieren: R0 bzw. G0.
  • Wie oben beschrieben, gibt es mehrere mögliche Implementierungen der Zeilentreiber- und Spaltenausleseschaltungen (Spannungs- oder Strom-basiert, statisch oder dynamisch). Hier werden beispielhaft nur ein einziges mögliches Ansteuer- und Ausleseschema (statische, spannungsbasierte Eingabeaktivierung und Stromauslesung). Bei dieser Implementierung wird der Rücksetzblock nicht benötigt und kann weggelassen werden. Die Eingabeaktivierungen Xi können in den Spannungen VXi (als 2301 gezeigt) codiert werden, wie oben und in Gl. 19 beschrieben wird. Die Spannung VXi kann analoge Werte annehmen, die die Konduktanz des Transistors modulieren. Alternativ kann VXi ein digitales Signal mit nur zwei Pegeln sein, niedrig oder hoch, entsprechend Xi = 0 bzw. Xi = 1. In dem Fall, in dem VXi niedrig ist, ist der Transistor unabhängig vom Gewichtswert immer ausgeschaltet. Der Strom durch das Einheitselement entspricht der Multiplikation von Aktivierung und Gewicht und wird beschrieben durch:
    I i , j = ( V R E F i , j V B L ) X i R 0 = ( V R E F i , j V B L ) X i G 0
    Figure DE102021208010A1_0035
  • Betrachtet man nur eine einzelne Bitleitung und Spalte (entsprechend einem einzelnen Neuron im NN), werden alle Ströme von den Einheitselementen in der Bitleitung wie oben beschrieben summiert:
    I B L j = i = 1 N ( V R E F i , j V B L ) X i G 0
    Figure DE102021208010A1_0036
  • Kombinieren von Gl. 28 mit Gl. 26 und Verwendung von VREFoffset = 0V und VBL = 0V ergibt:
    I B L j = V R E F s c a l e G 0 i = 1 N X i W i , j
    Figure DE102021208010A1_0037
  • Die Summierung 2309 in Gl. 29 repräsentiert die gesamte MAC-Operation. Der Strom kann mit einem Transimpedanzverstärker in eine Spannung umgewandelt werden und dann in einer nachfolgenden Analog-Digital-Wandlerstufe digitalisiert werden. Alternativ kann der Strom direkt unter Verwendung eines Strom-Eingangs-ADC digitalisiert oder gepuffert werden und an eine nachfolgende Stufe weitergegeben werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der in dieser Spalte gespeicherten Gewichten durchgeführt.
  • 24 veranschaulicht eine Implementierung eines ROM-basierten MAC-Arrays, das einen einzelnen Kondensator als ein Einheitselement verwendet. Ein Drei-mal-Drei-Array-Unterabschnitt eines N mal M Arrays wird gezeigt. Ein Anschluss ist mit der Bitleitung verbunden, und einer mit der Wortleitung. Das Gewicht ist in der Verbindung des Anschlusses codiert. Bei binären Gewichtswerten (z. B. Wi,j ist entweder „0“ oder „1“) sind die Anschlüsse entweder beide verbunden oder eine oder beide Anschlüsse sind getrennt. Wenn beide Anschlüsse verbunden sind, ist das gespeicherte Gewicht Wi,j = 1, und ansonsten Wi,j = 0. Die Verbindung zur Wortleitung kann, wie mit einer gestrichelten Linie gezeigt wird, programmierbar sein, jedoch können stattdessen die Bitleitungsverbindung oder beide Verbindungen verwendet werden. Es können mehr Kondensatoren parallel verwendet werden, um weitere Gewichtsstufen zu haben. Diese Implementierung ist auch mit den in 17 gezeigten Techniken zur Erhöhung der Auflösung der Eingabeaktivierungen bzw. Gewichte sowie der Differentialoperation kompatibel. Der Kondensatorwert kann mit dem Gewichtspegel codiert werden und kann wie folgt beschrieben werden:
    C i , j = C u W i , j + C o f f s e t
    Figure DE102021208010A1_0038
  • Ausdruck Cu ist ein Skalierungsfaktor, der den Gewichtswert in eine Kapazität umwandelt, und Coffset ist ein Offset-Ausdruck (zum Beispiel eine feste parasitäre Kapazität), der auch gleich Null sein kann. Es ist zu beachten, dass Cu die Einheitskapazität ist, wenn nur ein einzelner Einheitskondensator mit binären Gewichtswerten („0“ oder „1“) verwendet wird. Wenn nur ein einzelner Kondensator für binäre Gewichtswerte verwendet wird, wird der maximale Wert, den Ci,j annehmen kann, als Cmax definiert und repräsentiert die Summe der Kapazität und Coffset. Wenn in jedem Einheitselement k Kondensatoren verwendet werden, um k + 1 Gewichtsstufen bereitzustellen, ist Cmax gleich der Summe aller Kondensatoren sowie Coffset. Im Allgemeinen gilt Cmax = Wmax · Cu + Coffset, wobei Wmax der größtmögliche Gewichtswert ist.
  • Wie oben beschrieben, kann es mehrere mögliche Implementierungen der Zeilentreiber- und Spaltenausleseschaltungen geben (dynamisch auf Spannung, Strom, Ladung oder Zeit). In einer Ausführungsform offenbart das System als Beispiel ein einzelnes mögliches Ansteuer- und Ausleseschema (dynamische, spannungsbasierte Eingabeaktivierung und spannungsbasiertes Auslesen). In dieser Ausführungsform wird der Rücksetzblock verwendet. Die Eingabeaktivierungen Xi können in den Spannungen VXi (als 2401 gezeigt) codiert werden, wie oben beschrieben und in Gl. 19 beschrieben wird. Die Spannung Vxi kann analoge Werte annehmen. Alternativ kann VXi ein digitales Signal mit nur zwei Pegeln sein, niedrig oder hoch, entsprechend Xi = 0 bzw. Xi = 1. Anfänglich werden alle Wortleitungen auf eine Rücksetzspannung VXreset gesetzt, und der Rücksetzblock (der auch in die Ausleseschaltung integriert sein kann) wird verwendet, um die Bitleitungsspannung auf eine Spannung Vr zurückzusetzen. Im nächsten Schritt wird die Bitleitung freigegeben und werden die Eingabeaktivierungsspannungen VXi an den Wortleitungen angelegt. Die Eingabeaktivierungsspannung zusammen mit dem Kapazitätswert bewirkt, dass eine kleine Ladung von jedem Einheitselement entlang der entsprechenden Gesamtbitleitungskapazität geteilt wird:
    Δ Q i , j = V X i C i , j
    Figure DE102021208010A1_0039
  • Die mit der Bitleitung verbundene Gesamtkapazität CT ist gegeben durch:
    C T = C B L + i = 1 N C i , j = C B L + C u i = 1 N W i , j + N C o f f s e t
    Figure DE102021208010A1_0040
  • Der Ausdruck CBL repräsentiert jede zusätzliche feste Kapazität, die mit der Bitleitung verbunden ist. Betrachtet man nur eine einzelne Bitleitung und Spalte (entsprechend einem einzelnen Neuron im NN), ist die Gesamtspannung, VBLj, die sich auf der Bitleitung entwickelt, proportional zu der Summe aller ΔQi,j und Faktoren, die sich auf VXreset und Vr beziehen:
    V B L j = V r + i = 1 N [ Δ Q i , j C T V X r e s e t C i , j C T ] = V r + i = 1 N [ V X i C i , j C T V X r e s e t C i , j C T ]
    Figure DE102021208010A1_0041
  • Kombinieren von Gl. 19, 30 und 33 mit VXoffset = 0V, Coffset = 0F, CBL = 0F, VXreset = 0V und Vr = 0V ergibt:
    V B L j = V X s c a l e C u C T i = 1 N X i W i , j
    Figure DE102021208010A1_0042
  • Die Summierung in Gl. 34 repräsentiert die gesamte MAC-Operation. Diese Spannung kann von jeder Bitleitung unter Verwendung eines Spannungs-Spannungs-Puffers oder - Verstärkers gelesen und dann in einer nachfolgenden Analog-Digital-Wandlerstufe digitalisiert werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der in dieser Spalte gespeicherten Gewichte durchgeführt. Siehe aus Gl. 32, dass die Kapazität CT von den Gewichtswerten abhängig ist, und Erweitern von Gl. 34 somit ergibt:
    V B L j = V X s c a l e i = 1 N W i , j i = 1 N X i W i , j
    Figure DE102021208010A1_0043
  • Aus Gl. 35 gibt es einen zusätzlichen Ausdruck im Nenner, der sich auf die Summe aller Gewichtswerte bezieht, die einen Fehler in die MAC-Operation einführen. Wenn das Ergebnis der Summierung 2409 aller Gewichte vorhersagbar ist und/oder eine minimale Variation aufweist, kann dieser Fehler auf Systemebene oder während des Trainings des auf der Recheneinheit auszuführenden neuronalen Netzwerkalgorithmus herauskalibriert werden, um ihn vernachlässigbar zu machen.
  • 25 veranschaulicht eine alternative Ausführungsform eines ROM-basierten MAC-Arrays, das einen einzelnen Kondensator als ein Einheitselement verwendet, das das im vorherigen Abschnitt erwähnte Problem löst. Bei diesem Ausführungsbeispiel ist einer der Anschlüsse des Kondensators entweder mit der Wortleitung oder mit einer als Masse gezeigten Referenzspannung verbunden, kann jedoch einen beliebigen anderen Spannungspegel aufweisen. In dieser Ausführungsform ist die Gesamtkapazität auf der Bitleitung unabhängig von den Gewichtswerten und ist durch die nachstehende Gl. 36 gegeben:
    C T = C B L + i = 1 N C m a x = C B L + N C m a x
    Figure DE102021208010A1_0044
  • Durch die Verwendung der gleichen dynamischen spannungsbasierten Eingabeaktivierung und des spannungsbasierten Ausleseschemas, wie es für die vorherige Implementierung beschrieben wird, kann denselben Ausdruck für die Bitleitungsspannung VBLj wie in Gl. 34 zur Folge haben, während Gl. 36 für CT verwendet wird (unter der Annahme, dass VXoffSet = 0F, Coffset = 0F, CBL = 0F, Vr = 0V). Diese Summierung kann die gesamte MAC-Operation repräsentieren, und es gibt keine(n) Fehlerausdruck oder Abhängigkeit basierend auf der Gesamtsummierung 2509 aller Gewichtswerte. Diese Spannung kann von jeder Bitleitung unter Verwendung eines Spannungs-Spannungs-Puffers oder -Verstärkers gelesen und dann in einer nachfolgenden Analog-Digital-Wandlerstufe digitalisiert werden. Diese Operation kann in jeder Spalte (Neuron) des Arrays unter Verwendung der in dieser Spalte gespeicherten Gewichte durchgeführt werden.
  • 26(a) veranschaulicht eine Implementierung eines ROM-basierten MAC-Arrays, das einen einzelnen Transistor und einen einzelnen Kondensator in dem Einheitselement verwendet. Der Kondensator kann ein von dem Transistor getrenntes Element sein, oder könnte eine der Kapazitäten sein, wie beispielsweise die Source- (oder Drain-) Diodenkapazität selbst. Ein Drei-mal-Drei-Array-Unterabschnitt eines N mal M Arrays wird gezeigt. Der Transistor und der Kondensator sind zwischen jeder Wortleitung und Bitleitung in Reihe geschaltet. Die Reihenfolge von Transistor und Kondensator kann umgeschaltet werden. Anstelle von NMOS-Bauelementen können PMOS-Transistoren verwendet werden. Außerdem können die Anschlüsse der Source- und Drain-Anschlüsse umgeschaltet werden. Das Gewicht ist im Gate-Anschluss des Transistors codiert, entweder auf eine Spannung Von oder auf eine Spannung Voff. Bei dieser Implementierung fungiert jeder Transistor als Schalter, der den Shunt-Anschluss des entsprechenden Kondensators zwischen der Bitleitung und der Wortleitung öffnet oder schließt. Die Transistorkonduktanz ist nicht kritisch, aber er sollte hoch genug sein, um ein geeignetes dynamisches Einschwingen mit dem Kapazitätswert in Abhängigkeit von der gewünschten Operationsfrequenz zu ermöglichen. Wenn das Gate des Transistors Mi,j mit Von verbunden ist, ist das Bauelement eingeschaltet, und das entsprechende gespeicherte Gewicht Wi,j wird als „1“ betrachtet. Alternativ, wenn das Transistor-Gate mit VOff verbunden ist, ist das Bauelement ausgeschaltet und Wi,j wird als „0“ betrachtet. Diese Implementierung ist auch mit den in 17 gezeigten Techniken zum Erhöhen der Auflösung der Eingabeaktivierungen oder Gewichten sowie der Differentialoperation kompatibel. Der Transistor fungiert als einmalig programmierbarer spannungsgesteuerter Schalter, der den Shunt-Anschluss des Kondensators zwischen der Wortleitung und der Bitleitung öffnet oder schließt. Somit kann die oben beschriebene Schaltung (z. B., 26) mit dem gleichen Verfahren wie in 24 modelliert werden. Das Gewicht modifiziert die durch die Bitleitung gesehene effektive Kapazität des Einheitselements Ci,j, unter Verwendung von Gl. 30, durch den Zustand des Gates des Transistors Mi,j.
  • Wie oben beschrieben, gibt es mehrere mögliche Implementierungen der Zeilentreiber- und Spaltenausleseschaltungen (dynamisch auf Spannung, Strom oder Ladung basierend). Diese Implementierung kann nach derselben dynamischen Eingabeaktivierung und spannungsbasierten Auslesung arbeiten, die oben für die Schaltung von 24 beschrieben wurde. Die Gleichungen 31-35 können verwendet werden, um die Ausgabe der MAC-Operation zu berechnen, wenn ein Satz von Eingabeaktivierungen und Gewichtswerten gegeben ist. Diese Spannung kann von jeder Bitleitung unter Verwendung eines Spannungs-Spannungs-Puffers oder - Verstärkers gelesen und dann in einer nachfolgenden Analog-Digital-Wandlerstufe digitalisiert werden. Diese Operation kann in jeder Spalte (Neuron) des Arrays unter Verwendung der in dieser Spalte gespeicherten Gewichte durchgeführt werden. Es kann einen zusätzlichen Ausdruck im Nenner (Gl. 18) geben, der sich auf die Summe aller Gewichtswerte bezieht, die einen Fehler in die MAC-Operation einführen. Wenn das Ergebnis der Summierung aller Gewichte vorhersehbar ist und/oder minimale Schwankungen aufweist, kann dieser Fehler auf Systemebene kalibriert werden und wie zuvor beschrieben vernachlässigbar sein.
  • Eine alternative Ausführungsform der Einheitszelle in 26(a) ist in 26(b) gezeigt, die das Problem von CT in Abhängigkeit von den Gewichtswerten lösen kann. In dieser Implementierung der Einheitszelle ist ein zusätzliches Metallpotential, ein Kontakt oder eine Verbindung zu einer Referenzspannung (als Masse gezeigt, aber es kann eine andere Spannung sein) enthalten, die nur dann verbunden ist, wenn das Gate des Transistors mit VOff verbunden ist. Ansonsten ist diese Implementierung identisch mit der in 26(a) gezeigten Implementierung. Auf diese Weise bleibt die Gesamtkapazität jeder Bitleitung unabhängig von den Gewichtswerten konstant und ist durch Gl. 36 gegeben.
  • 27(a) veranschaulicht eine alternative Implementierung unter Verwendung eines einzelnen Transistors und Kondensators als Einheitselement. Ein Drei-mal-Drei-Array-Unterabschnitt eines N mal M Arrays 2703 ist gezeigt. Der Transistor und der Kondensator können zwischen jeder Bitleitung und einer als Masse gezeigten Referenzspannung in Reihe geschaltet sein, es kann jedoch auch eine andere Referenzspannung verwendet werden. Die Reihenfolge von Transistor und Kondensator kann umgeschaltet werden. Anstelle von NMOS-Bauelementen können PMOS-Transistoren verwendet werden. Außerdem können die Anschlüsse der Source- und Drain-Anschlüsse umgeschaltet werden. Das Gewicht wird in der Einheitszelle codiert, indem eines oder mehrere der Transistor-Gate-, Transistor-Drain-, Transistor-Source- oder Kondensator-Anschlüsse von der Wortleitung, Bitleitung oder Referenzspannung unter Verwendung von Metall, Kontakt oder über Verbindungen im CMOS-Prozess verbunden oder getrennt werden (wie durch die gestrichelten Linien in 27(a) veranschaulicht wird). Wenn alle diese Anschlüsse verbunden sind, ist das in der Elementarzelle gespeicherte Gewicht Wi,j „1“. Wenn einer der Anschlüsse getrennt ist, ist das im Transistor gespeicherte Gewicht Wi,j „0“. Diese Implementierung kann auch mit den in 17 gezeigten Techniken zur Erhöhung der Auflösung der Eingabeaktivierungen bzw. Gewichte sowie der Differentialoperation kompatibel sein. Ähnlich wie bei den vorherigen kapazitiven Implementierungen modifiziert das Gewicht die von der Bitleitung gesehene effektive Kapazität des Einheitselements, Ci,j, basierend auf dem Gewichtswert wie in Gl. 30.
  • Wie oben beschrieben, gibt es mehrere mögliche Implementierungen der Zeilentreiber- und Spaltenausleseschaltungen (dynamisch auf Spannung, Strom, Ladung oder Zeit basierend). In einer Ausführungsform nur ein einziges mögliches Ansteuer- und Ausleseschema als Beispiel (dynamische, spannungsbasierte Eingabeaktivierung und spannungsbasiertes Auslesen). In dieser Implementierung wird der Rücksetzblock verwendet. Die Eingabeaktivierungen Xi können in den Spannungen VXi codiert werden, wie oben und in Gl. 19 beschrieben wird. Vxi ist ein digitales Signal mit nur zwei Pegeln, niedrig oder hoch, entsprechend Xi = 0 bzw. Xi = 1. Für den niedrigen Spannungspegel ist der Transistor ausgeschaltet und für den hohen Pegel ist der Transistor eingeschaltet (verbindet den Kondensator zwischen der Bitleitung und der Referenzspannung). Anfänglich werden alle Aktivierungen VXi an die Wortleitungen angelegt, und die Bitleitungen werden unter Verwendung des Rücksetzblocks (der auch in die Ausleseschaltung integriert sein kann) auf eine Spannung Vr vorgeladen. Im nächsten Schritt werden die Bitleitungen freigegeben und alle Wortleitungen auf den hohen Spannungspegel gesetzt, so dass alle Transistoren durchschalten. Die Eingabeaktivierungsspannung zusammen mit dem Einheitskapazitätswert bewirkt, dass eine kleine Ladung von jedem Einheitselement entlang der entsprechenden Gesamtbitleitungskapazität geteilt wird:
    Δ Q i , j = X i V r C i , j
    Figure DE102021208010A1_0045
  • Die mit der Bitleitung verbundene Gesamtkapazität CT ergibt sich aus Gl. 32. Betrachtet man nur eine einzelne Bitleitung und Spalte (entspricht einem einzelnen Neuron im NN), ist die Gesamtspannung VBLj, die sich auf der Bitleitung entwickelt, proportional zur Summe aller ΔQi,j und eines Faktors, der sich auf die Rücksetzspannung Vr bezieht:
    V B L j = V r C B L C T + i = 1 N Δ Q i , j C T = V r C B L C T + i = 1 N V r X i C i , j C T
    Figure DE102021208010A1_0046
  • Kombinieren von Gl. 30 und 38 mit Coffset = 0F und CBL = 0F ergibt:
    V B L j = V r + V r C u C T i = 1 N X i W i , j
    Figure DE102021208010A1_0047
  • Die Summierung in Gl. 39 repräsentiert die gesamte MAC-Operation. Diese Spannung kann von jeder Bitleitung unter Verwendung eines Spannungs-Spannungs-Puffers oder - Verstärkers gelesen und dann in einer nachfolgenden Analog-Digital-Wandlerstufe digitalisiert werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der in dieser Spalte gespeicherten Gewichten durchgeführt. Siehe aus Gl. 32, dass die Kapazität CT von den Gewichtswerten abhängig ist, und Erweitern von Gl. 39 somit ergibt:
    V B L j = V r + V r i = 1 N W i , j i = 1 N X i W i , j
    Figure DE102021208010A1_0048
  • Dies ist ähnlich zu Gl. 35 für die in 24 gezeigte Implementierung. Es gibt einen zusätzlichen Ausdruck im Nenner, der sich auf die Summe aller Gewichtswerte bezieht, die einen Fehler in die MAC-Operation einführen. Wenn das Ergebnis der Summierung aller Gewichten vorhersehbar ist und/oder minimale Schwankungen aufweist, kann dieser Fehler auf Systemebene kalibriert werden und, wie zuvor beschrieben, vernachlässigbar sein.
  • Eine alternative Implementierung der Einheitszelle in 27(a) ist in 27(b) gezeigt, was das Problem von CT in Abhängigkeit von den Gewichtswerten löst. Ähnlich wie in 27(a) ist, wenn das Gate des Transistors mit der Bitleitung verbunden ist, seine Source mit einer Referenzspannung (z. B. Masse) verbunden, ist seine Drain mit dem Kondensator verbunden, und ist der Kondensator mit der Bitleitung verbunden, wobei der in der Elementarzelle gespeicherte Gewichtswert „1“ ist. Um einen „0“-Wert zu speichern, ist der Transistor nicht mit dem Kondensator verbunden, sondern ist der Kondensator mit einer Referenzspannung verbunden (die als Masse dargestellt ist, aber auch eine andere Spannung sein kann). Diese Implementierung kann mit der in 27(a) gezeigten Implementierung identisch sein. Auf diese Weise kann die Gesamtkapazität jeder Bitleitung unabhängig von den Gewichtswerten konstant bleiben, und ist durch Gl. 36 gegeben.
  • 28 veranschaulicht eine Implementierung unter Verwendung von zwei Transistoren und einem Kondensator in dem Einheitselement. Ein Drei-mal-Drei-Array-Unterabschnitt 2805 eines N mal M Arrays ist gezeigt. Der Kondensator ist mit der entsprechenden Bitleitung verbunden, und das Gate eines Transistors ist mit der Wortleitung verbunden. Derselbe Transistor verbindet das andere Ende des Kondensators mit einer aus einem Satz von Referenzspannungen. Es werden drei Referenzspannungen gezeigt (VREF1, VREF2, und VREF3), jedoch kann jede beliebige ganze Zahl, P, von Referenzspannungen verwendet werden. Mehr Referenzspannungspegel ermöglichen eine größere Anzahl von Gewichtspegeln (höhere Auflösung) und weniger Referenzspannungspegel ermöglichen nur eine kleinere Anzahl von Gewichtspegeln (geringere Auflösung). Der andere Transistor verbindet den von den beiden Transistoren und dem Kondensator gemeinsam genutzten Knoten mit einer anderen Referenzspannung, VY. Dieses Gate des zweiten Transistors ist mit einem Spannungssignal VSET verbunden, das den Transistor ein- und ausschaltet. Anstelle von NMOS-Bauelementen können PMOS-Transistoren verwendet werden. Zusätzlich können die Source- und Drain-Anschlüsse vertauscht werden. Das Gewicht wird in der Einheitszelle durch Verbinden oder Trennen einer der P Referenzen unter Verwendung von Metall-, Kontakt- oder Via-Verbindungen im CMOS-Prozess codiert. In jedem Einheitselement darf nur eine Referenzspannung angeschlossen werden. Dieses Verfahren ermöglicht die Codierung von P Gewichtsstufen in jedem Einheitselement. Darüber hinaus ist es möglich, den Transistor von allen Referenzspannungen zu trennen, wodurch ein zusätzlicher Pegel (für insgesamt P + 1) bereitgestellt wird. Die Referenzspannungen können über das gesamte MAC-Array unter Verwendung vertikal gestapelter Metallschichten bereitgestellt werden, um Platz zu sparen und hochdichte Einheitselemente zu ermöglichen, die auch eine beliebig hohe Gewichtspräzision unterstützen können. Die Referenzspannungspegel können aus einer beliebigen Verteilung gezogen werden (d. h., sie sind möglicherweise nicht gleichmäßig verteilt), jedoch kann üblicherweise eine lineare Verteilung verwendet werden. Der Referenzspannungspegel VREFi,j in einer einzelnen Elementarzelle entspricht dem Gewichtspegel Wi,j und kann durch den Ausdruck in Gl. 26 beschrieben werden. Diese Implementierung ist auch mit den in 17 gezeigten Techniken zur Erhöhung der Auflösung der Eingabeaktivierungen bzw. Gewichte sowie der Differentialoperation kompatibel. Zum Beispiel kann der Kondensator Ci,j auch unter Verwendung von Metall-, Kontakt- oder Via-Verbindungen programmierbar sein, wie für vorherige Implementierungen beschrieben wurde. Wenn der Kondensator nicht programmierbar ist, hat er einen Wert von C0.
  • Wie oben beschrieben, gibt es mehrere mögliche Implementierungen der Zeilentreiber- und Spaltenausleseschaltungen (dynamisch auf Spannung, Strom oder Ladung basierend). Hier werden als Beispiel nur ein einziges mögliches Ansteuer- und Ausleseschema beschrieben (dynamische, spannungsbasierte Eingabeaktivierung und spannungsbasiertes Auslesen). In dieser Implementierung wird der Rücksetzblock verwendet. Die Eingabeaktivierungen Xi können in den Spannungen VXi codiert werden, wie oben und in Gl. 19 beschrieben wird. VXi kann ein digitales Signal mit nur zwei Pegeln sein, niedrig oder hoch, entsprechend Xi = 0 bzw. Xi = 1. Für den niedrigen Spannungspegel ist der Transistor Mi,j ausgeschaltet, und für den hohen Pegel ist der Transistor eingeschaltet (wodurch der Kondensator zwischen die Bitleitung und die gewählte Referenzspannung VREFi,j verbunden wird). Anfänglich werden alle Aktivierungen VXi auf die Wortleitungen angelegt, VSET wird auf niedrig gesetzt, um den zweiten Transistor auszuschalten, und die Bitleitungen werden unter Verwendung des Rücksetzblocks (der auch in die Ausleseschaltung integriert sein kann) auf eine Spannung Vr vorgeladen. Im nächsten Schritt werden die Bitleitungen freigegeben und alle Wortleitungen auf einen niedrigen Spannungspegel gebracht, so dass alle Transistoren Mi,j ausschalten. Dann wird VSET auf hoch gesetzt, um die Spannung VY mit dem Kondensator zu verbinden. Betrachtet man den Fall, in dem der Einheitszellenkondensator auf C0 fixiert ist, bewirkt diese Prozedur, dass eine kleine Ladung ΔQi,j von jeder Einheitselementkapazität entlang der entsprechenden Gesamtbitleitungskapazität geteilt wird: Δ Q i , j = X i V R E F i , j C 0
    Figure DE102021208010A1_0049
  • Die mit der Bitleitung verbundene Gesamtkapazität CT ist gegeben als: C T = C B L + i = 1 N C 0 = C B L + N C 0
    Figure DE102021208010A1_0050
  • In diesem Fall ist CT nicht von den Gewichtswerten abhängig. Betrachtet man nur eine einzelne Bitleitung und Spalte (entsprechend einem einzelnen Neuron im NN), ist die Gesamtspannung VBLj, die sich auf der Bitleitung entwickelt, proportional zur Summe aller [ΔQi,j und Faktoren, die sich auf VY und Vr beziehen: V B L j = V r C B L + C 0 i = 1 N X i C T + N V Y C 0 C T + i = 1 N Δ Q i , j C T = V r C B L + C 0 i = 1 N X i C T + N V Y C 0 C T C 0 C T i = 1 N X i V R E F i , j
    Figure DE102021208010A1_0051
  • Das Kombinieren von Gl. 26 und 43 mit VREFoffset = 0V, Vr = 0V, VY = 0V, und CBL = 0F ergibt: V B L j = V s c a l e C 0 C T i = 1 N X i W i , j
    Figure DE102021208010A1_0052
  • Die Summierung in Gl. 44 repräsentiert die gesamte MAC-Operation. Es ist zu beachten, dass der Vorgang in diesem Szenario invertiert wird. Diese Spannung kann mit Hilfe eines Spannungspuffers oder Verstärkers von jeder Bitleitung gelesen und dann in einer nachfolgenden Analog-Digital-Wandlerstufe digitalisiert werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der in dieser Spalte gespeicherten Gewichten durchgeführt.
  • 29 veranschaulicht eine Ausführungsform einer ROM-basierten Recheneinheit mit einem einzelnen Transistor und einem einzelnen Kondensator. Diese Implementierung ist identisch mit der Implementierung in 28, mit der Ausnahme, dass der mit VY verbundene Transistor weggelassen wird.
  • Wie oben beschrieben, gibt es mehrere mögliche Implementierungen der Zeilentreiber- und Spaltenausleseschaltungen (dynamisch auf Spannung, Strom oder Ladung basierend). In einer Ausführungsform kann ein einziges mögliches Ansteuer- und Ausleseschema verwendet werden, das dem für 28 beschriebenen ähnlich ist, als Beispiel (dynamische, spannungsbasierte Eingabeaktivierung und spannungsbasiertes Auslesen). In dieser Implementierung wird der Rücksetzblock verwendet. Die Eingabeaktivierungen Xi können in den Spannungen VXi codiert werden, wie oben und in Gl. 19 beschrieben wird. VXi kann ein digitales Signal mit nur zwei Pegeln sein, niedrig oder hoch, entsprechend Xi = 0 bzw. Xi = 1. Für den niedrigen Spannungspegel ist der Transistor Mi,j ausgeschaltet, und für den hohen Pegel ist der Transistor eingeschaltet (wodurch der Kondensator zwischen die Bitleitung und die gewählte Referenzspannung VREFi,j verbunden wird). Anfänglich werden alle Aktivierungen VXi, an den Wortleitungen angelegt. Die Bitleitungen werden unter Verwendung des Rücksetzblocks (der auch in die Ausleseschaltung integriert sein kann) auf eine Spannung Vr vorgeladen. Im nächsten Schritt werden die Bitleitungen freigegeben und alle Wortleitungen auf einen hohen Spannungspegel gebracht (so dass alle Transistoren Mi,j durchschalten), und alle Referenzspannungspegel werden auf den gleichen Spannungspegel VY gesetzt, unter Verwendung eines Treibers, der sich außerhalb des Arrays befindet. Während der Auslesephase werden alle Einheitskondensatoren zwischen der Bitleitung und einer Spannung VY verbunden. Auf diese Weise arbeitet diese Implementierung auf die gleiche Weise wie die Implementierung von 28, und die MAC-Berechnung kann durch folgende Gl. 41-44 dargestellt werden. Die Ausgabespannung kann unter Verwendung eines Spannungspuffers oder Verstärkers von jeder Bitleitung gelesen werden und dann in einer nachfolgenden Analog-Digital-Wandlerstufe digitalisiert werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der in dieser Spalte gespeicherten Gewichten durchgeführt.
  • 30 veranschaulicht eine Ausführungsform eines ROM-basierten MAC-Arrays, das einen einzelnen Widerstand als ein Einheitselement verwendet. Ein Drei-mal-Drei-Array-Unterabschnitt eines N mal M Arrays wird gezeigt. Das Gewicht wird in der Verbindung des Widerstands mit der Wortleitung und/oder Bitleitung codiert. Für binäre Gewichtswerte (z. B. ist Wi,j entweder „0“ oder „1“) wird der Anschluss für ein Wi,j = 1 entweder mit der Wortleitung und der Bitleitung verbunden und für Wi,j = 0 von der Wortleitung und/oder Bitleitung getrennt. Mehrere Widerstände können parallel verwendet werden, um weitere Gewichtsstufen zu haben. Diese Implementierung ist auch mit den in 17 gezeigten Techniken zur Erhöhung der Auflösung der Eingabeaktivierungen bzw. Gewichte sowie der Differentialoperation kompatibel. Der Konduktanzwert Gij des Widerstands Rij wird mit dem Gewichtspegel codiert und kann unter Verwendung von Gl. 18, beschrieben werden, die gleiche, wie für die Implementierung in 21 verwendet wird.
  • Wie oben beschrieben, gibt es mehrere mögliche Implementierungen der Zeilentreiber- und Spaltenausleseschaltungen (Spannungs- oder Strombasiert, statisch oder dynamisch). Hier beschreiben wir beispielhaft nur ein einziges mögliches Ansteuer- und Ausleseschema (statische, spannungsbasierte Eingabeaktivierung und Stromauslesung). Bei dieser Implementierung wird der Rücksetzblock nicht benötigt und kann weggelassen werden. Betrachtet man nur eine einzelne Bitleitung und Spalte (entsprechend einem einzelnen Neuron im NN), wird die Multiplikationsoperation durchgeführt, indem Eingabeaktivierungen (Xi) als Spannungen (VXi) entlang der Wortleitung angelegt werden, die binäre Informationen (digital) oder mehrere Bits von Informationen (Analogwerte) tragen, wie in Gl. 19.
  • Die MAC-Operation, die unter Verwendung von Gl. 20, 21 und 22 beschreiben wird, können die gleichen sein wie für 21. Der Spaltenstrom kann mit einem Transimpedanzverstärker in eine Spannung umgewandelt werden und dann in einer nachfolgenden Analog-Digital-Wandlerstufe digitalisiert werden. Alternativ kann der Strom direkt unter Verwendung eines Strom-Eingangs-ADC digitalisiert oder gepuffert werden und an eine nachfolgende Stufe weitergegeben werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der in dieser Spalte gespeicherten Gewichte durchgeführt.
  • Wie oben beschrieben, können ROM-basierte Recheneinheiten neben RAM-basierten Recheneinheiten innerhalb desselben IMC-basierten Prozessors verwendet werden. Die ROM-basierte Recheneinheit kann eine der in den vorherigen Abschnitten erwähnten Implementierungen sein. Außerdem kann jeder der oben erwähnten Typen von RAM (oder NVRAM) verwendet werden, wie beispielsweise SRAM, RRAM, PCM, MRAM, FeRAM oder Flash. Die Vorteile einer ROM-basierten Recheneinheit in Bezug auf Leistung, Zuverlässigkeit und Sicherheit können aufrechterhalten werden, indem die Mehrheit der festen Modellparameter in den ROM-Elementen gespeichert wird. Eine kleinere Teilmenge des Speichers kann aufgabenspezifische Parameter speichern, die im RAM umprogrammiert werden können. Dieses Schema behält die meisten Vorteile von RAM bei, und ermöglicht gleichzeitig eine Aufgabenspezialisierung, Aktualisierungen nach der Bereitstellung, um mit unterschiedlichen Betriebsbedingungen umzugehen, oder Algorithmen zu verbessern und Training an der Edge.
  • 31 veranschaulicht mehrere Ausführungsformen von Recheneinheiten innerhalb eines IMC-basierten Prozessors für einen beliebigen maschinellen Lernalgorithmus. Der maschinelle Lernalgorithmus kann aus mehreren Schichten bestehen, die jeweils eine Anzahl von Neuronen enthalten. Für unterschiedliche Schichten können unterschiedliche Typen von Recheneinheiten verwendet werden, wie in 31(a) gezeigt wird, wobei eine ROM-basierte Recheneinheit für die Berechnung von Schicht u verwendet wird und eine RAM-basierte Recheneinheit für die Schicht u+1 verwendet wird. Die Reihenfolge dieser beiden Schichten kann umgekehrt werden, und es können ROM-basierte Recheneinheiten verwendet werden, nachdem RAM-basierte oder unterschiedliche Typen von IMC-Recheneinheiten in sequentiellen Schichten verschachtelt werden können. 31 (b) zeigt eine Implementierung, bei der mehrere Typen von Recheneinheiten für die Berechnung innerhalb derselben Schicht in dem neuronalen Netz verwendet werden. 31(c) und 31(d) zeigen Beispiele, in denen Schichten unter Verwendung von Recheneinheiten implementiert werden, die hybride ROM- und RAM-Recheneinheiten enthalten.
  • Dies kann erreicht werden, indem mehrere Speichertypen verwendet werden, die direkt in der analogen Domäne auf der gleichen Bitleitung verbunden sind, wie in 32(a) und 32(b) gezeigt wird, wobei einmalig programmierbare Transistoren neben einer Einheitszelle basierend auf einem RAM-Typ, wie etwa RRAM, PCM oder MRAM, verwendet werden. In 32(a) sind benachbarte Blocks von Einheitszellen von unterschiedlichem Typ mit derselben Bitleitung verbunden. In 32(b) sind verschiedene Typen von Einheitszellen verschachtelt und zur analogen Summierung mit derselben Bitleitung verbunden. Alternativ können mehrere Spalten mit unterschiedlichen Speichertypen verwendet werden, wie in 32(c) und 32(d) gezeigt wird, wo die Ergebnisse der MAC-Berechnungen in der analogen bzw. digitalen Domäne kombiniert werden. Die Anzahl von ROM-basierten Einheitszellen und/oder RAM-basierten Einheitszellen kann von Spalte zu Spalte variieren. Die oben beschriebenen und in 32 gezeigten Techniken sind miteinander kompatibel. Die in 32 gezeigten Implementierungen sind auch mit den in 17 gezeigten Techniken zur Erhöhung der Auflösung der Eingabeaktivierungen oder Gewichte sowie der Differentialoperation kompatibel.
  • 33(a) veranschaulicht eine Ausführungsform einer Recheneinheit, die sowohl ROM als auch RAM kombiniert. Diese Implementierung verwendet die Transistor-basierte (1T) ROM-Topologie, die in 21 eingeführt wurde, und eine Standard-SRAM-Struktur mit sechs Transistoren (6T), die in 33(b) gezeigt wird. Von und VOff können hohe bzw. niedrige Versorgungsspannungen sein. Andere Standard-SRAM-Strukturen, wie beispielsweise die Strukturen mit sieben Transistoren (7T), acht Transistoren (8T) oder zehn Transistoren (10T) können ebenfalls verwendet werden. Eine Vier-mal-Vier-Teilmenge eines N mal M Arrays ist in 33(a) gezeigt. Jedes Verhältnis von ROM-basierten Einheitszellen zu SRAM-basierten Einheitszellen kann verwendet werden. Anstelle von NMOS-Bauelementen können PMOS-Transistoren verwendet werden. Zusätzlich können die Source- und Drain-Anschlüsse vertauscht werden. Gewichte werden einmalig in ROM-Einheitszellen durch Metall-, Kontakt- oder Via-Verbindungen wie oben beschrieben programmiert. Gewichte werden in den SRAM-basierten Einheitszellen unter Verwendung spezifischer Steuersignale (SEL) und dedizierter zusätzlicher Bitleitungen (P und N für positive bzw. negative SRAM-Bitleitungen) programmiert. Wenn im SRAM einer Elementarzelle ein Gewichtswert von „1“ gespeichert ist, wird das Gate des entsprechenden Transistors mit Von verbunden. Umgekehrt wird das Gate des entsprechenden Transistors mit Voff verbunden, wenn ein Gewichtswert von „0“ im SRAM einer Elementarzelle gespeichert wird. Sowohl für die ROM-Elemente als auch für die SRAM-basierten Elemente kann die Gewicht als in der Konduktanz des zwischen der Wortleitung und der Bitleitung geschalteten Transistors kodiert betrachtet werden, wie in Gl. (1) beschrieben wird.
  • Wie oben beschrieben wird, gibt es mehrere mögliche Implementierungen der Zeilentreiber- und Spaltenausleseschaltungen (Spannungs- oder Strombasiert, statisch oder dynamisch). Zum Beispiel kann eine statische, spannungsbasierte Eingabeaktivierung und Stromauslesung verwendet werden, wie für die Implementierung in 21 beschrieben wird. Für ein solches Schema wird die gesamte MAC-Operation für eine einzelne Spalte nach Gl. 19-22 und wie oben beschrieben. Der Strom kann mit einem Transimpedanzverstärker in eine Spannung umgewandelt und dann in einer nachfolgenden Analog-Digital-Wandlerstufe digitalisiert werden. Alternativ kann der Strom direkt unter Verwendung eines Strom-Eingangs-ADC digitalisiert oder gepuffert werden und an eine nachfolgende Stufe weitergegeben werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der in dieser Spalte gespeicherten Gewichten durchgeführt.
  • In einigen Implementierungen können die SRAM-basierten Einheitszellen nur in einigen Spalten und nicht in allen enthalten sein. Beispielsweise kann der SRAM nur in jeder zweiten Spalte enthalten sein, wie in 33(c) gezeigt wird. Da das Vorhandensein des SRAM in der Einheitszelle zusätzliche Transistoren erfordert, kann dieses Verfahren verwendet werden, um die Gesamtfläche und die Kosten zu reduzieren, während gleichzeitig ein gewisses Maß an Programmierbarkeit beibehalten wird. Zusätzlich kann eine differentielle Implementierung verwendet werden, wie in 33(d) gezeigt wird. Bei dieser Implementierung werden die differentiellen Ausgaben der SRAM-Zelle verwendet, um die Gates von Transistoren in benachbarten Spalten im Array zu steuern. Entsprechende ROM-basierte Einheitszellen in benachbarten Spalten müssen, wie gezeigt wird, auch differentiell codiert werden. Die Ausleseschaltungen müssen auch differenzielle Implementierungen sein, die die Differenz der Ausgabegrößen (zum Beispiel Spannung, Strom oder Ladung) zwischen benachbarten Spalten lesen. Diese Implementierung ist auch mit den in 17 gezeigten Techniken zur Erhöhung der Auflösung der Eingabeaktivierungen bzw. Gewichte sowie der Differentialoperation kompatibel. Diese Implementierungen sind auch mit den in 32 gezeigten Variationen kompatibel.
  • 33(a) veranschaulicht eine Ausführungsform von IT-ROM-basierten Einheitszellen, die in demselben IMC-Array wie SRAM-basierte Einheitszellen mit analoger Summierung auf den Bitleitungen verwendet werden. 33(b) veranschaulicht eine Ausführungsform einer Standard-6T-Einheitszelle, die Von und Voff als die hohen und niedrigen Versorgungsspannungspegel verwendet. 33(c) veranschaulicht ein Beispiel einer SRAM-basierten Einheitszelle, die in einigen Spalten weggelassen werden kann, um Fläche und Kosten zu sparen. 33(d) veranschaulicht eine differentielle Implementierung, bei der ein einzelner SRAM verwendet wird, um an Transistoren in benachbarten Spalten komplementäre Werte bereitzustellen.
  • Die in 32 und 33 gezeigten Ausführungsformen sind nur beispielhafte Ausführungsformen, und andere Kombinationen der oben beschriebenen ROM-basierten Elemente und RAM-basierten Elemente sind ebenfalls möglich. Die Wahl der hybriden ROM/RAM-Architektur wird durch die Optimierung von Leistungskennzahlen, wie etwa Fläche, Stromverbrauch, Latenz, Durchsatz und Signal-Rausch-Verhältnis, bestimmt.
  • Mehrere ROM-basierte IMC-Arrays (wie etwa die in 24 und 25 gezeigten Ausführungsformen mit kapazitiven Implementierungen) können vollständig in den Metallschichten eines integrierten Schaltungsprozesses hergestellt werden. Außerdem kann es möglich sein, einige Kategorien von RAM-basierten IMC-Arrays, wie etwa für RRAM oder PCM, vollständig in den Metallschichten herzustellen. Diese Funktion ermöglicht die 3D-Integration von IMC-Recheneinheiten, was eine Gewichtsspeicherung und Berechnung mit höherer Dichte ermöglicht, die Kosten spart und die Leistung verbessert.
  • 34(a) veranschaulicht eine Ausführungsform eines 3D-gestapelten ROM-basierten IMC-Arrays mit einem IMC-Array in der Substratschicht und einem oder mehreren der IMC-Arrays in den Metallschichten. 34(b) veranschaulicht, dass eines oder mehrere ROM-basierte IMC-Arrays in den Metallschichten über einem RAM-basierten IMC-Array in dem Substrat 3D-gestapelt sein können. 34(c) veranschaulicht, dass eines oder mehrere ROM-basierte IMC-Arrays in den Metallschichten mit einem oder mehreren RAM-basierten IMC-Arrays über einem ROM-basierten IMC-Array in dem Substrat 3D-gestapelt werden können. 34(d) veranschaulicht, dass eines oder mehrere ROM-basierte IMC-Arrays in den Metallschichten mit einem oder mehreren RAM-basierten IMC über einem anderen RAM-basierten IMC-Array in dem Substrat 3D-gestapelt werden können.
  • Wie in 34(a) gezeigt wird, können eines oder mehrere ROM-basierte IMC-Arrays (z. B. Ausführungsformen von 24 und 25) in den Metallschichten über einem anderen ROM-basierten IMC-Array 3D-gestapelt sein, das die Substratschicht und die unteren Metallschichten verwendet (z. B. die Ausführungsformen von transistorbasierten Implementierungen in 21-23 und 26-29). Die Substratschicht kann eine Halbleitermaterialschicht sein, die ein Siliziumwafer oder ein anderer Materialtyp sein kann. Wie in 34(b) gezeigt wird, können eines oder mehrere ROM-basierte IMC-Arrays über einem Substrat-RAM-basierten IMC-Array, basierend auf einer Technologie, wie etwa SRAM, 3D-gestapelt werden. Eines oder mehrere Metallschicht-RAM-basierte IMC-Arrays können mit oder ohne Metallschicht-ROM-basierte IMC-Arrays über einem Substrat-ROM-basierten IMC-Array (34(c)) oder einem Substrat-RAM-basierten IMC-Array (34(d)) 3D-gestapelt werden.
  • 35 veranschaulicht ein Beispiel für eine „Edge“-Erfassungsvorrichtung mit Klassifizierer, der auf neuronalen Netzen basiert, um eine begrenzte Anzahl von Klassen zu klassifizieren, um eine Aufweckfunktion auszulösen, die wiederum die Übertragung von Big Data zur weiteren Verarbeitung an eine Cloud ermöglicht. 35(b) ist eine typische Matrix-Multiplizier- und Additionsoperation, die innerhalb eines neuronalen Netzes ausgeführt werden kann. 35(c) veranschaulicht eine Anordnung von Speichern und einer arithmetischen Logikeinheit (ALU).
  • Ein Verfahren zum Abschwächen dieser Quelle des Energieverbrauchs besteht darin, ein Schema zu integrieren, das als In-Memory-Berechnung bezeichnet wird. Bei diesem Ansatz sind die Gewichte des neuronalen Netzes stationär und werden dort gespeichert, wo die Berechnung erfolgt, und daher kann die Datenbewegung stark reduziert werden. In Bezug auf Hardware-Implementierungen für neuronale Netze mit digitalen Schaltungen könnte dies als eine Architektur ausgelegt werden, bei der der Speicher und die Recheneinheiten so verteilt sind, dass der Datenspeicher näher an seinem Zielprozessor liegt. Eine Alternative mit höherem Wirkungsgrad ist die Durchführung der Multiplikations- und Additionsberechnungen (MAC) basierend auf den Eigenschaften des elektrischen Schaltungsnetzes, die die Schaltungsspannung und -ströme bestimmen. Dies ermöglicht den sofortigen Einsatz von Eingabeaktivierungen, z. B. Spannungs- oder Strompegel über ein großes Netz von Gewichten, die z. B. durch Impedanzen, wie etwa Widerstände, implementiert werden. Die Multiplikationsoperation wird dann erreicht, indem die Impedanz des Gewichtselements die Eingabeaktivierung skaliert wird, und die Summierung erfolgt durch die Momentanstrom- oder Ladungspaketsummierung in Schaltungsknoten. Das Ergebnis dieser analogen MAC-Operation steht mittels eines Datenkonverters zum Auslesen zur Verfügung.
  • Eine analoge Schaltungskonfiguration, die als Kreuzschienen- bzw. Crossbar-Netz bezeichnet wird, kann zum Zweck von Matrixmultiplikations- und Additionsoperationen verwendet werden. Ein solches Netz (z. B., in 36 veranschaulicht) legt die ganzzahligen Neuronen-Aktivierungswerte Xi über Digital-Analog-Wandler (DACs) durch Zugriffszeilen (Wortleitungen) an. Diese Wortleitungen verwenden analoge Spannungen Xi.Vref,DAC über die Wortleitungen, wobei Vref,DAC die Referenzspannung des DAC ist. Entlang jeder Wortleitung werden mehrere Gewichtselemente an Kreuzungen mit Spalten (Bitleitungen) platziert. Diese Gewichtselemente werden mittels Impedanzen (Konduktanzen) implementiert, wobei jedes Element ein ganzzahliges Wij-Vielfaches einer Einheitskonduktanz G ist, was eine Konduktanz von G.Wij zur Folge hat. Jede Bitleitung kreuzt mehrere Wortleitungen mit entsprechenden Gewichten an ihren Kreuzungen und implementiert daher einen Summierungsknoten zum Addieren der Ströme. Für die j-te Bitleitung kann dieser Strom als Summe aller Ströme durch die daran angeschlossenen Gewichtselemente geschrieben werden:
    I j = i = 1 n ( V r e f , D A C X i ) ( G W i j )
    Figure DE102021208010A1_0053
  • Wenn dieser Bitleitungsstrom von einem Transimpedanzverstärker mit einer Verstärkung von RTIA verarbeitet wird, erzeugt der Verstärker eine Spannung Vj pro Bitleitung, die bezeichnet wird mit:
    V j = R T I A I j = R T I A G V r e f , D A C i = 1 n X i W i j
    Figure DE102021208010A1_0054
  • Diese Spannung Vj wird dann mittels eines Analog-Digital-Wandlers (ADC) unter Bezugnahme auf eine Spannung Vref,ADC zu einer ganzen Zahl Yj digitalisiert, wobei sie auf eine ganze Zahl Yj aufgerundet wird (die round(x)-Funktion):
    Y j = r o u n d ( R T I A G V r e f , D A C V r e f , A D C i = 1 n X i W i j )
    Figure DE102021208010A1_0055
  • Der Einfachheit halber kann angenommen werden, dass Vref,DAC = Vref, ADC und RTIA = 1/G, und dann vereinfacht sich Gleichung (3) zu:
    Y j = i = 1 n X i W i j
    Figure DE102021208010A1_0056
  • Dies zeigt, dass jede Bitleitung Multiplikations- und Additionsergebnisse für die Multiplikation zwischen den Eingabeaktivierungen und der j-ten Spalte der Gewichtsmatrix implementiert, und daher alle Yj-Werte das Matrix-Punktproduktergebnis bilden. Für den in 36, gezeigten Fall resultiert eine 4x1-Aktivierungsmatrix X multipliziert mit der 4x4-Gewichtsmatrix W in der 1x4-Matrix Y:
    [ Y 1 Y 2 Y 3 Y 4 ] = [ X 1 X 2 X 3 X 4 ] × [ W 11 W 12 W 13 W 14 W 21 W 22 W 23 W 24 W 31 W 32 W 33 W 34 W 41 W 42 W 43 W 44 ]
    Figure DE102021208010A1_0057
  • Einige der Nachteile der in 36 gezeigten Crossbar-Netzwerk-Schnittstelle können darin bestehen, dass das Anlegen der kontinuierlichen Aktivierungsspannungen an die Wortleitungen und der laufenden Ströme in den Bitleitungen (stark abhängig vom Gewichtselementtyp und den Wertebereichen) und der Ruhestromverbrauch von ADCs, DACs, Treibern und Leseverstärkern den Energieverbrauch erhöhen. Außerdem besteht jeder ADC und DAC aus vielen aktiven und passiven Unterkomponenten, die normalerweise eine große Chipfläche bedeuten und daher die Abstandsgröße der Schnittstelle zur Crossbar begrenzen und große Skalen begrenzen. Die Annahmen der Übertragungscharakteristiken der Anpassung der DACs und ADCs (die einfache Annahme von Vref,DAC=Vref,ADC) trifft bei Realisierungen aufgrund der Variationen der analogen Komponenten nicht zu. Die Einbeziehung solcher Nicht-Idealitäten in große Netze macht das Training komplexer. In tiefen neuronalen Netzen muss der Dynamikbereich von ADCs und DACs oft von Schicht zu Schicht skaliert werden, was einen erheblichen zusätzlichen Komplexitäts- und Designaufwand bedeutet.
  • 36 veranschaulicht eine Ausführungsform einer analogen Multiplikations- und Additionsoperation, die durch ein Crossbar-Netz implementiert wird, das analoge Eingabeaktivierungen und Gewichten verwendet, die durch eine ganzzahlige gewichtete Konduktanz und Summierung im Strombereich implementiert werden.
  • In der Vergangenheit wurden Aktivierungseingaben von Crossbarnetzen modifiziert, um pulsbreitenmodulierte Zeitdomänensignale zu verwenden, anstatt die in 36 gezeigten Amplituden-Domänen-Aktivierungen. Ein Beispiel für ein solches Netz, das binäre Gewichte aufweist, die in binären Speicherzellen (wie SRAM-Zellen) gespeichert sind, ist in 37(a) gezeigt. Dieser Ansatz kann im Vergleich zum Fließen von Strömen durch die Bitleitungen energieeffizienter sein, da er hauptsächlich auf der Ladungssummierung an Kondensatoren beruht, die an den Bitleitungen angebracht sind (eine parasitäre Kapazität oder ein absichtlich hinzugefügter Kondensator). Das in 37(a) gezeigte Crossbar-Netz implementiert seine Aktivierungseingaben mittels Impulsgeneratoren, die auf eine Zeiteinheitsreferenz mit der Dauer Ta bezogen sind. Hier bestimmen die ganzzahligen Aktivierungseingaben, die mit Xi bezeichnet werden, dass die Aktivierungsdauer gleich Xi.Ta ist. Zum Beispiel wird eine ganzzahlige Eingabeaktivierung von 7 durch einen Impuls mit einer Dauer von 7.Ta dargestellt.
  • 37(a) veranschaulicht ein Crossbar-Netz mit pulsweitenmodulierten Aktivierungssignalen und in Speichern eingebetteten binären Gewichten, die die Polarität der Entladung auf differentiellen Bitleitungskapazitäten bestimmen. 37(b) veranschaulicht eine Zeitsteuerungsoperation des Netzes. Ähnlich zu dem Crossbar-Netz von 36 übertragen Wortleitungen die Aktivierungen über viele Bitleitungen, wobei die Gewichtselemente in Speicherzellen an der Kreuzung jeder Wortleitung und Bitleitung gespeichert werden. Die Bitleitungen können differentiell angeordnet sein, d. h. jede Leitung besteht aus zwei Leitungen mit den Spannungen VBLj und VBLbj. Diese Bitleitungen haben jeweils eine mit CBL bezeichnete Gesamtkapazität und werden vor dem Betrieb zunächst auf eine Vorladespannung Vp geladen. Wenn zu Beginn jeder Punktproduktoperation vorgeladen wird, beginnt die Differenzspannung über den Bitleitungen, die durch Vdj = VBLj - VBLbj bezeichnet wird, bei Null (in 37(B) gezeigt). Für die Dauer der pulsweitenmodulierten Aktivierung jeder Wortleitung verbinden die Schalter SW die Bitleitungskondensatoren mit den Speicherzellen, die die Zustände ‚10‘ oder ‚01‘ halten (linke und rechte Seite oder SRAM-Zelle, die Werte von 0 oder 1 hält, was zwei Zustände zur Folge hat). Es wird angenommen, dass die Schalter keinen Einschaltwiderstand haben und der Gesamtwiderstand zum Kondensator durch einen Widerstand RBL modelliert wird. In Abhängigkeit von dem in dem Gewichtsspeicher gespeicherten Zustand (‚+1 = 10‘ oder ‚-1 = 01‘ ähnlich einer Lade-/EntladePolarität für die Bitleitungskapazitäten) lädt sich eine der Bitleitungskapazitäten in Richtung Versorgung auf, und die andere entlädt sich in Richtung Masse (37(a)). Sobald alle pulsweitenmodulierten Eingabeaktivierungen an die Wortleitungen angelegt sind, führt aufgrund der Überlagerung die gesamte Ladung (aktivierungsabhängig), die von jeder Bitleitungskapazität entfernt oder dazu hinzugefügt wird (gewichtsabhängig), zu einer Differenzspannung über den Bitleitungen (siehe 37(b)) für einen Fall, bei dem alle Gewichte ‚1‘ sind):
    V d j 2 V p T a R B L C B L i = 0 n 1 X i W i j
    Figure DE102021208010A1_0058
  • Die Bitleitungsspannungen Vdj werden durch Analog-Digital-Umwandlung unter Bezugnahme auf eine Spannung Vref,ADC umgewandelt, um das Ergebnis des ganzzahligen Bitleitungs-Punktprodukts abzuleiten:
    Y j 2 V p T a V r e f , A D C R B L C B L i = 0 n 1 X i W i j
    Figure DE102021208010A1_0059
  • Dieses Schema vereinfacht die Aktivierung durch Entfernen der in 36 verwendeten DACs und verbessert die Energieeffizienz durch den Ladungsdomänenbetrieb der Bitleitungen, jedoch bleibt die Komplexität und der Energieverbrauch des Auslesens der Amplituden-domänen (erforderlich seitens der Bitleitungs-ADCs).
  • 38 veranschaulicht ein Crossbar-Netz auf Memristorbasis, das mit pulsweitenmodulierten Aktivierungen aktiviert wird und im Amplitudendomäne mit Analog-Digital-Wandlern im Amplitudendomäne ausgelesen wird. In einer solchen Ausführungsform implementiert die Implementierung, die der Implementierung von 38(a) ähnlich ist, die Gewichte in gewichteten Widerständen (Konduktanzwerte). Dies können entweder feste Schaltungselemente für ein Netz sein, das keine Programmierbarkeit hat, oder könnte durch Verwendung von Elementen, wie etwa Memristorelementen (programmierbare Konduktanzwerte, wie in 38(b) gezeigt wird), programmierbar gemacht werden. Die Konfiguration der pulsweitenmodulierten Aktivierungen und ihre Erzeugungen, sowie die differentielle Struktur für Bitleitungen ähnelt der von 37(a). Der Unterschied besteht in den Gewichtswerten Wij, die mehr Stufen als die binären Stufen von 37(a) haben können. Ein Fall von bipolaren Gewichtswerten über 7 Konduktanzstufen ist in 38(b) gezeigt. Unter der Annahme, dass Wij (Wbij für negative Gewichtswerte) ein ganzzahliger Wert ist, erfolgt seine physikalische Implementierung durch eine Konduktanz Gij = G0 + Wij.Gu oder Gij = G0 - Wbij.Gu. Die Matrixpunktprodukt-Multiplikations- und Additionsoperation beginnt durch Vorladen der Bitleitungen auf eine Vorladespannung VP. Jede Wortleitung trägt die pulsweitenmodulierten Aktivierungseingaben Xi zu Schaltern SW. Diese Schalter stellen einen Entladungspfad durch die von Wij (und Wbij) bestimmten Gewichtsleitwerte gegen Masse für die Dauer der Aktivierungseingabe bereit. Als Ergebnis der Überlagerung aller Zeitkonstanten erscheint nach dem Anlegen aller Aktivierungseingaben eine Differenzspannung Vdj über der Bitleitung, die in erster Ordnung bestimmt wird durch:
    V d j 2 V P e x p ( T a G 0 C B L i = 0 n 1 X i ) s i n h ( T a G u C B L i = 0 n 1 W i j X i )
    Figure DE102021208010A1_0060
  • Die Bitleitungsspannungen werden durch ADCs digitalisiert. In der Vergangenheit wurde der Betrieb des ADC mit dem Betrieb der Crossbar durch die Anwendung eines Mehrzyklus-Lade- und Entladevorgangs bei Vorhandensein einer zusätzlichen Reihe, die durch Referenzleitwerte gebildet wird, eingebettet. Dies trägt dazu bei, die nichtlineare Beziehung von (Gleichung 52) zu mildern, auf Kosten eines Mehrzyklus-Lade- und Entladevorgangs und zusätzlicher Konduktanzreihen über der Crossbar für die Implementierung des ADC-Betriebs in der Amplitudendomäne.
  • Eine Ausführungsform der vorliegenden Offenbarung veranschaulicht eine Zeitdomänenschnittstelle zum Aktivieren und Auslesen der analogen Multiplikations- und Additions-Crossbar-Netze. Eine solche Schnittstelle ersetzt Amplitudendomänenschemata, die im Stand der Technik verwendet werden. Sie profitiert von der Tatsache, dass mit den Aktivierungseingaben zu den Crossbar-Wortleitungen, die in pulsweitenmodulierte Zeitdomänensignale übersetzt werden, die Überlagerung von Zeitkonstanten (Ladezeiten, Integrationszeiten, Entladezeiten), die von verschiedenen Crossbar-Netzwerkkonfigurationen implementiert werden, an den Bitleitungen durch Zeitmessungen gemessen werden können, wobei die Zeit-Digital-Wandlung unter Bezugnahme auf dieselbe Zeitreferenz erfolgen kann, die zum Erzeugen der Aktivierungen verwendet wurde. Darüber hinaus schlägt diese Erfindungs Offenbarung eine Zeitmessung vor, die auf eine ratiometrische Weise angeordnet ist, so dass sich die Nicht-Idealitäten, die zu den Absolutwerten von Widerständen, Kondensatoren, Referenzspannungen, Strömen, Zeiten usw. beitragen, aufheben, was eine lineare Punktproduktmatrix-Multiplikationsausgabe zur Folge hat, die in erster Ordnung nur eine Funktion der ganzzahligen Eingabeaktivierungen und Gewichte ist.
  • 39 veranschaulicht eine zeitbasierte Schnittstelle zu einem Punktprodukt-berechnungs-Crossbar-Netz. Die Zeiteingabe- und Zeitausgabeschnittstellen können gezeigt werden, ebenso in 39(b), dass die Schnittstellenperipherie ein Digital-Zeit- und ein Zeit-Digital-Wandler (TDC) ist, und in 39(c) die Zeitbereich Operation. Ein Zeitdomänenbetrieb hat mehrere Vorteile hinsichtlich der Skalierbarkeit und Zuverlässigkeit solcher analoger Crossbar-Multiplikations- und - Additionsnetze. 39(a) veranschaulicht eine Zeitdomänenschnittstelle zu einem Crossbar-Netz mit Zeitdomänen-Peripherie-Schnittstellenschaltungen. Diese Peripherieschaltungen sind in 39(b) gezeigt und implementieren hauptsächlich die Funktionen der Digital-Zeit- und Zeit-Digital-Wandlung. Die Aktivierungen werden durch den Bildner (einem Impulsgenerator) mit Bezug auf eine Zeit Tref erzeugt, die durch einen ganzzahligen Eingabe Xj skaliert wird, und die MAC-Ausgaben werden mittels Zeit-Digital-Wandlern (TDCs) von der Zeitdomäne nach digital umgewandelt. Ein TDC misst eine Eingabezeit, die durch ein START- und STOP-Signal markiert ist, das zwei Ereignisse markiert (39(c)). Um die Zeitmessung zu ermöglichen, ist eine Referenzzeit erforderlich. Bei TDCs wird diese oft durch eine Eingabefrequenz (fref) oder Zeitreferenz, Tref = 1/fref, zu dem TDC eingestellt. Die Anwendung solcher Wandler auf die Schnittstelle eines Punktprodukt-Crossbar-Netzes hat mehrere Vorteile:
  • Die Schaltungsarchitektur eines TDC ist näher an digitalen Schaltungen (eine TDC-Implementierung kann so einfach sein, wie ein Zähler für moderate Zeitauflösungen oder ein Ringoszillator und ein Register, kombiniert mit einem Zähler für Fälle mit hoher Auflösung). Diese Art von Schaltung hat mehrere Vorteile:
  • Die Skalierung des Dynamikbereichs, der pro verborgener Schicht eines tiefen neuronalen Netzes benötigt wird, ist einfacher in einem TDC als in einem ADC zu implementieren. Bei Verwendung eines TDC kann dies so einfach sein wie das Hinzufügen eines zusätzlichen Bits zum Zähler und das Zählen über einen längeren Zeitraum, um den Dynamikbereich zu verdoppeln, während bei einem ADC eine solche Anpassung schwerwiegende Auswirkungen auf Komplexität, Größe und Stromverbrauch haben kann.
  • TDCs verbrauchen dynamische Leistung, die mit dem Schalten von Logikgattern (wie digitalen Schaltungen) verbunden ist, anstatt mit Ruheleistung, die von linearen analogen Schaltungen verbraucht wird, die in ADCs verwendet werden. Dies bietet eine überlegene Energieeffizienz im Vergleich zu ADCs.
  • Die halbdigitalen Schaltungsarchitekturen führen zu sehr kleinen Fußabdrücken für ihre integrierten Schaltungsrealisierungen und machen sie so für tiefe neuronale Netze in größerem Maßstab, die analoge Crossbar-Multikations- und Additionsnetze verwenden, zugänglich.
  • Die resultierende Ausgabezeit jeder Bitleitung kann gegen eine Referenzzeitkonstante gemessen werden, die durch die gleichen Einheitsanalogwiderstände oder -kapazitäten erzeugt wird, die verwendet werden, um die Netzgewichte zu implementieren. Dies ermöglicht ein ratiometrisches Messschema, das die Robustheit des Ergebnisses des Skalarprodukts stark verbessert, indem es die Variationen der analogen Elemente für die erste Ordnung aufhebt.
  • Mit in der Zeitdomäne angeordneten Eingabe- und Ausgabeschnittstellen zu dem Crossbar-Netz kann die Zeitreferenz des pulsweitenmodulierten Aktivierungsgenerators mit der Zeitreferenz des TDC synchronisiert werden (39c), was dann einen Abgleich der Übertragungscharakteristik für die analoge und digitale Schnittstelle zu dem Crossbar-Netz zur Folge hat. Dies ist mit Amplituden-Domänen-Schnittstellen nicht möglich, da die Eigenschaften von DACs und ADCs oder Pulsweitenmodulatoren und ADCs naturgemäß nicht übereinstimmen.
  • 40A veranschaulicht ein Funktionsblockdiagramm, und die Operation der vorgeschlagenen Zeitdomänenschnittstelle zu einer Mischsignal-Punktprodukt-Rechenhardware auf Baus eines Crossbar-Netzes ist in 40A und 40C gezeigt, mit den Zeitdomänenoperationswellenformen in 40B. Dieses Blockdiagramm ist die Grundlage des Zeitdomänen- und ratiometrischen Auslesevorgangs, und es wird gezeigt, dass diese basierend auf unterschiedlichen elektrischen Eigenschaften (Ladungsbereich, Strombereich usw.) und Gewichtsimplementierungen (Speicherelemente, wie etwa ROM, SRAM, M/R/PC/RAM) auf verschiedene Crossbar-Netze erweiterbar sind. Um die Beschreibung des vorgeschlagenen Verfahrens zu vereinfachen, wird zunächst eine Single-Ended-Struktur (nur positive Gewichtswerte) gezeigt. Aus dieser grundlegenden Architektur lässt sich eine Erweiterung auf praktische Implementierungen mit bipolarem Betrieb und differentiellen Bitleitungen ableiten, was später gezeigt wird.
  • In 40 ist die Ausführungsform einer Zeitdomänenschnittstelle zu einem Crossbar-Mischsignal-Punktprodukt-Berechnungs-Netz mit ratiometrischer Ausgabeauswertung gezeigt. In 40(a) ist das konzeptionelle Blockschaltbild mit pulsweitenmodulierten Eingabeaktivierungen und TDC-basiertem Auslesen veranschaulicht. In 40(b) sind die den Zeitdomänen-Eingaben, -Ausgaben und den Steuer- und Referenzsignalen zugeordneten Wellenformen dargestellt. Und in 40(c) verwendet die ratiometrische Implementierung in der Zeitdomäne die skalierte Stromquellen, die auf eine Referenzstromquelle Iref bezogen sind.
  • In dieser Ausführungsform werden die Gewichte als Impedanzen gezeigt, die unter Verwendung einer Einheitskonduktanz G implementiert werden, die durch das geeignete ganzzahlige Gewicht Wij skaliert wird. Die Eingabeaktivierungssignale werden von pulsweitenmodulierten Generatoren basierend auf einer Referenzzeit Ta erzeugt, die durch den ganzzahligen Aktivierungswert Xi skaliert ist. Diese werden entlang der Wortleitungen übertragen, die sich dann mit den Bitleitungen an den entsprechenden Gewichtsimpedanzen, die die Wortleitung mit der Bitleitung verbinden, kreuzen. Jede Bitleitung kann mit einem Integrator verbunden sein, der seine Operation per Punktproduktberechnung aus einem durch eine gegebene Referenzspannung Vref definierten Rücksetz-Zustand (durchgeführt mittels eines ‚Reset‘-Signals) beginnt. Sobald die pulsweitenmodulierten Aktivierungen mit der Amplitude Va an alle Wortleitungen angelegt sind, übersetzt die den Gewichten zugeordnete Konduktanz die pulsweitenmodulierten Aktivierungen in eine Gesamtnettomenge der in jede Bitleitung injizierten Ladung (die durch fließende Ströme Ij geliefert wird), die von dem entsprechenden Integrator integriert wird. Die Ladung der j-ten Bitleitung beträgt:
    Q j = V a G T a i = 0 n 1 W i j X i
    Figure DE102021208010A1_0061
  • Als Ergebnis der Anwendung der Eingabeaktivierungen und der Ladungsintegration entwickelt jeder Integrator eine mit Vintj bezeichnete Ausgangsspannung, die eine Funktion der Integratorverstärkung ist (40b). Sobald alle Aktivierungen angelegt sind (und alle gewichteten Ladungen integriert sind), verbindet ein mit START bezeichnetes Signal die Integratorausgaben über eine Einheitskonduktanz G mit einer Spannung Va, die der negative Wert der Amplitude der pulsweitenmodulierten Eingabeaktivierungen ist. Gleichzeitig beginnt ein mit der Bitleitung verbundener TDC mit der Zeitmessung. Die Verbindung mit -Va entlädt den Integrator (durch den Entladestrom Idischarge,j). Das Entfernen der Ladung verringert dann die Integrator-Ausgangsspannungen Vintj, und dies wird fortgesetzt, bis ein Komparator, der die Integrator-Ausgangsspannung überwacht, feststellt, dass der Integrator seinen ursprünglichen Rücksetzwert Vref erreicht hat. Sobald dieser Pegel erkannt wird, wird vom Komparator ein STOP-Signal erzeugt und an den TDC weitergegeben, um die Zeitmessung zu stoppen. Als Ergebnis wird die während der Aktivierungsphase integrierte Gesamtladung Qj vollständig unter Verwendung des Referenzentladungspfades, der durch die Einheitskonduktanz G gebildet wird, entfernt. Die Zeit, die benötigt wird, um diese Ladung zu entfernen (Entladung), beträgt: t O D , j = Q i V a G = V a G T a i = 0 n 1 W i j X i V a G = T a i = 0 n 1 W i j X i
    Figure DE102021208010A1_0062
  • Der TDC erzeugt an seinem Ausgang einen digitalen ganzzahligen Wert Yj, der proportional zu tOD,j und der TDC-Referenzzeit Tref ist, durch eine Rundungsfunktion (Quantisierungsfunktion) von round(x): Y j = r o u n d ( t O D , j T r e f )
    Figure DE102021208010A1_0063
  • Einsetzen von (54) in (55) ergibt: Y j = r o u n d ( T a i = 0 n 1 W i j X i T r e f )
    Figure DE102021208010A1_0064
  • Sowohl die TDC-Referenzzeit Tref als auch die Zeitreferenz zu den Impulsbreitenmodulator-Aktivierungsgeneratoren, Ta, werden mit dem gleichen Systemtakt Tclock mit ganzzahligen Verhältnissen synchronisiert. Daher haben Tref und Ta ein ganzzahliges Verhältnis, das mit k bezeichnet wird. Die Synchronisation ermöglicht es, dass k als ganze Zahl oder als Verhältnis zweier ganzzahliger Werte M und N gewählt werden kann, d. h., k = M/N. Dies übernimmt auch die bereits erwähnte Quantisierung: T a = k T r e f
    Figure DE102021208010A1_0065
  • Das Einsetzen von (57) in (56) führt zu einer ratiometrischen linearen Bitleitungs-Ausgabemessung Yj, die ausschließlich von den eingegebenen ganzzahligen Aktivierungen Xi, ganzzahligen Gewichtswerten Wij und einer festen Konstante k abhängig ist: Y j = k i = 0 n 1 W i j X i
    Figure DE102021208010A1_0066
  • Eine alternative Darstellung der vorgeschlagenen ratiometrischen Zeitdomänen-Crossbar-Netzimplementierung ist in 40(c) gezeigt. In dieser Ausführungsform implementieren die ganzzahlig skalierten Stromquellen, die auf eine Referenzstromquelle Iref bezogen sind, die Netzgewichte. Der Entladungspfad kann aus einer Reihe von Stromquellen bestehen, die auf dieselbe Quelle bezogen sind und eine entgegengesetzte Polarität aufweisen. Der Zeitdomänenbetrieb und die Wellenformen der Signale im Netz ähneln genau den in 40(b) gezeigten. Ein Unterschied zu der in 40(a) gezeigten Ausführungsform besteht darin, dass die Lade- und Entladeströme durch Verwendung aktiver Stromquellen statt passiver Impedanzen erzeugt werden. Die die Punktproduktberechnung und die ratiometrische Operation regelnden Gleichungen bleiben dieselben wie die Gleichungen (53) bis (59), mit dem einzigen Unterschied, dass Va · G, die die Lade- und Entladeströme von 40(a) in den Gleichungen (53) und (54) repräsentiert, durch Iref ersetzt werden sollte.
  • Hinsichtlich der Punktproduktimplementierung veranschaulicht die Gleichung (58) die Bedeutung des vorgeschlagenen Verfahrens, das eine ratiometrische Zeitdomänenschnittstelle zu einem Crossbar-Netz implementiert. Die ratiometrische Ausgabeauswertung in der Zeitdomäne ist in erster Ordnung unabhängig von absoluten Parameterwerten, wie etwa den Einheitsimpedanzen oder Stromquellen, die die Gewichte (G oder Iref), die Spannungspegel, wie etwa die Referenzspannung Vref oder die Aktivierungsamplitude Va, die Ladungsintegrationsparameter, wie etwa die Integratorverstärkung, und die Ausgabepegel Vintj und die Zeitreferenzwerte Ta, Tref,Tclock, bilden.
  • Da sich die Aktivierungsgeneratoren und der TDC auf digitale Schaltungen (Zähler) stützen und dieselbe Zeitreferenz Tclock verwenden, entsprechen ihre Eingabe-/Ausgabe-Übertragungseigenschaften (Digital-zu-Zeit und Zeit-zu-Digital) der ersten Ordnung und haben daher keinen Einfluss auf die Genauigkeit.
  • Hinsichtlich der Hardware- und Energieverbrauchseffizienz kann das vorgeschlagene Schema mehrere Vorteile haben. In erster Linie ist eine der einzigen analogen Schaltungen, die in der Schnittstelle verwendet werden können, ein Komparator pro Bitleitung, der einmal pro Punktproduktberechnung betrieben wird, wodurch der Ruhestromverbrauch der Schnittstellenschaltung minimiert wird und deren Durchsatz maximiert wird (im Vergleich zu einer ADC-Schnittstelle). Die Ladungsintegration kann passiv unter Verwendung von Bitleitungskapazitäten oder aktiv mit einem aktiven Integrator für mehr Genauigkeit erfolgen, der Bitleitungsintegrator kann jedoch mit stromsparenden Schaltungen, wie etwa aktiven Integratoren auf Inverterbasis, implementiert werden.
  • Die vorgeschlagene Zeitdomänenschnittstellentechnik kann auf verschiedene Konfigurationen von Crossbar-Netzen, die auf unterschiedlichen Speicherelementen (flüchtig, wie etwa SRAM, oder nichtflüchtig, wie etwa Floating-Gate-Flash, ROM, RRAM, MRAM usw.) basieren, angewendet werden. Sie kann auch auf Netze angewendet werden, die hybride Speicherarchitekturen, z. B. teilweise SRAM-basiert und teilweise ROM-basiert, oder beliebige Kombinationen verschiedener Speicherelemente zur Mischsignal-In-Memory-Berechnung, implementieren.
  • Ein SRAM (statischer Direktzugriffsspeicher) kann zum Speichern der Gewichte in der Speicherberechnung verwendet werden. Der SRAM kann ein binäres Gewichtselement bereitstellen, das in Netzen verwendet wird, die entweder mehrstufige Eingaben oder binäre Eingaben verwenden. Die Punktproduktausgabe kann auch binär oder mehrstufig sein. Jede Konfiguration kann ihre eigenen Eigenschaften und Vor- und Nachteile haben, jedoch bietet die vorgeschlagene Zeitdomänenschnittstelle Hardware und Energieeffizienz, wenn eine mehrstufige Eingabeaktivierung und eine mehrstufige Punktprodukt-Ausgabebewertung unter Verwendung von SRAM-Zellen verwendet wird, um die Gewichte zu speichern, sowie ein hochpräzises Berechnungsergebnis im Vergleich zum Stand der Technik mit Amplituden-Domänen-Schnittstellen. Als nächstes werden drei Architekturen vorgestellt, die eine ratiometrische Schnittstelle in der Zeitdomäne mit SRAM-basierten Crossbar-Netzen verwenden:
  • 41 veranschaulicht Multilevel-Aktivierungs-Eingabe-, Multilevel-Punktprodukt-Ausgabe-, SRAM-basiertes In-Memory-Berechnung-Crossbar-Netz. Das in 41(a) gezeigte Netz kann auf einer symmetrischen Stromintegration unter Verwendung von Einheitsimpedanzen und den TDC-Bitleitungs-Wandlern und unter Verwendung einer passiven Integration unter Verwendung von Bitleitungskapazitäten basieren. 41 (b) veranschaulicht das Ersetzen des passiven Integrators durch einen aktiven Integrator. 41 (c) veranschaulicht die Operation der Zeitdomänenschnittstelle mit Eingabe- und Ausgabezeitwerten. Die Ausführungsform dieses Crossbar-Netzes kann Einheitskonduktanzwerte G verwenden, um den gespeicherten Inhalt des SRAM-Speichers in einen bipolaren Strom (Push- und Pull-Stromkomponenten) umzuwandeln, der von einem Differentialintegrator integriert wird. Die differentielle Bitleitungsstruktur bedeutet, dass die binären Gewichtswerte als + 1 - und -1-Werte operieren. Jede Zelle erfordert 6 Transistoren (eine 6T-Zelle), wobei 4 Transistoren den SRAM-Kern implementieren und 2 zum Anlegen der Aktivierungssignale verwendet werden. Der Integrator in 41(b) stellt eine bessere Integrationsgenauigkeit auf Kosten von mehr Energie und Chipfläche bereit. Die Operation des Netzes in 41(c) ist dieselbe wie die grundlegende Netzwerkarchitektur, die in 6a gezeigt ist. Sie beginnt mit einem Rücksetzzustand für die Bitleitungsintegratoren, wobei sie auf eine Gleichtakt-Referenzspannung Vref zurückgesetzt werden (z. B. auf die Hälfte der SRAM-Versorgung Vdd, d. h. Vref = 0.5Vdd). Darauf folgt dann das Anlegen der pulsweitenmodulierten Aktivierungseingaben Xi. Die Aktivierungszeitreferenz Ta und der TDC-Referenztakt Tref werden mit einem Systemtakt Tclock synchronisiert. Die Gewichtskonduktanz G resultiert in einem Fluss einer bipolaren Ladung (in Abhängigkeit von dem gespeicherten SRAM-Wert) in den Bitleitungsintegrator, was eine pro Bitleitung entwickelte Differenzspannung Vintj zur Folge hat. Nachdem die Eingaben angelegt sind, wird ein START-Signal geltend gemacht, das den Entladezweig freigibt. Dieser Zweig verwendet zwei Einheitskonduktanzen von G, um die integrierte Ladung zu entfernen, indem sie auf Vref zurückgeführt wird (gleicher Anfangszustand, den der Integrator vor dem Anlegen der Aktivierungseingaben gestartet hat). Der TDC beginnt mit der Zeitmessung, wenn das START-Signal angelegt gemacht wird. Sobald der Integrator eine Null-Differenzspannung durchlässt, stoppt der Komparator den TDC durch Erzeugen des STOPj-Signals (41 (c)). Die Anwendung von Gleichung (54) und Ersetzen von Va durch Vdd (SRAM-Versorgung sowie die Amplitude für die pulsweitenmodulierten Eingabeaktivierungen) und unter der Annahme eines gleichen Verhältnisses zwischen den synchronisierten Zeitreferenzen, wie (57) nahelegt, kann die digitale TDC-Ausgabe definiert werden als:
    Y j = t O D , j T r e f = ( Q i V d d G ) T r e f = ( V d d G T a i = 0 n 1 W i j X i V d d G ) T r e f = k i = 0 n 1 W i j X i
    Figure DE102021208010A1_0067
  • Dies zeigt ein Punktproduktergebnis, das in erster Ordnung nur eine Funktion der ganzzahligen Aktivierungseingaben und der gespeicherten Gewichte in den SRAM-Speichern ist. Es sollte beachtet werden, dass die Konduktanz G einfach durch den Ein- („on“) Widerstand der Schalttransistoren in der 6T-Zelle dargestellt werden kann, wenn ein binäres Gewichtsnetz implementiert wird, und daher nicht unbedingt eine separate physikalische Impedanz sein muss.
  • 42 veranschaulicht eine SRAM-basierte Multilevel-Eingabe-Multilevel-Ausgabe-Zeitdomänenschnittstelle zu einem Crossbar-Netz zur Punktproduktberechnung. 42(a) veranschaulicht ein Netz basierend auf einer vollständig symmetrischen Stromintegration unter Verwendung von 8T-Zellen-SRAM und symmetrischen Stromquellen und einem passenden vollständig symmetrischen Entladungspfad und Zeitmessblocks. 42(b) veranschaulicht die Polarität der symmetrischen Stromintegration, die durch den SRAM bestimmt wird, und die Polarität der symmetrischen Entladephase, die durch die Integratorpolarität bestimmt und durch den ‚Chopper‘ angelegt wird. 42(a) veranschaulicht einen anderen Ansatz für ein SRAM-basiertes Crossbar-Netz mit ratiometrischer Schnittstelle in der Zeitdomäne, bei dem anstelle von Einheitsimpedanzen Einheitstransistoren vollständig symmetrische Stromquellen implementieren, um Ladungen auf den Bitleitungskapazitäten für die Dauer der durch Eingangsaktivierungen bestimmten Zeit zu integrieren. Hier wird eine 8-Transistor (8T)-Zelle vorgeschlagen, wobei 4 Transistoren den SRAM-Kern bilden, der die Gewichtswerte hält, und die anderen 4 eine vollständig symmetrische Stromquelle implementieren, deren Polarität durch den im SRAM gespeicherten Wert bestimmt wird. Die Stromquellen der Push- und Pull-Einheit in 8T-SRAM-Zellen werden mit einem Strom Iref auf einem Referenzzweig bezogen. Der Referenzstrom wird mittels der mit Referenzdioden verbundenen Transistoren MPref und MNref repliziert, die Wortleitungsspannungen VGP und VGN generieren, die verwendet werden, um die 8T-Zellen-PMOS- und NMOS-Stromquellen vorzuspannen. Diese stimmen mit MPref und MNref überein und erzeugen +/-Iref-Ströme. 42(b) zeigt, wie für zwei Zustände, die Gewichtswerten von +1 und -1 entsprechen, die symmetrische Injektionspolarität des Stroms bestimmt wird. Der SRAM-Zustand bestimmt, welche Stromquelle aktiviert und welche deaktiviert wird, indem einfach ihre gemeinsamen Source-Anschlüsse auf Vdd (Versorgung) oder GND (Masse) vorgespannt werden. Die vorgeschlagene Verbindung garantiert die symmetrische Stromrichtung durch gegenläufiges Ein- und Ausschalten der Stromquellen. Die Spannungen VGP und VGN werden über die Wortleitungen für die durch die entsprechende Eingabeaktivierung Xi bestimmte Dauer an die 8T-Zellen-Stromquellentransistor-Gates angelegt. Die funktionale Gesamtoperation des Netzes ist die gleiche wie bei der Ausführungsform von 41(c). Eine zusätzliche Betrachtung ist für die ratiometrische Entladungsphase erforderlich, im Vergleich zu einer solchen Ausführungsform. Die Entladephase sollte unter Verwendung passender symmetrischer Stromquellen für den ratiometrischen Betrieb durchgeführt werden. Die korrekte Entladungspolarität (um eine Ladungsentfernung von dem Integrator statt eine Ladungszugabe zu bewirken) wird durch Verwendung desselben Bitleitungs-Komparatorausgabe bestimmt. Die Komparatorausgabe hält lediglich die Information bezüglich der Polarität der integrierten Ladung am Ende der Aktivierungsphase. Dieses Bit wird verwendet, um die Polarität zu steuern, mit der der ‚Chopper‘-Block die NMOS- und PMOS-Entladestromquellen mit den Bitleitungen verbindet (siehe 42(b)). Der Chopper ist gesperrt, bis das START-Signal angelegt wird. In diesem Moment beginnt der TDC mit der Zeitmessung, und die Stromquellen der Entladepfadeinheit entfernen Ladung von den Kondensatoren unter Beachtung der korrekten Polarität, bis der Komparator auslöst (wenn die Integratorausgabe Null durchläuft). Dieses durch die STOP-Signale gekennzeichnete Ereignis stoppt die TDC-Zeitmessung. Daher ähnelt der Zeitdomänenbetrieb genau dem der Architektur in 41 (c).
  • Der passive Bitleitungsintegrator, der in 42(a) gezeigt wird, kann auch durch denselben aktiven Integrator ersetzt werden, der in 41(b) gezeigt wird. Im Vergleich zu anderen Ausführungsformen bietet dieses Netz eine präzise Ladungsintegration und eine ratiometrische Ausgabebewertung. Für die gleichen Zeitbedingungen, die in Ableitung von (59) angenommen wurden, ist die Netzwerkausgabe:
    Y j = t O D , j T r e f = ( Q i 2 I r e f ) T r e f = ( 2 I r e f T a i = 0 n 1 W i j X i 2 I r e f ) T r e f = k i = 0 n 1 W i j X i
    Figure DE102021208010A1_0068
  • Was wiederum eine ratiometrische Punktproduktausgabe mit einer Unabhängigkeit erster Ordnung von Schaltungswerten ist. Es sollte beachtet werden, dass die Architektur in 42 auch mit Single-Ended-Bitleitungen und unipolaren Stromquellen sowohl in der Lade- als auch in der Entladephase implementiert werden kann.
  • 43 veranschaulicht eine Ladungsumverteilungsarchitektur. Die in 43(a) gezeigte Ladungsumverteilungsarchitektur implementiert eine mehrstufige Eingabeaktivierungs- und mehrstufige Ausgabezeitdomänenschnittstelle zu einer 8-Transistor-SRAM-Zellen- (8T-Zelle) Architektur. Hier weist jede 8T-Zelle auch eine Einheitskapazität Cu auf, die abhängig von dem programmierten SRAM-Gewichtswert von +1 oder -1 ist, der zwischen ‚Vdd‘ und ‚GND‘ oder zwischen ‚GND‘ und ‚Vdd‘ geladen wird. Die Eingabeaktivierungen werden in eine Impulsfolge umgewandelt, bei der die Anzahl der Impulse gleich der ganzzahligen Eingabeaktivierung X; ist. Jeder Impuls hat eine Einheitsimpulsbreite, die aus einem Signal Ta extrahiert wird, das synchron zum Systemtakt Tclock ist. Ein Abtasttakt TS hat die gleiche Periode wie Ta, aber eine entgegengesetzte Phase im Vergleich zu Ta (43b). Jede Wortleitung sendet die Impulsfolgen für Aktivierungen, wo sie von den 8T-Zellen an Kreuzungen mit den Bitleitungen empfangen wird. Innerhalb der 8T-Zelle tasten Schalter, die durch Eingabeaktivierungen betrieben werden, eine Ladung auf Cu mit einer Polarität ab, die durch den SRAM-Wert bestimmt wird. An der entgegengesetzten Phase (definiert durch TS) wird die Ladung von allen Cu's an den Integrator übertragen, der mit der Bitleitung verbunden ist (der Integrator beginnt mit einer Rücksetz-Nullphase). Sobald alle Eingabeaktivierungsimpulse angelegt sind, beträgt die von dem Bitleitungsintegrator integrierte Gesamtladung:
    Q j = V d d C U i = 0 n 1 W i j X i
    Figure DE102021208010A1_0069
  • Nach dieser Phase wird das START-Signal angelegt (siehe 43(b)), wenn der TDC mit der Zeitmessung beginnt und gleichzeitig den Entladepfad durch ein mit dem Abtasttakt TS verbundenes UND-Gatter durch Schalten von eines Einheitsentladekondensator Cu freigibt, um mit der Entleerung des Integrators zu beginnen. Die Entladepolarität wird durch denselben Komparator bestimmt, der mit dem Bitleitungs-Integratorausgang verbunden ist, und wird verwendet, um den TDC zu STOPPEN, wenn der Integrator entleert wird. Die Entladezeit tOD,j kann durch die gesamte entfernte Ladung bestimmt werden, bis sie den anfänglichen Rücksetzzustand von Null und den effektiven Widerstand des Kondensators Cu, der mit der Geschwindigkeit Ts geschaltet wird (TS = Ta), erreicht:
    t O D , j = Q j V d d C U 1 T a = V d d C U T a i = 0 n 1 W i j X i V d d C U = T a i = 0 n 1 W i j X i
    Figure DE102021208010A1_0070
  • Die Zeit tOD,j wird mit dem TDC gemessen, der auf einen Referenztakt Tref bezogen ist, der dem gleichen synchronisierten Verhältnis folgt, wie durch Gleichung (57) beschrieben wird, wobei der digitale Ausgabezähler Yj des TDC bestimmt werden kann durch:
    Y j = r o u n d ( t O D , j T r e f ) = r o u n d ( T a i = 0 n 1 W i j X i T r e f ) = k i = 0 n 1 W i j X i
    Figure DE102021208010A1_0071
  • Dies zeigt, dass die ratiometrische Punktproduktausgabeberechnung unabhängig von allen Schaltungsparametern erster Ordnung und nur eine Funktion der ganzzahligen Aktivierungen und Gewichten ist. Es sollte beachtet werden, dass die Bitleitungen mit vollständig differentiellen Schaltkondensatorschaltungen implementiert werden können. Darüber hinaus muss die Integrationskapazität nicht mit der 8T-Zellenkapazität übereinstimmen, da die Integratorverstärkung für die ratiometrische Punktproduktausgabe irrelevant ist. Nur der Kondensator der Entladestrecke sollte als ganzzahliges Verhältnis der 8T-Zellenkapazität und mit dem gleichen Kondensatortyp hergestellt werden. Der Wert dieser Kapazität und die Entladetaktfrequenz sind auch für die Punktproduktausgabe so lange irrelevant, wie der Entladetakt (im Fall von 43(a) wurde der Abtasttakt TS verwendet) mit dem Haupttakt des Systems synchron ist.
  • 44 veranschaulicht ein Nur-Lese-Speicher-(ROM) basiertes Beispiel für Zeitdomänenschnittstellenschemata, die auf Crossbar-Netze für In-Memory-Berechnungs-Punktproduktberechnungen angewendet werden. Die Eingaben 4401 können von den Impulsgeneratoren 4403 empfangen werden. In 44(a) wird eine Ausführungsform einer grundlegenden Architektur mit ROM-basierten programmierbaren Gewichten gezeigt. In 44(b), wird eine Ausführungsform der differenziellen Bitleitungs-Konduktanz-basierten Architektur mit ROM-basierter Gewichtsprogrammierung (Größe und Polarität) gezeigt. Die in anderen Ausführungsformen (wie etwa die FIGen 40-43) gezeigte Zeitdomänen-Punktproduktmatrix Multiplikations- und Additions-Crossbar-Netze können für Implementierungen in Betracht gezogen werden, bei denen die Gewichtswerte als Festwertspeicher (ROM) fest verdrahtet sind. Dies ist für Anwendungen geeignet, bei denen nicht erwartet wird, dass die Netzwerkgewichte (oder ein Teil der Netzwerkgewichte) geändert werden, nachdem die Hardware für eine In-Memory-Berechnung implementiert wurde. Diese Technik ermöglicht das Programmieren der Gewichtspolarität oder sogar der Gewichtswerte, indem mehr Einheitsschaltungselemente, wie etwa Impedanzen (z. B. wie in 44 gezeigt wird) oder Stromquellen und Kondensatoren (z. B. wie in 45 unten gezeigt wird), leicht hergestellt werden und ausgewählt werden, um zu einem späteren Zeitpunkt angeschlossen zu werden, beispielsweise als Back-End-of-Line-Metalloption oder als NVM-Lasersicherungsoption. Die zugrunde liegende Hardware kann immer noch für ein anderes Muster von Gewichtswerten 4405 für ein anderes Produkt modifiziert werden. Verschiedene Teile des Netzes können immer noch mit SRAM-Speicherzellen als Hybrid aus SRAM- und ROM-Implementierung realisiert werden, um eine gewisse Programmierbarkeit bereitzustellen.
  • Die Ausführungsform von 44 ändert die allgemeine Basisarchitektur von 40 sowie die Differentialstruktur von 41 (basierend auf Einheitsimpedanzen) und wurde somit in ein ROM-basiertes Zeitdomänen-Crossbar-Netz umgewandelt und in 44 gezeigt. Zur Veranschaulichung sind in der Schaltung pro Wortleitungs- und Bitleitungskreuzung eine Anzahl von Einheitsimpedanzen G vorgefertigt, und eine Metalloption erlaubt es, eine gewünschte Anzahl davon mit den Bitleitungen zu verbinden, und ermöglicht so eine Skalierung der Gewichtswerte. Die Polarität kann auch mittels des mittleren Abschnitts geändert werden, der bestimmt, welche Seite der Bitleitungsimpedanzen mit positiven oder negativen Spannungen verbunden werden sollen. Die ratiometrische Operation im Zeitbereich dieser Struktur bleibt im Vergleich zu 40 und 41 unverändert und bietet genau die gleichen Vorteile.
  • 45 veranschaulicht eine ROM-basierte Zeitdomänenschnittstelle. 45(a) veranschaulicht eine Ausführungsform, die auf Bitleitungen eines ladungsumverteilungsbasierten Crossbar-Netzes mit programmierbarem Kapazitätswert und Polarität angewendet wird. 45(b) veranschaulicht ein Crossbar-Netz auf Basis einer Referenzstromquelle mit programmierbarer Stromstärke und Polarität. Eine ROM-basierte Alternative zu den Strukturen von 42 und 43 wird in 45 gezeigt. Hier hat das Ladungsumverteilungsnetz von 45(a) programmierbare Kapazitätswerte pro ROM-Zelle mittels einer Metalloption, die die gewünschte Anzahl vorgefertigter Kondensatoren parallel einbringt und sie mit der Zelle verbindet. Darüber hinaus bestimmt eine weitere Metalloption in der Mitte die Gewichtspolarität, indem die Kondensatorladungspolarität bestimmt wird. Die Architektur in 45(b) ist eine vollständig symmetrische Stromintegrationsarchitektur basierend auf die Architektur von 42, bei der vorgefertigte Einheitsstromquellen mittels Metalloptionen sowie Polaritätsauswahloptionen an die Bitleitungen angeschlossen werden können. Die ratiometrische Zeitdomänenoperation der Architekturen in den Ausführungsformen von 45 bleibt ähnlich zu denen der in 42 und 43 gezeigten Ausführungsformen, mit allen damit verbundenen Vorteilen. Die Architekturen auf ROM-Basis können die Möglichkeit einer gewissen Programmierbarkeit des Gewichts nach der Herstellung auf Kosten einer erhöhten Hardware für die vorgefertigten Elemente bereitstellen. Die Architekturen können mit SRAM-basierten Speichern kombiniert werden, um Teile des Netzes oder Gewichte als Hybrid aus ROM und SRAM für eine teilweise Programmierbarkeit zu implementieren.
  • 46 veranschaulicht ein Beispiel eines Floating-Gate-Flash- oder FeFETbasierten Crossbar-Netzes mit ratiometrischer Schnittstelle in der Zeitdomäne. Die Eingaben 4601 können an einem Pulsbreitengenerator 4603 empfangen werden. Die neuronalen Netzwerkgewichte können auf einem Chip in Form eines nichtflüchtigen Speichers gespeichert (programmiert) werden. Dies ermöglicht eine rekonfigurierbare Hardware (im Gegensatz zu ROM-basierten Netzen), die aus- und wieder eingeschaltet werden kann, ohne dass die Netzwerkgewichte neu programmiert werden müssen (im Gegensatz zu SRAM-basierten Netzen). Darüber hinaus ermöglicht jede mehrstufige Gewichtsspeicherfähigkeit eine Erhöhung der Netzwerkleistung (im Gegensatz zu binären Gewichten) sowie eine Einsparung von Chipfläche (im Gegensatz zu ROM- und SRAM-basierten Ansätzen). Ein Verfahren zum Implementieren solcher In-Memory-Berechnungs-Schemata besteht darin, Flash-Speicherarchitekturen mit einem floatenden Gate zu verwenden, bei denen die Gewichten in der Schwellenspannung eines Transistors gespeichert werden. Ein anderer Ansatz besteht darin, einen ferroelektrischen Feldeffekttransistor (FeFET) zu verwenden, bei dem die magnetische Polarisation einer ferroelektrischen Schicht der Gate-Struktur eines Transistors hinzugefügt wird und ein nichtflüchtiges Speicherverfahren bereitstellt. Crossbar-In-Memory-Netze zur Berechnung von Matrixpunktprodukten können unter Verwendung solcher Bauelemente realisiert werden. Die ratiometrischen Aktivierungs- und Ausgabebewertungstechniken in der Zeitdomäne können auf diese Netze angewendet werden, um die grundlegenden Vorteile der ratiometrischen Messung, Linearität, geringen Platzbedarf und eine skalierbare Schnittstelle, bereitzustellen. Die Struktur mit dem Floating-Gate-Transistor oder dem FeFET wird wie eine 2-Transistor- (2T) Zelle behandelt, wobei ein Transistor als Zugriffsschalter und der andere Transistor als programmierbarer Schwellenspannungstransistor, der das Gewicht des neuronalen Netzes implementiert, fungiert. Die programmierbaren Schwellentransistoren können entweder als variabler Widerstand im Trioden-Betriebsbereich oder als Stromquelle im Unterschwellen- oder Sättigungsbetriebsbereich verwendet werden. In vereinfachten Implementierungen verbindet eine 1T-Zelle den Auswahlschalter auf der Ebene der Wortleitung 460707.
  • Wenn programmierbare Schwellentransistoren als Widerstand verwendet werden, wird die Kanalkonduktanz Gij des Transistors bestimmt durch:
    G i j = β ( V g s V T H , i j )
    Figure DE102021208010A1_0072
  • Dabei ist Vgs die Gate-Source-Spannung des Transistors, β ist der Transistorparameter proportional zum Aspektverhältnis seiner Abmessungen (Breite/Länge), Ladungsträgermobilität usw., und VTH,ij ist die programmierte Schwellenspannung durch das floatende oder magnetisches Gate, das schließlich die Gewichtskonduktanz Gij steuert. Um die Gewichtskonduktanz so zu gestalten, dass sie ein ganzzahliges Verhältnis von m hat, d. h. Werte von: G, 2G, 3G, 4G usw., müssen die programmierten Schwellenspannungen eine Beziehung mit der Basisschwellenspannung VTH,b erfüllen, die die kleinste Einheitsgewichtskonduktanz G zur Folge hat. Mit anderen Worten, damit ein Transistor eine Konduktanz von m×G bereitstellt (mit m = 1, 2, 3, 4, ...), sollte seine Schwellenspannung VTH,m im Vergleich zum Basistransistor ein Verhältnis erfüllen:
    β ( V g s V T H , m ) = m G = m β ( V g s V T H , b )
    Figure DE102021208010A1_0073
  • Was resultiert in:
    V T H , m = m V T H , b + ( 1 m ) V g s
    Figure DE102021208010A1_0074
  • Der Entwurfsraum zum Erhalten der Konduktanz des linearen Verhältnisses unter Verwendung der Gleichung (63) ist auf vielleicht 3 oder 4 Konduktanzniveaus begrenzt, da die Grenzen für die kleinstmöglichen Vgs und die möglichen programmierten Schwellenspannungen begrenzt sind (durch Versorgungsspannungen und Transistoreigenschaften). Mit anderen Worten, aufgrund der Natur von Gleichung 66 führt das Erhalten größerer Konduktanzen zu negativen Schwellenspannungspegeln für den gleichen Transistortyp, die möglicherweise nicht durchführbar sind (47 oben). Innerhalb des Entwurfsraums und der folgenden Gleichung (66) können die ganzzahligen Verhältnisse zwischen der Kanalkonduktanz bis zu einer ersten Ordnung (für eine begrenzte Anzahl von Niveaus) und unter Verwendung des gleichen Aspektverhältnisses für die Transistoren erreicht werden. Mit dieser Überlegung kann eine ratiometrische Zeitdomänenschnittstelle auf ein Crossbar-Netz angewendet werden, das Flash- oder FeFET-Transistoren mit floatendem Gate verwendet.
  • 46 zeigt ein Floating-Gate-Flash- oder FeFET-basiertes Crossbar-Netz mit einer ratiometrischen Schnittstelle in der Zeitdomäne. 46(a) zeigt ein auf 2T-Zellen basierendes Netz 4620 basierend auf der Transistorkanalkonduktanz (Triodenbetrieb). 46(b) veranschaulicht ein 2T-Zellen-basiertes Netz basierend auf Stromquellen (unter dem Schwellenwert oder in Sättigung). 46(c) veranschaulicht ein IT-Zellen-basiertes Netz mit einem zusammengelegten Wortleitungsschalter basierend auf der Transistorkanalkonduktanz (Triodenbetrieb). 46(d) veranschaulicht ein IT-Zellen-basiertes Netz mit einem zusammengelegten Wortleitungsschalter basierend auf Stromquellen (unter dem Schwellenwert oder in Sättigung). Die Basiskonduktanz G kann verwendet werden, um den Entladungspfad zu bilden. Dies wird in 46(a) gezeigt. Die Aktivierungen werden als pulsweitenmodulierte Signale angelegt. Der Betrieb dieses Netzes ähnelt dem von 40(a), und seine Ausgabe wird durch die Gleichungen (54) bis (58) bestimmt. Es sollte beachtet werden, dass die Kanalkonduktanz durch die Drain-Source-Spannung Vds des Transistors moduliert wird und es daher besser ist, die Bitleitungen auf einer kontrollierten Gleichspannung zu halten, d. h. indem der aktive Integrator verwendet wird, der eine geregelte Gleichspannung am Summierungsknoten bereitstellt, statt einem passiven Integrator. Eine Alternative zu dem Netz von 46(a) wird in 46(c) gezeigt, wo ein 1T-Zellen-Transistor verwendet wird und der Auswahlschalter an der Wortleitung zusammengeführt wird.
  • Wenn programmierbare Schwellentransistoren als Stromquellen verwendet werden, folgt der Kanalstrom des Transistors dem Quadratgesetz, wenn er in Sättigung betrieben wird:
    I i j = 0.5 β ( V g s V T H , i j ) 2
    Figure DE102021208010A1_0075
  • Wenn der Transistor unterschwellig betrieben wird, folgt er einer exponentiellen Beziehung:
    I i j = I S e ( V g s V T H , i j ) n V T e V T H , i j n V T
    Figure DE102021208010A1_0076
  • Dabei ist IS ein Sättigungsstrom ist, n ist ein Transistorparameter unterhalb des Schwellenwerts, und VT ist die thermische Spannung (25 mV bei Raumtemperatur). Für durch Iij implementierte lineare Gewichtsverhältnisse, d. h., um zu erreichen, dass der Kanalstrom des Transistors ein ganzzahliges Verhältnis in Bezug auf einen Einheitstransistor mit der Basisschwellenspannung VTH,b hat, d. h. Im = m × Iref, sollte einmal mehr die VTH, m so angeordnet werden, dass sie die folgenden Beziehungen haben:
  • Für den Sättigungsbetrieb:
    V T H , m = m V T H , b + ( 1 m ) V g s
    Figure DE102021208010A1_0077
  • Für den unterschwelligen Betrieb:
    V T H , m = V T H , b n V T ln ( m )
    Figure DE102021208010A1_0078
  • Noch einmal setzen die Beschränkungen der Zufuhr und der programmierbaren Mindest- und Höchstschwellenwerte eine Grenze für die mögliche Anzahl von realisierbaren Niveaus, um ein ganzzahliges Verhältnis zwischen Gewichten zu erhalten. Die programmierbaren Schwellentransistoren können als Stromquellen in einem Crossbar-Netz angeordnet sein, das die Netzwerkgewichte implementiert, wie in 46(b) gezeigt wird, einschließlich einer ratiometrischen Zeitdomänenauslesung mit einem Entladungspfad, der mit einer Einheitsstromquelle verwendet wird. Die Operation dieses Netzes ähnelt dem von 40(c), und seine ratiometrische MatrixPunktproduktausgabe wird durch die Gleichung (58) abgeleitet. Eine Alternative zu dem Netz von 46(b) ist in 12d gezeigt, wo ein 1T-Zellen-Transistor verwendet wird und der Auswahlschalter an der Wortleitung zusammengeführt wird.
  • Es sollte beachtet werden, dass für die Implementierung einer größeren Anzahl von Gewichtsniveaus mit dem ratiometrischen Operationsschema in der Zeitdomäne die aktuellen stromquellenbasierten Architekturen des Floating-Gate-Flash oder FeFET eine größere Anzahl von Niveaus ermöglichen als die Netze, die Gewichte mittels Kanalkonduktanz implementieren (obwohl negative Schwellenspannungen implementiert werden können, bedeutet die Erzeugung der linearen Pegel jedoch das Anlegen von nahe Null oder negativen Gate-Source-Spannungen, was weniger praktisch sein könnte). Stromquellenimplementierungen ermöglichen mehr ganzzahlige Niveaus mit positiven Schwellenspannungen hauptsächlich wegen der exponentiellen Natur der Stromquellenimplementierung (im Gegensatz zu der linearen Abhängigkeit der Kanalkonduktanz von den programmierten Schwellenspannungen). Dies wird in 47 dargestellt, die die Schwellenspannungsbereiche für eine ganze Zahl von Niveaus darstellt, die Konduktanz- und Stromquellen implementieren (im Sättigungsbereich und unter dem Schwellenwertbereich). Dies ist kein Problem, wenn binäre Gewichte implementiert werden, in welchem Fall die Einheits-Floating-Gate- oder FeFET-Transistoren binär (EIN/AUS) arbeiten. In diesem Fall arbeiten die Zeitdomänennetze von 46(a) und 46(b) gleich und haben die gleichen ratiometrischen Operationsvorteile.
  • 47 veranschaulicht den Bereich von VTH,ij, um linear skalierte Gewichte eines Crossbar-Netzes unter Verwendung von Kanalleitwerten (oben) oder Stromquellen in Sättigung (Mitte) oder unter der Schwelle (unten) zu implementieren.
  • Widerstandsspeicher (Memristoren), wie etwa RRAM oder Phasenänderungsspeicher (PCM) usw., stellen einen flächeneffizienten Weg bereit, um neuronale Netzgewichte zu implementieren, indem Speicherelemente zum Zwecke der In-Memory-Berechnung verwendet werden. Die Implementierung von Crossbar-Netzen, die Matrixpunktprodukte unter Verwendung von Memristoren berechnen, kann mit der vorgeschlagenen ratiometrischen Schnittstelle in der Zeitdomäne kombiniert werden, um die Fläche und Energieeffizienz zu maximieren sowie eine skalierbare Schnittstelle bereitzustellen, die in erster Linie unabhängig von Prozess-, Temperatur- und Spannungsschwankungen der Schaltungselemente ist. Für die Architektur können mehrere Ausführungsformen verwendet werden.
  • In einer ersten Ausführungsform kann die Ausführungsform auf der in 40 gezeigten grundlegenden Architektur basieren, und wird realisiert, indem die Gewichtskonduktanz G.Wij durch programmierbare Memristorelemente ersetzt wird, die diese Leitwertwerte implementieren, und die Basismemristorkonduktanz G verwendet wird, um einen Entladepfad zu implementieren, der die ratiometrischen Lade- und Entladevorgänge ermöglicht. Die Auswertung der Entladezeit in der Zeitdomäne mit den Bedingungen für übereinstimmende Gewichts- und Entladepfadelemente sowie synchronisierte Zeitreferenzen resultiert in einem Punktprodukt, das in erster Ordnung eine Funktion der ganzzahligen Eingabe- und Gewichtsskalierungswerte ist. Gleichung (58) repräsentiert die Ausgabe, und die Integrationsfunktion kann mittels aktiver (Integrator mit Verstärker) oder passiver (Bitleitungskapazität) Integration realisiert werden.
  • 48 veranschaulicht eine zweiphasige passive Entladung unter Verwendung einer Bitleitungskapazität und einer Memristorkonduktanz. Unter der Annahme der Verfügbarkeit eines Vorzeichenkomparators mit ausreichender Eingabegleichtaktspannungsunterdrückung unterscheidet sich dieser Ansatz geringfügig von anderen Ausführungsformen in Bezug darauf, wie die ratiometrische Zeitmessung durchgeführt wird. Wie in 48a veranschaulicht wird, kann dieser Ansatz eine zweiphasige passive Entladung unter Verwendung der Bitleitungskapazitäten CBL und einer Memristorkonduktanz verwenden, die differentiell um eine Basiskonduktanz G0 angeordnet sind, mittels bipolarer ganzzahliger Gewichte ±Wij, die eine Einheitskonduktanz Gu skalieren (die Konduktanzcharakteristik wird in 38(b) gezeigt): G i j = G 0 + W i j G u & G b i j = G 0 W i j G u
    Figure DE102021208010A1_0079
  • Die mit VBLj und VBLbj bezeichneten differentiellen Bitleitungsspannungen, die jeweils mit einer Kapazität CBL verbunden sind, haben Entladungspfade nach Masse. Die Pulsbreitenmodulatoren 4803 steuern die Wortleitungen 4809, die an den Memristorschaltern angebracht sind. Diese stellen eine Entladephase 4813 der Bitleitungen 4802 in Richtung Masse bereit, die durch gewichtete Memristoren und die Aktivierungsimpulsbreiten bestimmt wird. Ein zweiter Entladungspfad wird durch einen Referenzleitwert gesteuert und stellt eine ratiometrische Zeitmessung bereit. Zwei analoge Komparatoren, die mit den beiden Anschlüssen jeder differentiellen Bitleitung verbunden sind, vergleichen die Bitleitungsspannungen VBLj und VBLbj mit einer Schwellenspannung Vref (Komparatoren könnten auch auf Kosten des Durchsatzes von Bitleitungen geteilt werden). Der Betrieb des Zeitdomänen-Ausleseschemas wird in 48(b) gezeigt. Die Bitleitungen starten von einem Vorladezustand zu einer Vorladespannung VP. Dann werden die pulsweitenmodulierten Aktivierungssignale (skaliert durch Aktivierungseingaben Xi und synchron zu einer Zeitreferenz Ta) angelegt. Die Aktivierungen treiben Schalter an, die die Bitleitungskondensatoren durch die Gewichtskonduktanz für die durch die Aktivierung bestimmte Dauer entladen. Sobald alle Aktivierungen angewendet sind (wie in 48(b) gezeigt wird), führt die Überlagerung der exponentiellen Entladungszeiten durch die gewichteten Zeitkonstanten zu einer Gesamtdifferenzspannung VOD über den Bitleitungen, d. h. VOD,j = VBLj - VBLbj: V B L j Y B L b j = V P e x p ( 1 i = 0 n 1 G 0 W i j G u C B L T a X i ) V P e x p ( 1 i = 0 n 1 G 0 W i j G u C B L T a X i )
    Figure DE102021208010A1_0080
  • In der zweiten Phase werden die Bitleitungen durch die Referenzkonduktanzzweige mit der Konduktanz Gref entladen und durch die Entladeschalter aktiviert, die durch ein ‚Entlade‘-Signal gesteuert werden. Während dieser Phase kreuzt jede Bitleitungsspannung schließlich den Schwellenwert Vref, zu welchem Zeitpunkt der entsprechende Komparator ein logisches Signal erzeugt. Ein Logikblock empfängt beide Komparatorausgaben und erzeugt START- und STOP-Signale (START wird erzeugt, wenn der erste Komparator auslöst, und STOP, wenn der zweite Komparator auslöst). Diese Signale werden dem Zeit-Digital-Wandler (TDC) 4819 der Bitleitung zugeführt, der die Zeit tOD,j zwischen START- und STOP-Ereignissen misst. Die tOD,j-Zeit ist die Differenz zwischen der Zeit, die jede Bitleitung benötigt, um sich aus ihrem Zustand nach dem Anlegen der Aktivierungen an die Komparator-Schwellenspannung Vref (siehe 48(b)), bezeichnet durch tdis,Pj, zu entladen, und tdis,Mj kann abgeleitet werden als: t d i s , P j = C B L G r e f l n ( V P V r e f ) + G 0 G r e f T a i = 0 n 1 X i G u G r e f T a i = 0 n 1 W i j X i
    Figure DE102021208010A1_0081
    t d i s , M j = C B L G r e f l n ( V P V r e f ) + G 0 G r e f T a i = 0 n 1 X i + G u G r e f T a i = 0 n 1 W i j X i
    Figure DE102021208010A1_0082
    t O D , j = t d i s , M j t d i s , P j = 2 G u G r e f T a i = 0 n 1 W i j X i
    Figure DE102021208010A1_0083
  • Indem Gref als ganzzahliges Vielfaches von Gu gewählt wird, d. h. Gref = M.Gu, ist die Zeitdomänenmessung von tOD,j ratiometrisch hinsichtlich der Konduktanz: t O D = 2 T a M j = 0 n 1 W i j X j
    Figure DE102021208010A1_0084
  • Die Funktion eines Zeit-Digital-Wandlers kann auf die eines Zählers vereinfacht werden, der bis N zählt, was die Anzahl der Perioden eines Referenztakts mit der Periode Tref ist, die in die Zeitdauer tOD,j passt: Y j = N = r o u n d ( t O D T r e f ) = r o u n d ( 2 T a M T r e f j = 0 n 1 W i j X j )
    Figure DE102021208010A1_0085
  • Bei einem Synchronisieren 4815 der Zeiteinheit Ta der pulsweitenmodulierten Aktivierungen mit der Zeitreferenz Tref des TDC, wie durch Gleichung (57) beschrieben wird, wird die Quantisierungsfunktion (round(x)) nicht mehr benötigt, und die digitalisierte ganzzahlige N-Ausgabe von der TDC kann umgeschrieben werden als: Y j = 2 k M j = 0 n 1 W i j X j
    Figure DE102021208010A1_0086
  • Dies zeigt, dass das vorgeschlagene Schema eine lineare und ratiometrische Bewertung der Matrixpunktproduktausgabe implementiert.
  • 49 veranschaulicht ein passives Entladeverfahren auf Memristorbasis mit ratiometrischer Punktproduktausgabebewertung in der Zeitdomäne unter Verwendung eines Komparators. In 49(a) zeigt die Abbildung das Crossbar-Netz und die Konduktanz. In 49(b) werden Wellenformen einer Zeitdomänenoperation veranschaulicht. Eine Alternative zur der Operation in 48(a) gezeigten Operation des Netzes ist die in 49(a) gezeigte Implementierung. Hier kann ein einzelner Komparatorblock (anstatt zwei) zweimal verwendet werden, und die Referenzspannung Vref kann eliminiert werden. Nach dem Anlegen der pulsweitenmodulierten Aktivierungseingaben an die Wortleitungen und dem Abschluss der gewichteten Entladung der Bitleitungskapazitäten bestimmt der Komparator, welche der Bitleitungsspannungen VBLj oder VBLbj die größere der beiden ist. Das Komparatorausgangssignal bestimmt dann die Bitleitung mit der größeren Spannung, die über den Referenzentladungspfad entladen werden soll, während die Ladung auf dem Kondensator der anderen Bitleitung (mit kleinerer Spannung) unverändert bleibt (siehe 49(b)). Dies wird einfach auf die Referenzpfad-Entladesteuerschalter angewendet, mittels eines AND- und eines NOT-Logik-Gatters, wie in 49(a) gezeigt wird. Die Referenzpfadentladung beginnt, wenn das Steuersignal ‚Entladen/START‘ aktiviert wird, das die Bitleitung mit der größten Spannung entlädt und die TDC-Zeitmessung startet. Wenn sich das Vorzeichen der Komparatoreingabe ändert, z. B. die Spannung des entladenden Bitleitungsanschlusses kleiner wird als die der nicht entladenden Leitung, schaltet der Komparatorausgang um und macht das STOP-Ereignis für den TDC kenntlich, um die Zeitmessung zu stoppen. Die Zeitdifferenz zwischen START und STOP bildet eine Zeit TOD,j, die abgeleitet werden kann, indem die Zeit, die die Bitleitung mit größerer Spannung benötigt, um sich über den Referenzleitwert Gref zu entladen, mit der Spannung der Bitleitung mit kleinerer Spannung gleichgesetzt wird. Die Gleichsetzung der beiden Spannungen nach der Zeit TOD,j ergibt: V P e x p ( 1 i = 0 n 1 G 0 + W i j G u C B L T a X i ) = V P e x p ( 1 i = 0 n 1 G 0 + W i j G u C B L T a X i ) e x p ( t O D G r e f C B L )
    Figure DE102021208010A1_0087
  • Das Umordnen der Gleichung ergibt: e x p ( 2 G u C B L T a i = 0 n 1 W i j X i ) = e x p ( t O D G r e f C B L )
    Figure DE102021208010A1_0088
  • Wobei TOD abgeleitet werden kann als: t O D = 2 G u G r e f T a j = 0 n 1 W i j X j
    Figure DE102021208010A1_0089
  • Die Gleichung (81) zeigt noch einmal, dass der dritte Ansatz auch eine ratiometrische Bewertung der Punktproduktausgabe des Crossbar-Netzes mit einer Unabhängigkeit erster Ordnung von den Schaltungselementwerten mit synchroner Aktivierung und TDC-Zeitreferenzen (Gleichung 57) und ratiometrischen Impedanzpegeln implementiert (Gref = M.Gu), was in derselben digitalen Ausgabe Yj resultiert, wie durch Gleichung (78) beschrieben wird, z. B. nur eine Funktion ganzzahliger Aktivierungen und Gewichte.
  • Die hierin offenbarten Prozesse, Verfahren oder Algorithmen können an eine Verarbeitungsvorrichtung, einen Controller oder einen Computer geliefert/dort implementiert werden, der eine beliebige vorhandene programmierbare elektronische Steuereinheit oder dedizierte elektronische Steuereinheit aufweisen kann. In ähnlicher Weise können die Prozesse, Verfahren oder Algorithmen als Daten und Anweisungen gespeichert werden, die von einem Controller oder Computer in vielen Formen ausgeführt werden können, einschließlich, aber nicht beschränkt auf Informationen, die dauerhaft auf nicht beschreibbaren Speichermedien, wie etwa ROM-Vorrichtungen, gespeichert sind, und Informationen, die änderbar auf beschreibbaren Speichermedien, wie etwa Disketten, Magnetbänder, CDs, RAM-Vorrichtungen und andere magnetische und optische Medien, gespeichert sind. Die Prozesse, Verfahren oder Algorithmen können auch in einem durch Software ausführbaren Objekt implementiert werden. Alternativ können die Prozesse, Verfahren oder Algorithmen ganz oder teilweise durch geeignete Hardwarekomponenten, wie etwa anwendungsspezifische integrierte Schaltungen (ASICs), feldprogrammierbare Gate Arrays (FPGAs), Zustandsmaschinen, Controller oder andere Hardwarekomponenten oder Vorrichtungen, oder eine Kombination aus Hardware-, Software- und Firmware-Komponenten, realisiert werden.
  • Während oben beispielhafte Ausführungsformen beschrieben wurden, ist es nicht beabsichtigt, dass diese Ausführungsformen alle möglichen Formen beschreiben, die von den Ansprüchen umfasst sind. Die in der Beschreibung verwendeten Worte sind eher beschreibende als einschränkende Worte, und es versteht sich, dass verschiedene Änderungen vorgenommen werden können, ohne vom Geist und Umfang der Offenbarung abzuweichen. Wie zuvor beschrieben, können die Merkmale verschiedener Ausführungsformen kombiniert werden, um weitere Ausführungsformen der Erfindung zu bilden, die möglicherweise nicht explizit beschrieben oder veranschaulicht werden. Während verschiedene Ausführungsformen als Vorteile bereitstellend beschrieben werden könnten oder gegenüber anderen Ausführungsformen oder Implementierungen des Standes der Technik in Bezug auf eine oder mehrere gewünschte Eigenschaften bevorzugt werden könnten, erkennt ein durchschnittlicher Fachmann, dass eines oder mehrere Merkmale oder Eigenschaften kompromittiert werden können, um die gesamten gewünschten Systemattribute, die von der spezifischen Anwendung und Implementierung abhängen, zu erreichen. Diese Attribute können Kosten, Festigkeit, Haltbarkeit, Lebenszykluskosten, Marktfähigkeit, Aussehen, Verpackung, Größe, Gebrauchstauglichkeit, Gewicht, Herstellbarkeit, Montagefreundlichkeit usw. aufweisen, sind aber nicht darauf beschränkt. Somit liegen, zu dem Ausmaß, zu dem irgendwelche Ausführungsformen als weniger wünschenswert beschrieben sind als andere Ausführungsformen oder Implementierungen des Standes der Technik in Bezug auf eine oder mehrere Eigenschaften, diese Ausführungsformen nicht außerhalb des Schutzumfangs der Offenbarung und können für bestimmte Anwendungen wünschenswert sein.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • WO 16/895683 [0008]

Claims (20)

  1. Dynamische Gleichgewichts- (DEQ) Modellschaltung, umfassend: einen ersten Multiplizierer, der dazu ausgelegt ist, eine Eingabe zu empfangen, die Eingabe mit einem ersten Gewicht zu skalieren und die skalierte Eingabe auszugeben; einen zweiten Multiplizierer, der dazu ausgelegt ist, eine Wurzel zu empfangen, die Wurzel mit einem zweiten Gewicht zu skalieren und die skalierte Wurzel auszugeben; einen Summierungsblock, der dazu ausgelegt ist, die skalierte Eingabe, eine Bias-Eingabe und die skalierte Wurzel zu kombinieren und eine nichtlineare Eingabe auszugeben; und eine erste nichtlineare Funktion, die dazu ausgelegt ist, die nichtlineare Eingabe zu empfangen und die Wurzel auszugeben, wobei das erste Gewicht und das zweite Gewicht auf einem trainierten DEQ-Modell eines neuronalen Netzes basieren.
  2. Modellschaltung nach Anspruch 1, wobei die Schaltung ferner eine Abtast- und Halteschaltung aufweist, die zwischen einem ersten nichtlinearen Block und einem zweiten nichtlinearen Block gekoppelt ist.
  3. Modellschaltung nach Anspruch 1, wobei die Schaltung ferner einen oder mehrere Verzögerungsblocks umfasst, die dazu ausgelegt sind, eine aktuelle Ausgabe-Wurzel als Funktion einer oder mehrerer vorheriger Eingaben und einer oder mehrerer vorheriger Ausgabe-Wurzeln auszugeben.
  4. Modellschaltung nach Anspruch 1, wobei die Schaltung ferner eine zweite nichtlineare Funktion aufweist, die dazu ausgelegt ist, die Wurzel zu skalieren und eine dynamische Gleichgewichtsantwort auszugeben.
  5. Modellschaltung nach Anspruch 1, wobei die Eingabe mit einem Gewicht multipliziert wird, das ein Skalar, ein Vektor oder ein voller Tensor ist.
  6. Modellschaltung nach Anspruch 1, wobei der Multiplizierer dazu ausgelegt ist, die skalierte Eingabe als Reaktion auf eine Faltungsfunktion oder eine lineare Operationsfunktion auszugeben.
  7. Modellschaltung nach Anspruch 1, wobei die Schaltung ferner dazu ausgelegt ist, die Bias-Eingabe über einen Zeilentreiber, eine Rechenstruktur oder eine oder mehrere elektrische Komponenten zu empfangen.
  8. Dynamische Gleichgewichts- (DEQ) Modellschaltung, umfassend: einen ersten Multiplizierer, der dazu ausgelegt ist, eine Eingabe zu empfangen, die Eingabe mit einem ersten Gewicht zu skalieren und die skalierte Eingabe auszugeben; einen zweiten Multiplizierer, der dazu ausgelegt ist, eine Wurzel zu empfangen, die Wurzel mit einem zweiten Gewicht zu skalieren und die skalierte Wurzel auszugeben; einen Summierungsblock, der dazu ausgelegt ist, die skalierte Eingabe und die skalierte Wurzel zu kombinieren, wobei der Summierungsblock dazu ausgelegt ist, eine nichtlineare Eingabe auszugeben; und eine erste nichtlineare Funktion, die dazu ausgelegt ist, die nichtlineare Eingabe zu empfangen und die Wurzel auszugeben, wobei das erste Gewicht und das zweite Gewicht auf einem trainierten DEQ-Modell eines neuronalen Netzes basieren.
  9. Modellschaltung nach Anspruch 8, wobei der erste Multiplizierer und der zweite Multiplizierer einen Transistor, eine Induktivität, einen Kondensator oder einen Widerstand aufweisen.
  10. Modellschaltung nach Anspruch 8, wobei der Summierungsblock eine Rechenstruktur mit einer oder mehreren elektrischen Komponenten ist.
  11. Modellschaltung nach Anspruch 8, wobei die erste nichtlineare Funktion einen Transistor, eine Induktivität, einen Kondensator, einen Verstärker oder einen Widerstand aufweist.
  12. Modellschaltung nach Anspruch 8, wobei die Eingabe analoge oder digitale Signale aufweist.
  13. Modellschaltung nach Anspruch 8, wobei die Eingabe mit einem Gewicht multipliziert wird, das ein Skalar, ein Vektor oder ein voller Tensor ist.
  14. Modellschaltung nach Anspruch 8, wobei die Schaltung ferner eine zweite nichtlineare Funktion oder eine zweite lineare Funktion aufweist, die dazu ausgelegt ist, die Wurzel zu skalieren und eine dynamische Gleichgewichtsantwort auszugeben.
  15. Dynamische Gleichgewichts- (DEQ) Modellschaltung, umfassend: eine Rechenstruktur, die dazu ausgelegt ist, eine Eingabe an einem Zeilentreiber der Rechenstruktur zu empfangen und die Eingabe mit einem ersten Gewicht und einem zweiten Gewicht zu skalieren und eine Wurzel auszugeben, wobei die Skalierung unter Verwendung einer oder mehrerer elektrischer Komponenten erfolgt; und eine Ausgabeschicht, die dazu ausgelegt ist, die Wurzel zu empfangen, wobei die Ausgabeschicht ferner dazu ausgelegt ist, eine skalierte Wurzel als Reaktion auf die Wurzel und eine erste nichtlineare Funktion auszugeben, wobei das erste Gewicht und das zweite Gewicht auf einem trainierten DEQ-Modell eines neuronalen Netzes basieren, wobei die Ausgabeschicht eine oder mehrere elektrische Komponenten aufweist.
  16. Modellschaltung nach Anspruch 15, wobei die Modellschaltung dazu ausgelegt ist, eine Bias an der Rechenstruktur zu empfangen.
  17. Modellschaltung nach Anspruch 15, wobei die Ausgabeschicht ferner dazu ausgelegt ist, als Reaktion auf die Eingabe eine Klassifizierung auszugeben.
  18. Modellschaltung nach Anspruch 15, wobei die elektrischen Komponenten einen oder mehrere Widerstände, Kondensatoren oder Transistoren umfassen.
  19. Modellschaltung nach Anspruch 15, wobei die Eingabe ein digitales Signal oder ein analoges Signal ist.
  20. Modellschaltung nach Anspruch 15, wobei die Eingabe ein digitales Signal ist, das innerhalb der Rechenstruktur in ein analoges Signal umgewandelt wurde.
DE102021208010.3A 2020-07-27 2021-07-26 Hardware-rechenstruktur für tiefe gleichgewichtsmodelle Pending DE102021208010A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/940,099 US11847560B2 (en) 2020-07-27 2020-07-27 Hardware compute fabrics for deep equilibrium models
US16/940,099 2020-07-27

Publications (1)

Publication Number Publication Date
DE102021208010A1 true DE102021208010A1 (de) 2022-01-27

Family

ID=79179474

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021208010.3A Pending DE102021208010A1 (de) 2020-07-27 2021-07-26 Hardware-rechenstruktur für tiefe gleichgewichtsmodelle

Country Status (4)

Country Link
US (1) US11847560B2 (de)
CN (1) CN113988255A (de)
DE (1) DE102021208010A1 (de)
TW (1) TW202219840A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022202425A1 (de) 2022-03-10 2023-09-14 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung mit einer Vergleichereinrichtung und Verfahren zum Betreiben einer Vorrichtung mit einer Vergleichereinrichtung

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210150328A1 (en) * 2021-01-27 2021-05-20 Intel Corporation Hierarchical Hybrid Network on Chip Architecture for Compute-in-memory Probabilistic Machine Learning Accelerator
US12033699B2 (en) * 2021-02-02 2024-07-09 Macronix International Co., Ltd. Memory device and operation method thereof for performing multiply accumulate operation
US20230317161A1 (en) * 2022-03-31 2023-10-05 Crossbar, Inc. Matrix multiplication with resistive memory circuit having good substrate density
US20230386564A1 (en) * 2022-05-25 2023-11-30 Stmicroelectronics International N.V. Enhanced accuracy of bit line reading for an in-memory compute operation by accounting for variation in read current
US20240021244A1 (en) * 2022-07-15 2024-01-18 Macronix International Co., Ltd. Memory device for in-memory computing
CN115861343B (zh) * 2022-12-12 2024-06-04 中山大学·深圳 基于动态隐式图像函数的任意尺度图像表示方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11068777B2 (en) * 2017-02-06 2021-07-20 International Business Machines Corporation Voltage controlled highly linear resistive elements

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022202425A1 (de) 2022-03-10 2023-09-14 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung mit einer Vergleichereinrichtung und Verfahren zum Betreiben einer Vorrichtung mit einer Vergleichereinrichtung
US12111340B2 (en) 2022-03-10 2024-10-08 Robert Bosch Gmbh Apparatus comprising a comparator device and method for operating an apparatus comprising a comparator device

Also Published As

Publication number Publication date
CN113988255A (zh) 2022-01-28
US20220027723A1 (en) 2022-01-27
TW202219840A (zh) 2022-05-16
US11847560B2 (en) 2023-12-19

Similar Documents

Publication Publication Date Title
DE102021207970A1 (de) Eine nurlesespeicherarchitektur für analoge matrixoperationen
DE102021207661A1 (de) Ratiometrische zeitdomänen-auslesungschnittstellen für speicherinterne, analoge mischsignal-rechen-crossbar-netzwerke
DE102021208010A1 (de) Hardware-rechenstruktur für tiefe gleichgewichtsmodelle
US11663457B2 (en) Neural network circuits having non-volatile synapse arrays
DE112018005726B4 (de) Resistive verarbeitungseinheit auf zählerbasis für programmierbare und rekonfigurierbare künstliche neuronale netzwerke
DE112018000272T5 (de) Resistive Verarbeitungseinheit mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze
DE112016002943B4 (de) Neuromorphe Verarbeitungseinheiten
US11521051B2 (en) Memristive neural network computing engine using CMOS-compatible charge-trap-transistor (CTT)
Liu et al. Event-based neuromorphic systems
DE69421106T2 (de) Neuronales Netzwerk mit räumlich verteilter Arbeitsweise
DE60024030T2 (de) Auf Nadelpulsen basierter Analog-Digital-Wandlung des Stromtyps
Loeffler et al. Neuromorphic learning, working memory, and metaplasticity in nanowire networks
DE112021005864T5 (de) Nichtflüchtige analoge widerstands-speicherzellen zum verwenden von ferroelektrischen auswahltransistoren
DE112018002950T5 (de) System und Verfahren zum Aufbauen von synaptischen Gewichten für künstliche neuronale Netze aus mit Vorzeichen versehenen analogen Leitwertpaaren unterschiedlicher Wertigkeit
WO2019202427A1 (en) Resistive processing unit architecture with separate weight update and inference circuitry
DE102021115361A1 (de) Inferenzmaschine mit sehr geringer leistung und externer magnetfeldprogrammierung
DE102021115503A1 (de) Mehrstufiger inferenzmaschinenbeschleuniger mit sehr niedrigem stromverbrauch
Ahmadi-Farsani et al. A CMOS–memristor hybrid system for implementing stochastic binary spike timing-dependent plasticity
Kwon et al. Reconfigurable neuromorphic computing block through integration of flash synapse arrays and super-steep neurons
DE112021006459T5 (de) Dynamische konfiguration einer auslese-schaltungsanordnung für verschiedene operationen in einem analogen resistiven kreuzschienen-array
DE102021123580A1 (de) Verfahren zum entwickeln einer initialisierungsfunktion zum programmieren eines speicherelements
DE112020005613T5 (de) Neuromorphe Einheit mit Kreuzschienen-Array-Struktur
Olumodeji et al. Behavioural modelling of memristive devices targeted to sensor interfaces
DE112021000238T5 (de) Leistungsfähige und platzsparende struktur von synapsen-speicherzellen
DE112020006162T5 (de) Neuronaler verstärker, neuronales netzwerk und sensorelement

Legal Events

Date Code Title Description
R012 Request for examination validly filed