DE102021207661A1 - Ratiometrische zeitdomänen-auslesungschnittstellen für speicherinterne, analoge mischsignal-rechen-crossbar-netzwerke - Google Patents

Ratiometrische zeitdomänen-auslesungschnittstellen für speicherinterne, analoge mischsignal-rechen-crossbar-netzwerke Download PDF

Info

Publication number
DE102021207661A1
DE102021207661A1 DE102021207661.0A DE102021207661A DE102021207661A1 DE 102021207661 A1 DE102021207661 A1 DE 102021207661A1 DE 102021207661 A DE102021207661 A DE 102021207661A DE 102021207661 A1 DE102021207661 A1 DE 102021207661A1
Authority
DE
Germany
Prior art keywords
time
circuit
digital
network
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021207661.0A
Other languages
English (en)
Inventor
Ken Wojciechowski
Sayyed Mahdi Kashmiri
Efthymios Papageorgiou
Jonas Messner
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 DE102021207661A1 publication Critical patent/DE102021207661A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4094Bit-line management or control circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G04HOROLOGY
    • G04FTIME-INTERVAL MEASURING
    • G04F10/00Apparatus for measuring unknown time intervals by electric means
    • G04F10/005Time-to-digital converters [TDC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/16Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
    • G06G7/161Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division with pulse modulation, e.g. modulation of amplitude, width, frequency, phase or form
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • G11C27/02Sample-and-hold arrangements
    • G11C27/024Sample-and-hold arrangements using a capacitive memory element
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/12Analogue/digital converters
    • H03M1/14Conversion in steps with each step involving the same or a different conversion means and delivering more than one bit
    • H03M1/144Conversion in steps with each step involving the same or a different conversion means and delivering more than one bit the steps being performed sequentially in a single stage, i.e. recirculation type
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/12Analogue/digital converters
    • H03M1/34Analogue value compared with reference values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4814Non-logic devices, e.g. operational amplifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4828Negative resistance devices, e.g. tunnel diodes, gunn effect devices
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/12Analogue/digital converters
    • H03M1/1205Multiplexed conversion systems
    • H03M1/123Simultaneous, i.e. using one converter per channel but with common control or reference circuits for multiple converters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/12Analogue/digital converters
    • H03M1/50Analogue/digital converters with intermediate conversion to time interval
    • H03M1/56Input signal compared with linear ramp

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Power Engineering (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Amplifiers (AREA)
  • Analogue/Digital Conversion (AREA)

Abstract

Eine Schaltung, die konfiguriert ist, Matrix-Multiplikations- und Additionsrechnungen zu berechnen, die einen Digital/Zeit-Wandler aufweist, der konfiguriert ist, einen digitalen Eingang zu empfangen und ein Signal, das proportional zu dem digitalen Eingang und in Zeitdomäne verknüpft mit einer Referenzzeit moduliert ist, auszugeben, einen Speicher, der ein Crossbar-Netzwerk aufweist, wobei der Speicher konfiguriert ist, das zeitmodulierte Signal von dem Digital/Zeit-Wandler zu empfangen und ein gewichtetes Signal, das in Antwort auf Netzwerkgewichte des Crossbar-Netzwerks skaliert ist, und das zeitmodulierte Eingangssignal auszugeben, und eine Ausgangsschnittstelle in Kommunikation mit dem Crossbar-Netzwerk und konfiguriert, ihr gewichtetes Ausgangssignal zu empfangen und einen Digitalwert, der zu zumindest der Referenzzeit proportional ist, unter Verwendung eines Zeit/Digital-Wandlers auszugeben.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft Computersysteme, die Fähigkeit für künstliche Intelligenz aufweisen, beinhaltend neuronale Netzwerke.
  • ALLGEMEINER STAND DER TECHNIK
  • Tiefe neuronale Netzwerke werden in einem weiten Bereich von Anwendungen eingesetzt, zu welchen die leistungsarmen Sensoren zählen, wie IoT-Vorrichtungen. Manchmal als ‚Rand‘-Vorrichtungen bezeichnet, wird eine weitere Verringerung ihres Energieverbrauchs durch integrierte Klassifikatoren ermöglicht, die den konstanten Datenverkehr von dem Sensor zu dem Netzwerk (Cloud) zu Interferenzzwecken minimieren. Durch Training des integrierten Klassifikators, um eine begrenzte Anzahl von Klassen (Metadaten) zu identifizieren, kann der Sensor kontinuierlich bei einem niedrigen Energiepegel betrieben werden. Sobald der integrierte Klassifikator die gewünschten Signaturen in den erfassten Quantitäten detektiert, können Erfassung hoher Wiedergabetreue und Cloud-Verbindung hoher Datenrate für einen intelligenteren Betrieb möglich sein. Dies führt letztendlich zu einem Niederenergiebetrieb und längerer Batterielebensdauer solcher ‚Rand-‘ Vorrichtungen. In solchen ständig verfügbaren Schemata kann das trainierte neuronale Netzwerk, das dem Sensor folgt, manchmal eine beachtliche Menge des Gesamtenergieverbrauchs beitragen. Diese neuronalen Netzwerke funktionieren vorwiegend auf Basis von Multiplikations- und Additionsoperationen in großer Matrix und benötigen häufig den Transfer großer Datenmengen vom peripheren Speicher zur Verarbeitungseinheit. Der Energieverbrauch für Datentransfer kann aufgrund von Energie, die notwendig ist, um die parasitären Kapazitäten der Interconnects anzutreiben, um Größenordnungen größer sein als die mathematische Operation, die durch die Verarbeitungseinheit durchgeführt wird.
  • KURZDARSTELLUNG
  • Gemäß einer Ausführungsform, eine Schaltung, die konfiguriert ist, Matrix-Multiplikations- und Additionsrechnungen zu berechnen, die einen Digital/Zeit-Wandler aufweist, der konfiguriert ist, einen digitalen Eingang zu empfangen und ein Signal, das proportional zu dem digitalen Eingang ist und in Zeitdomäne verknüpft mit einer Referenzzeit moduliert ist, auszugeben, ein Speicher, der ein Crossbar-Netzwerk aufweist, wobei der Speicher konfiguriert ist, das zeitmodulierte Signal von dem Digital/Zeit-Wandler zu empfangen und ein gewichtetes Signal, das in Antwort auf Netzwerkgewichte des Crossbar-Netzwerks skaliert ist, und das zeitmodulierte Eingangssignal auszugeben, und eine Ausgangsschnittstelle in Kommunikation mit dem Crossbar-Netzwerk und konfiguriert, ihr gewichtetes Ausgangssignal zu empfangen und einen Digitalwert proportional zu zumindest der Referenzzeit unter Verwendung eines Zeit/Digital-Wandlers auszugeben.
  • Gemäß einer zweiten Ausführungsform enthält eine Schaltung, die konfiguriert ist, Matrix-Multiplikations- und Additionsrechnungen zu berechnen, einen Digital/Zeit-Wandler der konfiguriert ist, einen digitalen Eingang zu empfangen und ein Signal, das proportional zu dem digitalen Eingang und in Zeitdomäne verknüpft mit einer Referenzzeit moduliert ist, auszugeben, einen Speicher, der ein Crossbar-Netzwerk aufweist, wobei der Speicher konfiguriert ist, das zeitmodulierte Signal von dem Digital/Zeit-Wandler zu empfangen und ein gewichtetes Signal, das auf Netzwerkgewichte des Crossbar-Netzwerks skaliert ist, und das zeitmodulierte Eingangssignal auszugeben, wobei sich die Netzwerkgewichte auf einer oder mehreren Bitleitungen oder Wortleitungen des Crossbar-Netzwerks befinden, und eine Ausgangsschnittstelle in Kommunikation mit dem Crossbar-Netzwerk und konfiguriert, ihr gewichtetes Ausgangssignal zu empfangen und einen Digitalwert, der zu zumindest der Referenzzeit proportional ist, unter Verwendung eines Zeit/Digital-Wandlers auszugeben.
  • Gemäß einer dritten Ausführungsform, eine Schaltung, die konfiguriert ist, Matrix-Multiplikations- und Additionsrechnungen zu berechnen, die einen Digital/Zeit-Wandler aufweist, der konfiguriert ist, einen digitalen Eingang zu empfangen und ein Signal, das proportional zu dem digitalen Eingang und in Zeitdomäne verknüpft mit einer Referenzzeit moduliert ist, auszugeben, einen Speicher, der ein Crossbar-Netzwerk aufweist, wobei der Speicher konfiguriert ist, das zeitmodulierte Signal von dem Digital/Zeit-Wandler zu empfangen und ein gewichtetes Signal, das auf Netzwerkgewichte des Crossbar-Netzwerks skaliert ist, und das zeitmodulierte Eingangssignal auszugeben, wobei die Netzwerkgewichte in Antwort auf einen nicht flüchtigen Speicher eingestellt werden, die konfiguriert sind, programmierbare Gewichte zu sein. Und eine Ausgangsschnittstelle in Kommunikation mit dem Crossbar-Netzwerk und konfiguriert, ihr gewichtetes Ausgangssignal zu empfangen und einen Digitalwert, der zu zumindest der Referenzzeit proportional ist, unter Verwendung eines Zeit/Digital-Wandlers auszugeben.
  • Figurenliste
    • 1 veranschaulicht eine Darstellung eines DEQ-Netzwerks.
    • 2 veranschaulicht eine Ausführungsform eines Signalflussdiagramms für DEQ-Netzwerke.
    • 3 veranschaulicht eine Ausführungsform einer einfachen Invertierschaltung 300 mit nicht linearem Verstärker 309.
    • 4 veranschaulicht ein Beispiel eines Mehrfacheingang-Mehrfachzustand-DEQ-Modells basierend auf invertierenden Verstärkern.
    • 5 veranschaulicht ein DEQ-Netzwerk 500, das mit einem Rechen-Fabric 503 und einer Ausgangsschicht 504 implementiert ist.
    • 6 veranschaulicht ein Beispiel eines Rechen-Fabric 600.
    • 7 ist eine Veranschaulichung einer Ausführungsform eines allgemeinen Rechen-Fabric, das zum Implementieren eines DEQ-Netzwerks verwendet werden kann.
    • 8 veranschaulicht, wie das Bias unter Verwendung des Rechen-Fabric eingesetzt werden kann.
    • 9 veranschaulicht eine alternative Ausführungsform, die eine Ausführungsform der Ausgangsschichtberechnung zeigt, die in das Rechen-Fabric eingegliedert ist.
    • 10 ist ein Beispiel eines kontinuierlichen Zeit-DEQ-Netzwerk, dessen Ausgang eine kontinuierliche Zeitfunktion sowohl aktueller als auch vorheriger Eingänge und Ausgänge ist.
    • 11 ist ein Beispiel eines diskreten Zeit-DEQ-Netzwerks, dessen Ausgang eine diskrete Zeitfunktion aktueller und vorheriger Eingänge und Ausgänge ist.
    • 12 veranschaulicht ein Signalflussdiagramm für eine diskrete Zeitimplementierung eines DEQ-Netzwerks ohne Abhängigkeit von vorherigen Eingängen oder Ausgängen.
    • 13 veranschaulicht Wellenformen für DEQ-diskretes Zeitsystem einer Ausführungsform von 12.
    • 14 veranschaulicht ein Signalflussdiagramm für DEQ-diskrete Zeitimplementierung mit zusätzlichen verzögerten Eingängen und Feedback.
    • 15 veranschaulicht ein Blockdiagramm eines speicherinternen Rechen-MAC-Block.
    • 16 veranschaulicht einen 4x4 Teilsatz eines Arrays, wie einen vier mal vier Teilsatz eines N×M Arrays.
    • 17(a)-(g) veranschaulichen eine Reihe von Techniken, um die dargestellte Architektur zu erweitern, um auf höhere Auflösungsgewichte, höhere Auflösungseingangsaktivierungen und Differentialoperation zu skalieren.
    • 18(a)-(h) veranschaulicht beispielhafte Schnittstellenschaltungen, die dargestellt sind.
    • 19 veranschaulicht ein Beispiel eines CMOS-Halbleiterprozesses.
    • 20(a)-(e) veranschaulicht verschiedene Beispiele von Ausführungsformen zwischen Verbindungen einer Einheitszelle mit einer Wortleitung und einer Bitleitung und interne Verbindungen in der Einheitszelle.
    • 21 veranschaulicht ein Beispiel einer Einzel-Transistor- (1T), ROM-basierten Recheneinheit, die eine erste Implementierung benutzt.
    • 22 veranschaulicht eine andere Implementierung, die einen Einzel-Transistor als das Einheitselement verwendet.
    • 23 veranschaulicht eine alternative Ausführungsform, die einen Einzel-Transistor als das Einheitselement verwendet.
    • 24 veranschaulicht eine Implementierung eines ROM-basierten MAC-Array, das einen Einzel-Kondensator als ein Einheitselement benutzt.
    • 25 veranschaulicht eine andere Ausführungsform eines ROM-basierten MAC-Array, das einen Einzel-Kondensator als ein Einheitselement benutzt.
    • 26(a)-(b) veranschaulicht eine Implementierung eines ROM-basierten MAC-Arrays, das einen Einzel-Transistor und Einzel-Kondensator in dem Einheitselement benutzt.
    • 27(a)-(b) veranschaulicht eine andere Implementierung, die einen Einzel-Transistor und Kondensator als das Einheitselement benutzt.
    • 28 veranschaulicht eine Implementierung, die zwei Transistoren und einen Kondensator in dem Einheitselement verwendet.
    • 29 veranschaulicht eine Ausführungsform einer Einzel-Transistor- und Einzel-Kondensator-, ROM-basierten Recheneinheit.
    • 30 veranschaulicht eine Ausführungsform eines ROM-basierten MAC-Arrays, das einen Einzel-Widerstand als ein Einheitselement verwendet.
    • 31(a)-(d) veranschaulicht mehrere Ausführungsformen von Recheneinheiten innerhalb eines IMC-basierten Prozessors für einen beliebigen Maschinenlernalgorithmus.
    • 32(a-d) veranschaulicht eine Ausführungsform mit verschiedenen Arten von Einheitszellen, die 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 einer „Rand“-Erfassungsvorrichtung.
    • 36 veranschaulicht eine Ausführungsform einer analogen Multiplikations- und Additionsoperation, implementiert durch ein Crossbar-Netzwerk
    • 37(a)-(b) veranschaulicht ein Crossbar-Netzwerk mit pulsbreitenmodulierten Aktivierungssignalen und binären Gewichten, eingebettet in Speichern.
    • 38(a)-(c) ein Memristor-basiertes Crossbar-Netzwerk, aktiviert mit pulsbreitenmodulierten Aktivierungen und Auslesung in Amplitudendomänen mit Amplitudendomänen-Analog/Digital-Wandlern.
    • 39(a)-(c) veranschaulicht eine zeitbasierte Schnittstelle zu einem Punktprodukt berechnenden Crossbar-Netzwerk.
    • 40(a)-(c) veranschaulicht ein Funktionsblockdiagramm und Operation der vorgeschlagenen Zeitdomänenschnittstelle zu einer Mischsignal-Punktproduktberechnungshardware.
    • 41(a)-(c) veranschaulicht einen Zeitdomänen-Mehrfachpegel-Aktivierungseingang, Mehrfachpegel-Punktprodukt-Ausgang, SRAM-basiert in Speicherrechen-Crossbar-Netzwerk.
    • 42(a)-(b) veranschaulicht eine SRAM-basierte Mehrfachpegeleingang-, Mehrfachpegelausgang-Zeitdomänenschnittstelle zu einem Crossbar-Netzwerk zur Punktproduktberechnung.
    • 43(a)-(b) veranschaulicht eine Ladungsgliederungsarchitektur.
    • 44(a)-(b) veranschaulicht ein Nur-Lese-Speicher- (ROM) basiertes Beispiel für Zeitdomänenschnittstellenschemata, die bei Crossbar-Netzwerken für speicherinterne Punktproduktberechnungen angewendet werden.
    • 45(a)-(b) veranschaulicht eine ROM-basierte Ladungsumverteilungs-Zeitdomänenschnittstelle.
    • 46(a)-(d) veranschaulicht ein Beispiel eines Floating-Gate-Flash- oder FeFET basierten Crossbar-Netzwerks mit ratiometrischer Zeitdomänenschnittstelle.
    • 47 veranschaulicht den Bereich von Transistorschwellenspannungen zur Implementierung linear skalierter Gewichte eines Crossbar-Netzwerks unter Benutzung von Kanalleitwert oder Stromquellen in Sättigungs- oder Sub-Schwelle.
    • 48(a)-(b) veranschaulicht eine zweiphasige passive Entladung unter Benutzung von Bitleitungskapazität und Memristorleitwert.
    • 49(a)-(b) veranschaulicht ein Memristor-basiertes passives Entladungsverfahren mit ratiometrischer Zeitdomänen-Punktprodukt-Ausgangsauswertung unter Verwendung eines Komparators.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ausführungsformen der vorliegenden Offenbarung sind hier beschrieben. Es ist jedoch klar, dass die offenbarten Ausführungsformen nur Beispiele sind und andere Ausführungsformen verschiedene und alternative Formen annehmen können. Die Figuren sind nicht unbedingt maßstabgetreu; manche Elemente könnten vergrößert oder verkleinert sein, um Einzelheiten bestimmter Komponenten zu zeigen. Daher sollen bestimmte, hier offenbarte, strukturelle und funktionelle Einzelheiten nicht als Einschränkung, sondern nur als eine repräsentative Basis zur Anleitung eines Fachmanns ausgelegt werden, die Ausführungsformen unterschiedlich einzusetzen. Wie Durchschnittsfachleute verstehen werden, können verschiedene Elemente, die in Bezug auf eine der Figuren veranschaulicht und beschrieben sind, mit Elementen kombiniert werden, die in einer oder mehreren anderen Figuren veranschaulicht sind, um Ausführungsformen zu erzeugen, die nicht ausdrücklich veranschaulicht oder beschrieben sind. Die Kombinationen von veranschaulichten Elementen stellen repräsentative Ausführungsformen für typische Anwendungen bereit. Verschiedene Kombinationen und Modifikationen der Elemente in Übereinstimmung mit den Lehren dieser Offenbarung könnten jedoch für bestimmten Anwendungen oder Implementierungen erwünscht sein.
  • Große Datenmengen werden zum Trainieren tiefer neuronaler Netzwerke verwendet, um Klassen abzuleiten, die von Interesse sind. Die Architekturen für diese Netzwerke beruhen vorwiegend auf Multiplikations- und Additionsoperationen in einer großen Matrix. In digitalen Hardware-Implementierungen ist ein großer Energiemehrverbrauch mit dem Transfer von Gewichten und Aktivierungen vom peripheren Speicher zu der arithmetischen Berechnungseinheit und Transfer der Ergebnisse zurück zum Speicher verknüpft. Speicherinterne Rechenschemata gehen darauf ein, indem sie die Berechnungen dort durchführen, wo die Gewichte gespeichert sind, d.h. beim Speicher. Ein Verfahren zum Implementieren von speicherinterner Berechnung wird durch analoge Signalverarbeitung umgesetzt, beispielsweise durch Verwendung von Crossbar-Netzwerken. Hier können die Gewichte durch skalierte Impedanzen, wie Widerstände oder Kondensatoren, implementiert werden, deren Werte die Gewichte eines neuronalen Netzwerks bilden und in der Crossbar gespeichert sind. Die Aktivierungseingänge weisen die Form analoger Spannungen auf, die, wenn an die Impedanzen (Gewichte) angelegt, zu Strömen (oder Ladungspaketen) führen, deren Werte zu dem entsprechenden Aktivierungswert proportional sind, der durch das Gewichtelement skaliert wird (Transduktion seiner Impedanz). Dis bildet eine Multiplikationsoperation. Die Summierung dieser Multiplikationsergebnisse kann in passiven Schaltungsknoten durch die Stromnetzoperationen (Kirchhoff' sches Gesetz) durchgeführt werden, beispielsweise durch Stromsummierung in einem Schaltungsknoten oder Ladungsansammlung in einem Kondensator [2].
  • Solche Crossbar-Netzwerke ermöglichen umfangreiche Multiplikations- und Additionsberechnungen (MAC-Operation, auch bekannt als Matrix-Punktproduktberechnungen) bei geringen Energieverbrauchswerten. Zum Anwenden der analogen Aktivierungseingänge und zum Auslesen der resultierenden analogen MAC-Ausgänge werden häufig Amplitudendomänendaten-Umwandlungsschemata durch Digital/Analog- (DAC) und Analog/Digital- (ADC) Wandler angewendet. Ein solches Schema weist mehrere Nachteile auf. Die kontinuierlichen Stromflüsse in dem Netzwerk und den Schnittstellenschaltungen für die Dauer einer Datenumwandlung (analog zu digital und umgekehrt) sind nicht energieeffizient. Ferner sind Datenwandler komplexe Schaltungen und haben Ruhestromverbrauch und nehmen eine Chipfläche ein. Daher setzt ihre Anwendung in großformatigen tiefen neuronalen Netzwerken Grenzen hinsichtlich Skalierbarkeit und Energieeffizienz des Netzwerks. Anstatt eine Amplitudendomänenschnittstelle (zum Aktivieren und Auslesen) zu verwenden, könnte eine solches analoges Multiplikations- und Additionsnetzwerk in Zeitdomäne verschaltet sein. Die Architekturen der analog-digitalen Zeitdomänenschnittstellenschaltungen (Digital/Zeit- und Zeit/Digital-Wandler) sind digitalen Schaltungen ähnlicher und haben somit einen kleineren Fußabdruck und verbrauchen vorwiegend dynamische Leistung. Daher ist ihre Anwendung einem großen Skalieren zuträglicher und kann von tiefen integrierten Submikrometer-Schaltungstechnologien profitieren.
  • 1 veranschaulicht eine Darstellung eines DEQ-Netzwerks. Das DEQ-Netzwerk kann Funktionen, Netzwerke und Training implementieren, wie in Anmeldung Nr. 16/895,683 mit dem Titel „SYSTEM AND METHOD FOR MULTISCALE DEEP EQUILIBRIUM MODELS“, eingereicht am 8. Juni 2020, beschrieben, auf die hiermit in ihrer Gesamtheit Bezug genommen wird. Das DEQ kann eine einzige Schicht haben. Zwei wichtige Gleichungen werden in dem DEQ-Modell und Netzwerk von Fehler! Verweisquelle konnte nicht gefunden werden.Gleichung, Gleichung (z.B. Gl.) 1 (unten dargestellt), kann die Gleichung ein Einzelschicht-DEQ-Modell definieren. Es kann aus einer nicht linearen Funktion, σ(·) des Zustands des Modells/Netzwerks, z, bestehen. Der Eingang zu dem Netzwerk kann als x definiert sein und ein Eingangs-Bias kann als b definiert sein. Es ist zu beachten, dass während Gl. 1 eine allgemeine Darstellung ist, sie nicht alle möglichen Ausführungsformen eines DEQ-Netzwerks darstellen kann. Zum Beispiel kann sich der lineare Operator Wz nicht nur auf eine Matrixmultiplikation, sondern auch auf eine Konvolution oder anderen strukturierten linearen Operator beziehen, wie in tiefen Netzwerken üblich. Und die verborgene Einheit oder der verborgene Zustand z können mehr als nur eine typische „einzelne“ verborgene Einheit darstellen und könnten z.B. eine Verkettung mehrerer verborgener Einheiten über mehrere verschiedene zeitliche oder räumliche Skalen darstellen. Gleichung 2 beschreibt die implizite nicht lineare Differentialgleichung, deren Wurzeln z* unbekannt sind und gelöst werden müssen, um das DEQ-Netzwerk auszuwerten. Zur Lösung der Wurzeln kann eine Kostenfunktion, Gl. 3, wiederholt für z* gelöst werden. Wenn Gl. 3 wiederholt gelöst wird, wird das Netzwerk in einen Anfangszustand, zn=0, versetzt. Die Wiederholung fährt dann mit Berechnen des nächsten Werts der Kostenfunktion, Cn=1(zn=1, x, b), fort, die als Gleichung 3, unten, bekannt ist. Wurzelberechnung kann als beendet angesehen werden (Wurzeln sind gelöst), wenn die Kostenfunktion kleiner als eine vordefinierte Toleranz, ε, ist, wie in Gleichung 4 gezeigt. Wenn diese Bedingung nach k Wiederholungen erfüllt ist, wird zk ≈ z*, Gleichung 4, angenommen. Es ist zu beachten, dass die Eingänge, x und b, während der Wurzellösung als kontant angesehen werden und dass sowohl Training als auch Ableitung für DEQ-Netzwerke unter Verwendung dieses Wiederholungsprozesses implementiert werden. Tabelle 1: Gleichungen eines DEQModells
    Gleichung #
    z = f(z, x, b) = σ(Wz + Ux + b) 1
    z*-f(z*, x, b) = 0 2
    C n (z n , x, b) = z n - f(z n , x, b) 3
    |C k (z k , x, b))| ≤ ε → z k z* 4
  • Aus obenstehender Gleichung 1 und Gleichung 2 kann ein Signalflussgraph entwickelt werden, der die Berechnung von Gleichung 2 beschreibt, wie in 2 gezeigt. Der Signalflussgraph kann als Matrix-basierte Operationen mit einer nicht linearen Funktion, σ, dargestellt werden. Diese kann durch ein elektronisches Rechen-Fabric implementiert werden, das näher besprochen werden wird.
  • Definitionen für die Variables in Fehler! Verweisquelle konnte nicht gefunden werden, sind unten bereitgestellt: Tabelle 2: Variable Definitionen
    Variable Beschreibung
    x Modelleingang. Kann ein Skalar, Vektor oder ein Volltensor sein
    z Aktueller Zustand des DEQ-Modells. Kann ein Skalar, Vektor oder ein Volltensor sein
    z* Gleichgewichtszustand des DEQ-Modells. Kann ein Skalar, Vektor oder ein Volltensor sein
    W, U Gewichte des DEQ-Modells. Können ein Skalar, Vektor oder ein Volltensor sein
    The Operator „·“ U · x, und W · z: „·“ können eine lineare Operation zwischen den Variablen U, x und W, z sein, z.B. eine skalare Operation, einfache Matrixmultiplikationen oder Konvolution.
    b DEQ-Eingangs-Bias. Kann ein Skalar, Vektor oder ein Volltensor sein.
    Σ Summierung
    σ(·) Eine nicht lineare Funktion, die einen Skalar-, Vektor- oder Tensor-Eingang bearbeitet. Ihr Ausgang kann ein Skalar, Vektor oder Tensor sein
    y Ausgang des DEQ-Modells. Kann ein Skalar, Vektor oder ein Volltensor sein. Es ist eine beliebige Funktion der DEQ-Netzwerkzustände.
    h(·) Jede Funktion der DEQ-Zustände. Ihr Eingang kann ein Skalar, Vektor oder Tensor sein. Ihr Ausgang kann ein Skalar, Vektor oder Tensor sein
  • Wie in 2 dargestellt, kann ein DEQ-Netzwerk durch mehrere Multiplikationen und Summierungen dargestellt werden, wie eine Konvolution des Eingangs-, Bias- und Ausgangszustands. Dies kann häufig als eine Punktprodukt- oder Multiplikations- und Akkumulations- (MAC) Operation bezeichnet werden. Infolgedessen können Schaltungen, die zum Implementieren von neuronalen Standardkonvolutionsnetzwerken verwendet werden, modifiziert werden, um ein DEQ-Netzwerk zu implementieren. Die Hauptmodifikation ist, wie die Rechnung erfolgt. In neuronalen Standardnetzwerken erhält die Berechnung kein kontinuierliches Zeitfeedback der aktuellen Ausgangszustände an den Eingang des Netzwerks. Typischerweise, wenn Feedback erfolgt, erfolgt es mit einer Verzögerung, d.h., ist ein Ergebnis der vorherigen Berechnung.
  • Analoge Berechnung von Wurzeln: Einschwingen auf eine Gleichgewichtsbedingung anstelle einer Wiederholung:
    • 3 veranschaulicht eine Ausführungsform einer einfachen Invertierschaltung 300 mit nicht linearem Verstärker 309. Der nicht lineare Verstärker 309 kann eine Verzögerung, wie einen Einzelpolverstärker aufweisen. Die Schaltung kann einen ersten Widerstand 305 und zweiten Widerstand 307 aufweisen. Der erste Widerstand 305 kann im Laufe der Zeit einen Eingang 301 empfangen. Ein Aspekt des DEQ-Verfahrens ist, dass Wurzelermittlung, die für Ableitung und Training in DEQ verwendet wird einem physikalischen System (elektrisch, mechanisch, strömungstechnisch usw.) analog sein kann, das auf ein Gleichgewicht einschwingt. Effektives Ableiten und Training in einem DEQ-Modell kann unter Verwendung eines physischen Systems implementiert werden, das auf einen Gleichgewichtspunkt 311 (Ermitteln von Wurzel-A) einschwingt. Als ein Beispiel betrachten wir einen einfachen invertierenden Verstärker, wie jenen, der als Verstärker 309 in Schaltung 300 gezeigt ist. Diese analoge Schaltung kann eine nicht lineare Verstärkung 301, σ, mit einer kleinen Signalverstärkung von Av und einem einzelnen Pol (eine einfache Verzögerung von τa), 3a, aufweisen. In diesem Fall können wir zeigen, dass diese Schaltung eine Funktion, Gleichung 5 (in der folgenden Tabelle gezeigt), ähnlich Gleichung 1 implementiert. Für dieses Beispiel können die Wurzeln von Gleichung 5 als eine Funktion von Zeit, z.B. wie in Gleichungen 6, 7 und 8, gelöst werden. In Gleichungen. 6, 7 und 8 kann gezeigt werden, dass sich die analoge Berechnung asymptotisch (exponentiell) einem Gleichgewichtszustand, z t = * .
      Figure DE102021207661A1_0001
      nähert oder auf diesen einschwingt. Die Zeitkonstante für die exponentielle Ausrichtung dieser Schaltung ist durch Gleichung 8 definiert. Es ist zu beachten, dass der ideale Gleichgewichtszustand, z * = z t = * ,
      Figure DE102021207661A1_0002
      aufgrund der finiten Verstärkung des Verstärkers und dem exponentiellen Einschwingen niemals erreicht wird.
  • Die folgenden Gleichungen können die Invertierschaltung 300 von 3 darstellen: v + v = ( R 2 R 1 + R 2 x ( t ) + R 1 R 1 + R 2 z ( t ) + b ( t ) , t ) ;
    Figure DE102021207661A1_0003
    σ ( v + v , t ) ~ t a n h [ A v ( v + v ) ( 1 e t τ a ) ]
    Figure DE102021207661A1_0004
  • Die annähernde Lösung (Wurzeln) für Ausgang für ein Beispiel einer einfachen Invertierschaltung: 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 ) τ p τ a R 1 + R 2 ( 1 + A v ) R 1
    Figure DE102021207661A1_0005
    und
  • Die einfache Invertierschaltung 300 mit nicht linearem Verstärker 309 kann eine Verzögerung 310 (z.B. Einzelpolverstärker) haben. Eine solche analoge Feedbackschaltung 300 kann eine beispielhafte Implementierung eines Grundbausteins für das analoge DEQ-Netzwerk sein. Die Gleichungen, die einfache Invertierschaltung und annähernde Lösung (Wurzeln) des Ausgangs für eine einfache Invertierschaltung darstellen, sind in der folgenden Tabelle in Tabelle 3 gezeigt: Tabelle 3: Gleichungen für eine einfache Invertierschaltung
    GLEICHUNG #
    z ( t ) σ ( R 2 R 1 + R 2 x ( t ) + R 1 R 1 + R 2 Z * ( t ) + b ( t ) , t ) = 0
    Figure DE102021207661A1_0006
    5
    z t = * σ [ R 1 + R 2 R 1 b ( t ) R 2 R 1 x ( t ) ]
    Figure DE102021207661A1_0007
    6
    z * z t = * A v A v + 1 ( 1 + e t τ p )
    Figure DE102021207661A1_0008
    7
    τ p τ a R 1 + R 2 ( 1 + A v ) R 1
    Figure DE102021207661A1_0009
    8
  • Das obenstehende Beispiel veranschaulicht, dass ein DEQ-Netzwerk unter Verwendung einer analogen Schaltung kontinuierlicher Zeit implementiert sein kann, um die Wurzeln des DEQ-Netzwerks zu berechnen. Es ist zu beachten, dass Wurzeln des DEQ-Netzwerks der finale Zustand z(t) des Netzwerks sind. Es ist auch veranschaulicht, wie ein finiter Verstärkungsfaktor, Av, und eine finite Bandbreite, BW ∝ 1/τa, Fehler im finalen Gleichgewichtszustand oder in Wurzeln, z*, verursachen können. Für DEQ-Netzwerke, die analoge Berechnung verwenden, hängen deren Genauigkeit und oder Fehler in z* davon ab, wie lange die Schaltung einschwingen kann und wie viele Zeitkonstante, τp, verstreichen dürfen, bevor ihr Ausgang ausgelesen wird, wie in Gleichung 9 gezeigt. Dies kann zu der iterativen Wurzellösungsstrategie in digitaler Berechnung analog sein, wo die Anzahl von Wiederholungen oder Zeit, die zum Berechnen der Lösung erforderlich ist, von der erforderlichen Genauigkeit oder finalen Fehlertoleranz, ε, abhängen. Für einen analogen Schaltkreis jedoch hängt das Fehlerausmaß im finalen Zustand auch von dem finiten Verstärkungsfehler ab, der durch den Verstärkungsfaktor, Av, Gleichung 9, eingestellt ist. Aus Gleichungen. 9,10 können Anforderungen an Verstärkungsfaktor und Bandbreite berechnet werden, um eine gewünschte Genauigkeit zu erlangen. Beispielsweise erfordern 99,9% oder ein Fehler von 0,1% ~9,9 Bits an Genauigkeit. Dies kann eine Latenz von mehr als sieben Zeitkonstanten, 7 · τp, und einen Verstärkungsfaktor größer als 1000 erfordern. Somit müssen die gewünschte Genauigkeit und Latenz eines analogen oder Mischsignal-DEQ-Netzwerks in dem Design des Verstärkers und des Netzwerks berücksichtigt werden, die zum Implementieren des DEQ-Netzwerks verwendet werden. Tabelle 4: Gleichungen für Verstärkungsfaktor und Bandbreite
    Gleichung #
    F e h l e r = Δ z * ( t ) z t = * = z t = * Z * ( t ) z t = * 1 A v A v + 1 ( 1 + e t τ p )
    Figure DE102021207661A1_0010
    9
    % B i t s G e n a u i g k e i t = l o g 2 ( 1 1 Δ z * ( t ) z t = * )
    Figure DE102021207661A1_0011
    10
  • Im Allgemeinen können analoge Verfahren keine Rechnungsgenauigkeit entsprechend digitalen Implementierungen liefern. Es kann jedoch einen Vorteil im Sinne der Gesamtsystemleistung, wenn analog verarbeitet wird, für Anwendungen geben, die unter Verwendung von Anwendungen geringerer Genauigkeit oder geringerem SNR implementiert werden können. Als solches könnte Berechnung unter Verwendung von DEQ-Netzwerken sehr energiearmes Maschinenlernen für eingebettete Anwendungen ermöglichen, für die die Energie dieser DEQ-Netzwerke auf die gewünschte Latenz/Geschwindigkeit der Anwendung abgestimmt werden kann.
  • In dem vorangehenden Abschnitt haben wir beschrieben, wie DEQ-Modelle mit analoger Berechnung kontinuierlicher Zeit implementiert werden können. Dies beruht auf der Kenntnis, dass ein DEQ-Netzwerk mit Gl. 1 dargestellt werden kann und dass es mit einem Signalflussgraph, dargestellt in 2 200, dargestellt werden kann. Dieser Graph und seine weiteren Erweiterungen bilden die Grundlage für alle folgenden Erfindungen.
  • Viele Ausführungsformen von Mischsignal-Schaltungsarchitekturen können zum Implementieren von DEQ-Modellen/Netzwerken basierend auf dem Signalflussgraph in 2 verwendet werden.
  • 4 veranschaulicht ein Beispiel eines Mehrfacheingang-Mehrfachzustand-DEQ-Modells 400 basierend auf invertierenden Verstärkern 409a, 409b, 409c. Somit kann das DEQ-Modell sowohl auf invertierenden Verstärkern als auch resistiven Netzwerken basieren. In einem solchen Beispiel kann es drei Eingänge 401a, 401b, 401c, (x1 to x3), drei Zustände 403a, 403b, 403c (z1 bis z3), und einen Ausgang 450, y, geben. Die Ausgangsschicht 420b kann die Widerstände 1/O1, 1/O2, und 1/O3 benutzen, um die Gewichte der Eingänge anzuwenden und durch eine Aktivierungsfunktion als einen Ausgang 450 zu lenken. Der verborgene Zustand (z) kann aus den Ausgängen der Verstärker 409a, b, c bestehen. Der erste von diesen kann eine Erweiterung des invertierenden Verstärkers, zum Beispiel von 3, zu einem Mehrfacheingang- und Mehrfachausgang-DEQ-Netzwerk, 4, sein. Dieses Beispiel kann ein vollständig verbundenes Netzwerk im Sinne von DEQ-Netzwerkzuständen, zi, z.B. alle Zustände, die zu jedem Eingang rückgekoppelt sind, implementieren. Zur Vollständigkeit der Gleichungen für die DEQ-Modelle sind Gleichgewichtszustand, Gleichungen 11, 12, und der Ausgang, Gleichung 13, bereitgestellt. In einem solchen Beispiel kann die Verstärkung 420a, 420b des Verstärkers der Einfachheit wegen als unendlich angenommen werden. Die Gleichungen sind in der folgenden Tabelle bereitgestellt: Tabelle 5:
    Gleichungen #
    [ 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 2 b 3 ] ]
    Figure DE102021207661A1_0012
    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 DE102021207661A1_0013
    12
    y σ [ [ O 1 O 2 O 3 ] [ z 1 * z 2 * z 3 * ] ]
    Figure DE102021207661A1_0014
    13
  • Es ist zu beachten, dass in dem allgemeinen Fall andere Arten von Verbindungen über eine vollständig verbundene Architektur hinaus verwendet werden könnten. Zusätzlich können die Widerstände des Netzwerks 400 durch andere elektrische Komponenten, wie Memristoren oder Kondensatoren oder durch Kombinationen von Komponenten ersetzt werden. Schließlich können auch andere Verstärkerkonfigurationen, wie nicht invertierende Verstärker oder geschaltete Kondensatorverstärker verwendet werden, um DEQ-Netzwerke ähnlich diesem zu implementieren.
  • 5 veranschaulicht ein DEQ-Netzwerk 500, das mit einem Rechen-Fabric 503 implementiert ist. Die Ausgangsschicht 511 kann Teil des Rechen-Fabric 503 sein oder nicht. In diesem Beispiel können die impliziten Matrixmultiplikationen (Punktprodukte, Konvolutionen) aus Gleichung 1 in dem Fabric 503 implementiert sein. Die nicht lineare Funktion σ(·) kann innerhalb oder außerhalb des Rechen-Fabric implementiert sein. Das Rechen-Fabric 503 führt die kontinuierliche Zeitberechnung der DEQ Gleichgewichtszustände in der analogen Domäne in Antwort auf Empfangen des Eingangs 501 und des Bias 502 durch, die entweder digital oder analog sein können. Rechen-Fabric- 503 Arrays sind im Allgemeinen Arrays von Impedanzen, die mit Komponenten wie Widerständen, Kondensatoren, Transistoren oder Kombinationen dieser Vorrichtungen implementiert sind. Manche Rechen-Fabrics 503 können auch unter Verwendung flüchtiger Speichertechnologien, wie SRAM oder DRAM, oder nicht flüchtiger Speicher-, NVM, Technologien wie Flash, RRAM, MRAM, PCM usw. implementiert sein. Wenn eine dieser Speichertechnologien verwendet werden, können Rechen-Fabrics als speicherinterne Rechen-Fabrics oder IMC-Fabrics bezeichnet werden. Die Ausgangsschicht 511 des DEQ-Netzwerks, 5, kann mit digitaler, analoger Berechnung oder einer Kombination davon (Mischsignal) implementiert sein. In manchen Fällen kann es optimal sein, die Ausgangsschicht 511 in demselben Rechen-Fabric zu implementieren, das zur Berechnung der Gleichgewichtszustände, z*, verwendet wurde. Es ist zu beachten, dass die Gleichgewichtszustände die Wurzeln des DEQ-Netzwerks sind und im Allgemeinen der finale Zustand, z=z*, des Netzwerks sind. Die Eingänge, x und b können digitale Signale sein, die innerhalb des Rechen-Fabric in analoge umgewandelt werden. Oder sie können analog sein. Im Allgemeinen wird die Wurzel 509, z, des DEQ-Netzwerks in das Rechen-Fabric 503 als ein analoges Signal rückgekoppelt. Es könnte jedoch alternative Ausführungsformen geben, wo die Zustände 509 als digitale Signale oder zeitbasierte Signale rückgekoppelt werden. Die Eingänge zu der Ausgangsschicht wie auch die Ausgänge, y und die Funktion h(·) können mit digitalem, analogem oder Mischsignalschaltkreis implementiert werden.
  • 6 veranschaulicht ein Beispiel eines Rechen-Fabric 600. Das Rechen-Fabric 600 ist nur ein beispielhaftes, das in den verschiedenen Ausführungsformen verwendet werden kann. Die Gleichungen können Berechnung darstellen, die durch das Fabric 600 durchgeführt wird. 6 ist ein Beispiel eines Rechen-Fabric. Die Elemente 611, URC, können mit verschiedenen Komponenten wie Widerständen (RRAM, PCM), Kondensatoren, Transistoren oder Kombinationen dieser implementiert werden. Diese Elemente können verwendet werden, um Punktprodukte oder Konvolutionen der Eingangssignale auf den Reihen 603 mit Gewichten durchzuführen, die durch Werte der Elemente 611, URC bestimmt werden. Diese analoge Summierung basiert auf fundamentalen elektrischen Phänomen, wie Stromsummierung (Kirchhoff'sches Stromgesetz), Ladungserhaltung (Ladungssummierung, Umverteilung), Ohm'schen Gesetz usw. Diese grundlegenden Phänomene können an sich analoge Berechnung oder Summierung und Multiplikation in den Bereichen Ladung, Strom und Spannung ermöglichen. Die Reihentreiber 612 können verschiedene Funktionen durchführen, abhängig von den Arten von Vorrichtungen, die in dem Rechen-Fabric 600 verwendet werden. In manchen Fällen können sie vollständig digital oder analog sein. In anderen können sie eine Digital/Analog-Umwandlung durchführen. Eingänge 601 können bei den Reihentreibern 612 empfangen werden. Im Allgemeinen erfolgt Summierung, in Ladung, Strom, Spannung typischerweise an den Spalten 607. Die Erfassungsverstärker (oder „Amps“) 609 können als die erste Verstärkungsstufe für die Summierung verwendet werden und können verschiedene Funktionen abhängig von der Art von Netzwerk haben. Beispielsweise können die Erfassungsverstärker oder Erfassungsverstärker für ein DEQ-Netzwerk eine nicht lineare Funktion, σ(·) implementieren, die die Form einer hyperbolischen Tangente oder anderer allgemein bekannter, nicht linearer Aktivierungsfunktionen, wie eine gleichgerichtete lineare Einheit (reLU), annehmen kann.
  • 7 ist eine Veranschaulichung einer Ausführungsform einer Ausführungsform eines Rechen-Fabric, das zum Implementieren eines DEQ-Netzwerks verwendet werden kann. In diesem Beispiel wird die Eingangs-Bias, b = [ b 1 b 2 ] ,
    Figure DE102021207661A1_0015
    unter Verwendung des Erfassungsverstärkers addiert. Es können mehrere Variationen in Verknüpfung mit 7 zum Implementieren von DEQ mit einem analogen Rechen-Fabric vorliegen. Zum Beispiel kann es nur einen Erfassungsverstärker 709 oder einen Erfassungsverstärker für mehrere Spalten oder alle der Spalten geben. Es kann einen Reihentreiber 702 pro Reihe 703 oder einen Reihentreiber 702 für mehrere oder alle Reihen 703 geben. In einer anderen Ausführungsform kann der Erfassungsverstärker 709 jede nicht lineare Funktion implementieren. Zusätzlich können die Erfassungsverstärker 709 verwendet werden, um das Bias, b, hinzuzufügen. Im Allgemeinen könnten die Erfassungsverstärker 709 auch durch einen Analog/Digital-Wandler, wenn Digitalisierung des Fabric-Ausgangs erforderlich ist, oder die Ausgangsschicht 711 ersetzt werden oder Teil davon sein. Der Erfassungsverstärker 709 kann verwendet werden, um eine exaktere Summierung zu ermöglichen - die Ladungs- oder Stromsummierung enthalten kann. In einer weiteren Variation einer Ausführungsform können die Reihentreiber 702 analoge, digitale Signale auf die Reihen 703 treiben. Die Reihentreiber 702 können auch zeitbasierte Signale (Pulse, Pulsbreitenmodulations- (PWM) Signale usw.) treiben. Die Fabric-Elemente 713, URC, können jedes Element sein, das Berechnung (Multiplikation, Summierung) ermöglicht. Als solches können die Fabric Elemente ein Widerstand, Kondensator, Transistoren usw. sein. Es kann jede Kombination benutzt werden, um die Gleichungen zu lösen, die in dem Computer-Fabric benutzt werden.
  • 8 zeigt, wie das Bias 820, b, unter Verwendung des Rechen-Fabrics 800 benutzt werden kann, anstatt durch die Erfassungsverstärker 809 hinzugefügt zu werden, im Gegensatz zu der in 7 gezeigten Ausführungsform. In diesem Beispiel von 8 wird das Eingangs-Bias, b = [ b 1 b 2 ] ,
    Figure DE102021207661A1_0016
    unter Verwendung des Computer-Fabric hinzugefügt. Das Bias 820 könnte auch durch andere Mittel hinzugefügt werden. Der Erfassungsverstärker 809 könnte auch durch einen Analog/Digital-Wandler, falls Digitalisierung des Fabric-Ausgangs erforderlich ist, oder die Ausgangsschicht 811 ersetzt werden oder Teil davon sein. Der Erfassungsverstärker 809 kann eine nicht lineare Funktion sein, die einen Skalar-, Vektor- oder Tensoreingang bearbeitet. Der Ausgang kann auch Skalar, Vektor oder Tensor sein.
  • 9 veranschaulicht eine alternative Ausführungsform, die eine Möglichkeit zeigt, wie die Ausgangsschicht- 911 Berechnung in das Rechen-Fabric eingegliedert werden könnte. Die Ausgangsschicht 911 kann auch aus einem Erfassungsverstärker 910 bestehen, der sich von dem Erfassungsverstärker 909 unterscheidet. Der Eingang 901 kann in die Reihentreiber 902 geleitet werden. Die Ausgangsschicht 911 kann den Erfassungsverstärker 910 aufweisen. Ein anderer Erfassungsverstärker 909 kann benutzt werden, um die verschiedenen Zustände zurück an die Reihentreiber 902 auszugeben, bis Konvergenz erreicht ist. Der finale Ausgang des DEQ-Modells kann durch den Erfassungsverstärker 910 ausgegeben werden.
  • Die Offenbarung kann auch DEQ-Netzwerke mit Abhängigkeiten von aktuellen und vorherigen Netzwerkwurzeln und Eingängen berücksichtigen. Frühere Beispiele für DEQ-Modelle/Netzwerke wurden gezeigt, wo die Ausgangszustände, z, eine Funktion der Eingänge, x, und Feedback der Zustände in kontinuierlicher Zeit ohne Verzögerung sind. Es gibt jedoch Fälle, wo ein DEQ-Netzwerkszustand eine Funktion vorheriger (verzögerter) Eingänge und Wurzeln sein kann. Ein DEQ-Netzwerk kontinuierlicher Zeit mit Abhängigkeiten von vorherigen Zuständen und Eingängen kann im Allgemeinen durch Gl. 14 und 15 beschrieben werden. Tabelle 6 - DEQ-Netzwerk kontinuierlicher Zeit:
    Gleichung #
    z(t) = f(z(t), z(t - τ z1), ..., z(t - τ zm ), x(t), x(t - τ x1 ), ..., x(t - τ xk )) 14
    z(t) = σ(W 0 · z(t) + ... + W m · z(t - τ zm ) + U 0 · x(t) + ··· + U k · x(t - τ xk ) + b(t)) 15
  • In den obenstehenden Gleichungen sind sowohl Eingänge als auch Zustände durch kontinuierliche Zeitverzögerungen, τx1 ··· τxk τz1 ··· τzm, verzögert. Eine mögliche Funktion zur Implementierung eines DEQ-Netzwerks ist in Gl. 15 gezeigt.
  • 10 ist ein Beispiel eines Netzwerks, das Gleichungen 14 und 15 implementiert. 2 veranschaulicht eine Ausführungsform eines DEQ-Netzwerks 1000 mit Abhängigkeiten von vorherigen Zuständen und Eingängen. Ein diskretes Zeit-DEQ-Modell kann mit Gleichungen 16 und 17 beschrieben werden. In diesem Fall ist das DEQ-Netzwerk 1000 eine Funktion vorheriger Zustände und Eingänge, die zu früheren Zeitpunkten, t(n), eingetreten sind. Typischerweise wird in diesen Systemen z(n) 1109 als äquivalent zu z(t(n)) angesehen. Die Zeit zwischen aufeinanderfolgenden Berechnungen des DEQ Ausgangszustands ist Tcalc = t(n) - t(n - 1). Tcalc kann durch einen Systemtakt eingestellt werden, d.h. T c a l c = 1 f c l k .
    Figure DE102021207661A1_0017
    Tcalc Oder das System kann selbst getaktet 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. Der Eingang 1001 im Laufe der Zeit kann mit einer Verzögerung bezüglich Zeit 1005 zugeleitet werden. Das Bias 1002 kann auch in das Computer-Fabric 1003 eingegeben werden. Das Rechen-Fabric 1003 kann die Zustände 1009 mit einer anderen Zeitverzögerung 1007 erneut zuleiten. Das Computer-Fabric 1003 kann einen finalen Zustand 1009 an eine Ausgangsschicht 1011 ausgeben. Der Eingang 1001, das Bias 1002 und Ausgang 1003 können ein Skalar, Vektor oder ein Volltensor sein. Sie können auch eine beliebige Funktion der DEQ-Netzwerkzustände sein. Tabelle 7 - Diskretes Zeit-DEQ-Netzwerk:
    Gleichungen #
    z(n) = f(z(t), z(n - 1), ..., z(n - m), x(n), x(n - 1), ..., x(n - k)) 16
    z(n) = σ(W 0 · z(t) + ··· + W m · z(n - m) + U 0 · x(n) + ··· + U k · x(n - k) + b(n)) 17

    11 veranschaulicht ein Diagramm eines diskreten Zeit-DEQ-Netzwerks 1100. In diesem Beispiel benutzt das Netzwerk 1100 das Rechen-Fabric 1103.
  • 11 veranschaulicht ein allgemeines Beispiel eines DEQ-Netzwerks, das durch oben gezeigte Gleichungen 16 und 17 beschrieben ist. Das Netzwerk 1100 kann einen Eingang 1101 mit einer Anzahl vorheriger Eingänge, die durch Verzögerungen 1105 bereitgestellt sind, an dem Eingang empfangen, um an das Computer-Fabric 1103 gesendet zu werden. Die abgetasteten Zustände 1109 können an die Ausgangsschicht 1111 gesendet werden. Die aktuellen Zustände 1109 können auch an das Rechen-Fabric 1103 mit vorherigem Zustand, der durch Verzögerungen 1107 bereitgestellt ist, rückgekoppelt werden. Die Ausgangsschicht 1111 kann finalen Ausgang y(n) 1113, eine Funktion des DEQ-Modells, enthaltend das DEQ-Modell im Laufe der Zeit, ausgeben. Der Ausgang 1113 kann ein Skalar, Vektor oder ein Volltensor sein. Er kann auch eine beliebige Funktion der DEQ-Netzwerkzustände sein.
  • 12 ist ein Signalflussdiagramm für DEQ. Es kann eine diskrete Zeitimplementierung sein. Die Wellenformen für das DEQ-diskrete Zeitsystem sind in 13 gezeigt. In einem Beispiel ist ein DEQ-Netzwerk basierend auf diskreter Zeit in 12 gezeigt. In diesem Fall werden die Eingänge und Zustände des DEQ-Netzwerks zu Zeitpunkten, nTclk, abgetastet. Der Ausgang von Abtasten und Halten 1203, 1207 kann eine Verzögerung haben. Das zweite Abtasten und Halten 1207 gibt eine Funktion der DEQ-Zustände aus. Der Eingang kann ein Skalar, Vektor oder Tensor sein, wie auch der Ausgang dasselbe sein kann. Der Ausgang 1211 kann ein DEQ-Modell, oder ein Skalar, Vektor oder Tensor sein.
  • 3 veranschaulicht ein Beispiel von Wellenformen für DEQ-diskrete Zeitsysteme. Für dieses Beispiel kann das Abtasten und Halten ideal sein und hat null Verzögerung. 13 veranschaulicht auch Wellenformen, die die Zeitabfolge für die Eingänge und Ausgänge des DEQ-Netzwerks beschreiben. Dies ist ein interessantes Beispiel, da das Rechen-Fabric in kontinuierlicher Zeit die diskreten Zeiteingänge, x(n), z(n) und b(n), bearbeitet, die während der Berechnung konstant bleiben, 13. Der Ausgangszustand, z(t), schwingt sich in kontinuierlicher Zeit auf den Gleichgewichtszustand, z*(t) = z(n), ein. Es ist zu beachten, dass der Gleichgewichtszustand, z*(t), abgetastet und dann zur Berechnung in der Ausgangsschicht verwendet werden kann.
  • 14 veranschaulicht ein Signalflussdiagramm für DEQ-diskrete Zeitimplementierung mit zusätzlichen verzögerten Eingängen und Feedback. Eine Abtast- und Halteschaltung 1403 kann den Eingang 1401 im Laufe der Zeit abrufen. Der zeitverzögerte Eingang 1404 (z.B. gezeigt als eine Taktperiode als ein Beispiel, die aber jede Art von Verzögerungsperiode sein kann) kann in den Summierungsblock 1405 geleitet werden, der ein Rechen-Fabric sein kann. Der Summierungsblock 1405 kann eine nicht lineare Funktion basierend auf den verschiedenen Eingängen und Zuständen implementieren. Der Summierungsblock 1405 kann die Verzögerung der Wurzel einer oder mehrerer Taktperioden berücksichtigen, wie in 14 gezeigt. 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 ein Ausgang 1411 des DEQ-Modells als eine beliebige Funktion der DEQ-Netzwerkzustände ausgegeben werden.
  • 15 veranschaulicht ein Blockdiagramm eines speicherinternen Rechen-MAC-Blocks. In einer einfachen Implementierung können N Eingangsaktivierungen entlang der horizontalen Dimension (eine pro Reihe von Einheitselementen) bereitgestellt sein und M MAC-Ausgänge können entlang der vertikalen Dimension (einer pro Spalte von Einheitselementen) erzeugt werden. Daher kann der Reihentreiber 1503 die N Aktivierungen an das Array 1501 ausgeben. Das Array kann die M Spalten an die Spaltenauslesung 1505 ausgeben. Die Eingangsaktivierungen und Ausgänge sind durch physikalische Parameter, wie Spannung, dargestellt. Ein „Neuron“ kann sich auf eine einzelne Spalte beziehen, die alle Einheitselemente aufweist, die mit dieser Spalte verbunden sind. Mehrere Neuronen (Spalten) sind angrenzend verbunden und jede gibt das Ergebnis einer einzigen MAC-Operation aus. Ein Rücksetzblock 1507 kann optional enthalten sein, um das Array auf einen bestimmten Anfangszustand zurückzusetzen.
  • 16 veranschaulicht einen 4x4 Teilsatz eines Arrays, wie einen vier mal vier Teilsatz eines NxM Arrays 1501. Somit kann die Figur das Innere eines MAC-Arrays im Detail darstellen, die ein einziges Element zeigt, das mit einer Wortleitung 1609 und einer Bitleitung 1611 verbunden ist. Eingänge (Xi) können als Einzelbitauflösungs- (binärer) Werte oder mit einer Auflösung höherer (Mehrfachbit) Auflösung bereitgestellt sein, aber die Summierung wird immer in jeder Spalte analog durchgeführt. Jedes Einheitselement speichert einen Gewichtswert (Wij), der eine Einzelbitauflösung (binär) oder mit höherer (Mehrfachbit) Auflösung sein kann. Das Gewicht wird unter Verwendung eines physikalischen Parameters (zum Beispiel Leitwert) der Schaltungselemente in der Einheitszelle gespeichert. Der Ausgang jeder Spalte des Arrays (Yj) ist ein analoger Wert, der in der analogen Domäne gehalten werden kann, zur weiteren Verwendung im Prozessor digitalisiert werden kann, wie für den Eingang in einen anderen MAC-Block, oder als ein finaler Ausgang verwendet werden kann. Für dynamische Auslesungsschemata kann optional ein Rücksetzblock 1607 enthalten sein, um das Array auf einen bestimmten Anfangszustand zurückzusetzen.
  • 17 veranschaulicht eine Anzahl von Techniken zur Erweiterung der dargestellten Architektur, um auf höhere Auflösungsgewichte, Eingangsaktivierungen höherer Auflösung und Differentialoperation zu skalieren. Mehrere Einheitselemente können parallel verwendet werden, um die Gewichtsauflösung zu erhöhen, wie in 17(a) gezeigt. Gewichtswerte können auch unter Verwendung eines Thermometercodes, binären Codes oder anderen Codes kodiert werden (d.h. Gewicht W11 kann in mehrere kodierte Komponenten, W111, W112 usw. geteilt werden). Wie in 17(b) gezeigt, können Einheitszellen, die den kodierten Gewichtskomponenten entsprechen, über mehrere Bitleitungen verbunden werden. Die Teilergebnisse (z.B. Y11 und Y12) entsprechender Bitleitungen werden durch den Spaltenauslesungsschaltkreis in der digitalen oder analogen Domäne kombiniert. Für ein Thermometercodierungsschema hat jede Komponente des Gewichts (z.B. W111, W112) dieselbe Auswirkung auf das Ergebnis der MAC-Operation. Für ein binäres oder anderes Codierungsschema jedoch hat jede Gewichtskomponente eine skalierte Auswirkung auf das Ergebnis der MAC-Operation. Dieses Skalieren kann digital innerhalb des Spaltenauslesungsschaltkreises 1705 erreicht werden. Alternativ kann der physikalische Parameter, der den Gewichtswert innerhalb der Einheitszelle (z.B. Leitwert) darstellt, passend skaliert werden, um zu dem Codierungsschema zu passen. Wie in 17(c) gezeigt, können, anstatt den physikalischen Parameter zu skalieren, mehrere Einheitselemente parallel in einigen Spalten verwendet werden, um mit dem Codierungsschema übereinzustimmen. Die Auflösung der Eingangsaktivierungen kann auch unter Verwendung von Techniken ähnlich jenen, die in 17(b) und 17(c) gezeigt sind, erhöht werden. Die Eingangsaktivierungswerte können auch unter Verwendung eines Thermometer-, binären oder anderen Codes kodiert werden (z.B. wird Eingang X1 in mehrere codierte Komponenten, X11, X12 usw. geteilt). Wie in 17(d) gezeigt, werden diese Eingangswerte Einheitselementen bereitgestellt, die denselben Gewichtswert enthalten und mit derselben Bitleitung verbunden sind. Zum Beispiel ist der Gewichtswert WX1 in allen Einheitszellen in einer einzigen Spalte gespeichert, die auch mit einer Komponente von X1 verbunden ist. Für ein Thermometercodierungsschema hat jede Komponente des Eingangs (z.B. X11, X12) dieselbe Auswirkung auf das Ergebnis der MAC-Operation. Für ein binäres oder anderes Codierungsschema jedoch kann jede Eingangskomponente eine skalierte Auswirkung auf das Ergebnis der MAC-Operation haben. Diese Skalierung kann durch passendes Skalieren des physikalischen Parameters erreicht werden, der die Eingangsaktivierung (z.B. Spannung) darstellt, um mit dem Codierungsschema übereinzustimmen. Stattdessen kann der physikalische Parameter, der den Gewichtswert darstellt, der in den Einheitselementen gespeichert ist (z.B. Leitwert), in einigen Reihen skaliert werden, um die Auswirkung einzelner Komponenten der Eingangsaktivierung zu skalieren und mit dem Codierungsschema abzustimmen. Alternativ, wie in 17(e) gezeigt, können mehrere Einheitselemente parallel in einigen Reihen verwendet werden, um die Auswirkung einzelner Komponenten der Eingangsaktivierung zu skalieren und mit dem Codierungsschema abzustimmen.
  • Differentialtechniken, die Robustheit gegen Zuleitungsrauschen und Variation bieten, während der dynamische Bereich vergrößert wird, können auch verwendet werden, wie in 17(f) und 17(g) gezeigt. 17(f) zeigt ein Differentialgewichtsschema, wo komplementäre Gewichtswerte (z.B. W11 und W11b) in Einheitselementen gespeichert sind, die mit komplementären Bitleitungen, aber mit derselben Eingangsaktivierung verbunden sind. Die Ausgänge der komplementären Bitleitungen (z.B. Y1 und Y1b) können differentiell durch die Spaltenauslesungsschaltungen ausgelesen werden. 17(g) zeigt ein Differentialeingangsaktivierungsschema, wo komplementäre Eingangsaktivierungswerte (z.B. X1 und X1b) auf separaten Wortleitungen bereitgestellt sind. Die komplementären Wortleitungen können mit Einheitselementen verbunden sein, die denselben Gewichtswert speichern, aber mit komplementären Bitleitungen verbunden sind. Wie zuvor werden die Ausgänge der komplementären Bitleitungen (z.B. Y1 und Y1b) durch die Spaltenauslesungsschaltungen differentiell ausgelesen.
  • Die in 17 beschriebenen Techniken sind miteinander kompatibel und können in derselben Implementierung verwendet werden. Daher können verschiedene Gewichtsschemata untereinander austauschbar verwendet werden.
  • In einer Ausführungsform, wie in 17(a) gezeigt, können mehrere Einheitszellen verwendet werden, um die Auflösung von gespeicherten Gewichten zu erhöhen. In einer anderen Ausführungsform, wie in 17(b) gezeigt, können Einheitszellen 1701, die Komponenten codierter Gewichte 1701 speichern, mit separaten Bitleitungen verbunden sein. Die Teilergebnisse der separaten Bitleitungen können in der Spaltenauslesungsschaltung in der analogen oder digitalen Domäne kombiniert sein. In einer anderen Ausführungsform, wie in 17(c) gezeigt, können die mehreren Einheitszellen parallel an einigen Spalten verwendet werden, um mit dem Codierungsschema übereinzustimmen. In einer anderen Ausführungsform, wie in 17(d) gezeigt, können die codierten Eingangsaktivierungen bei Einheitszellen angewendet werden, die dieselben Gewichtswerte halten und mit derselben Bitleitung verbunden sind, um die Auflösung der Eingangsaktivierungsfunktion(en) zu erhöhen. In einer anderen Ausführungsform, wie 17(e) gezeigt, können mehrere Einheitszellen parallel in einigen Reihen 1703 verwendet werden, um die Auswirkung der Eingangsaktivierungsfunktion zu skalieren und mit dem Codierungsschema übereinzustimmen. In der Ausführungsform von 17(f) sind Differentialgewichte mit separaten Bitleitungen verbunden. Der Differentialausgang auf den Bitleitungen wird unter Verwendung von Differentialspaltenauslesungsschaltungen gelesen. In der Ausführungsform von 17(g) sind Differentialeingangsaktivierungen duplizierten Gewichten bereitgestellt, die mit separaten Bitleitungen verbunden sind. Die Differentialausgänge an den Bitleitungen werden unter Verwendung von Differentialspaltenauslesungsschaltungen gelesen. Die Ausführungsform kann auch einen Rücksetzblock 1707 aufweisen.
  • Die Reihentreiber- 1703, Einheitszelle in dem Array, und Spaltenauslesungs- 1705 Schaltungen arbeiten zusammen, um die MAC-Berechnung durchzuführen. Gemeinsam bilden die Reihentreiber- und Spaltenauslesungsschaltungen die Schnittstelle zu der MAC-Engine. Der Eingang zu der MAC-Engine kann in einer von mehreren möglichen Domänen dargestellt werden, wie Spannung, Strom, Ladung oder Zeit. Dieselbe Domäne oder eine andere Domäne kann als der Ausgang verwendet werden. Zum Beispiel kann ein Spannungstreiber verwendet werden, um die Eingangsaktivierung entlang den Wortleitungen bereitzustellen, und eine Stromauslesungsschaltung kann verwendet werden, um den Ausgang aus den Bitleitungen zu lesen. Diese Schnittstellenschaltungen können statisch sein, wo der Ausgang des Arrays sich natürlich auf den Ausgang des MAC-Operationswerts einschwingt, sobald ein neuer Eingang angewendet wird, oder dynamisch sein kann. In einer dynamischen Implementierung können mehrere Taktphasen verwendet werden, um eine einzige MAC-Operation zu beenden, wie ein Schaltkondensatorschema. Die Schnittstellenschaltungen können auch zeitbasiert sein. Zum Beispiel kann der Eingangsaktivierungswert in der Breite oder Dauer eines Spannungspulses codiert sein.
  • 18 veranschaulicht beispielhafte Schnittstellenschaltungen, die dargestellt sind. 18(a) zeigt einen spannungsbasierten Reihentreiber (zum Beispiel einen Digital/Analog-Wandler (DAC), gefolgt von einem Spannungspuffer), der eine neue statische Spannung, VXi, auf Wortleitung i für jeden Eingangswert (In1, In2, In3 usw.) bereitstellt. 18(b) zeigt ein Spannungspulsbreitenmodulation- (PWM) basiertes Schema, das einen Spannungspuls mit variabler Breite proportional zu dem Eingangsaktivierungswert bereitstellt. Ein Pulsdichtenmodulations-(PDM) Schema kann stattdessen verwendet werden, wo eine Anzahl von Pulsen proportional zu dem Eingangsaktivierungswert an die Wortleitung angelegt wird. In einem PDM-Schema hat jeder Puls identische Breite/Dauer. 18(c) zeigt ein Strom-PWM-basiertes Schema, das einen Strompuls, IXi, mit variabler Breite proportional zu dem Eingangsaktivierungswert bereitstellt. Die Spannung, die sich auf der Wortleitung, VXi, für jeden Eingang entwickelt, hängt von dem Strompegel, der Pulsdauer und der Impedanz der Wortleitung ab. Somit sind strombasierte Treiber für Implementierungen besser geeignet, wo die Wortleitungsimpedanz konstant (unabhängig von Eingangsaktivierung oder gespeicherten Gewichtswerten) ist. Es kann auch ein PDM-Schema anstelle von PWM mit einem Stromtreiber für einen ähnlichen Effekt verwendet werden. 18(d) zeigt eine Reihenausleseschaltung, die die Spannung, VBLj, oder den Strom, IBLj, direkt aus Bitleitung j liest. Der Strom, IBLj, aus Bitleitung j kann auch unter Verwendung eines Transimpedanz- (TIA) Verstärkers gelesen werden, wie in 18(e) gezeigt. Der TIA hält die Bitleitungsspannung, VBLj, als eine virtuelle Masse aufrecht und der Bitleitungsstrom wird durch die Impedanz Zj nebengeschlossen, um den Wert zu einer Spannung umzuwandeln. 18(f) zeigt einen kapazitiven TIA, der als ein Ladungsintegrator fungiert. Der kapazitive TIA kann gemeinsam mit einem Schaltkondensatorschema zum Auslesen eines ladungsbasierten Signals verwendet werden. Ein Analog/Digital-Wandler (ADC) kann direkt auf der Bitleitung verwendet werden, wie in 18(g) gezeigt, um den analogen Wert (zum Beispiel Spannung, Strom oder Ladung) in einen digitalen umzuwandeln, oder er kann einem anderen Verstärker folgen (in der gestrichelten Linie gezeigt). 18(h) zeigt ein Differentialauslesungsschema (das auf einem der in 18(d-g) gezeigten Schemata basieren kann, wobei der Unterschied in Ausgangsmengen (zum Beispiel Spannung, Strom oder Ladung) zwischen angrenzenden Spalten oder Sätzen von Spalten gelesen wird. In einer Differentialimplementierung werden komplementäre Gewichte in den Einheitszellen in angrenzenden Spalten gespeichert.
  • Innerhalb des MAC-Engine-Arrays erleichtert das Einheitselement die Multiplikationsoperation zwischen der Eingangsaktivierung und dem gespeicherten Gewichtswert. Zusätzlich kann das Einheitselement auch als ein Transduktionselement fungieren. Es kann auch von der Eingangsdomäne, wie Spannung, Strom oder Zeit, in eine andere Domäne, wie Spannung, Strom, Ladung oder Zeit, umwandeln, die durch die gemeinsame Bitleitung akkumuliert und aus der MAC-Engine ausgelesen wird.
  • In vielen NN-Algorithmen wird ein trainierbares Bias (Versatzterm) dem Ausgang der MAC-Operation hinzugefügt. Dies kann innerhalb der Array-Struktur, wie jener, die in 16 gezeigt ist, durch Zuweisen einer oder mehreren Reihen von Einheitselementen für die Speicherung der Biasparameter und Anlegen passender Eingänge an die entsprechenden Wortleitungen erleichtert werden. Das Bias kann auch in analogen oder digitalen Schaltungen im Inneren der Spaltenauslesungsstruktur oder im Schaltkreis nach der MAC-Einheit vor dem Eingang zu dem Eingang zu der nächsten Schicht des NN enthalten sein.
  • 18 veranschaulicht Beispiele von Implementierungen für den Schnittstellenschaltkreis für die MAC-Engine. Zum Beispiel ist 18(a) eine Veranschaulichung eines statischen Spannungseingangs. In einem anderen Beispiel veranschaulicht 18(b) pulsdichtenmodulierte Spannungspulse. In einer weiteren Ausführungsform veranschaulicht 18(c) direkte Spannungs- oder Stromauslesung. In einer anderen beispielhaften Ausführungsform zeigt 18(d) eine Transimpedanzverstärkerauslesung. In einer anderen Ausführungsform veranschaulicht 18(e) einen kapazitiven Transimpedanzverstärker (Ladungsintegrator) für ladungsbasierte Auslesung. In einer anderen Veranschaulichung, 18(g), kann ein ADC zum direkten Auslesen des Ergebnisses der MAC-Operation verwendet werden oder kann einem Verstärker folgen. In einer weiteren Veranschaulichung benutzt 18(h) eine Differentialauslesung zwischen angrenzenden Spalten oder Sätzen von Spalten, j und j + 1.
  • Mehrere Arten von Direktzugriffsspeicher- (RAM) Technologien wurden für Mischsignal IMC NN Prozessoren verwendet, wie 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. Zusätzlich ist SRAM allgemein in den meisten Standardprozessen einer integrierten Schaltung verfügbar und erfordert keine spezielle Verarbeitung. Die anderen, oben aufgelisteten Technologien neben Flash-Speicher sind aufkommende nicht flüchtige Speicher (als eNVM oder NVRAM bezeichnet) und können binäre Werte, Werte mit mehr Bits an Auflösung oder analoge Werte speichern. Die Einheitselemente in diesen verschiedenen NVRAM-Technologien können physisch kleiner als eine SRAM-Zelle sein, möglicherweise bis zu der minimalen Elementgröße der Technologie (z.B. in der Größenordnung eines Einzel-Transistors). Viele NVRAM-Technologien sind jedoch noch in Entwicklung, sind typischerweise in Standardprozessen einer integrierten Schaltung nicht verfügbar und haben höhere Kosten. Zusätzlich, da diese NVRAM-Technologien Neuprogrammierung eines physikalischen Parameters wie Widerstand benötigen, weisen sie Probleme aufgrund schlechter Stabilität, Retention, Ertrag und Driftleistung auf.
  • Ein einmalig programmierbarer Nur-Lese-Speicher (ROM) kann in dem Einheitselement eines IMC-Prozessors verwendet werden. Das ROM-Array kann entweder während oder kurz nach der Fertigung des Prozessors programmiert werden. ROM-basierte Prozessoren können in jedem integrierten Schaltungsprozess unter Verwendung von Komponenten gestaltet werden, die der Technologie eigen sind, und haben Vorteile im Sinne von Leistung, Sicherheit und Kosten. Sie sind für Anwendungen gut geeignet, die keine Neuprogrammierung im Feld erfordern, wie kostengünstige Sensoren, die am Rand für Anwendungen im Internet der Dinge (IoT) eingesetzt werden. Für andere Anwendungen können ROM-basierte Recheneinheiten auch gemeinsam mit Recheneinheiten verwendet werden, die RAM enthalten. Der Großteil der Modellparameter kann festgesetzt sein, während ein zweckbestimmter Satz neuprogrammierbarer, aufgabenspezifischer Parameter für manche NN-Algorithmen beibehalten wird. Dies kann in einem Prozessor basierend auf IMC durch Speichern des Großteils von Modellparametern im Inneren der ROM-basierten Recheneinheiten mit einer geringeren Anzahl aufgabenspezifischer Parameter erreicht werden, die in einer RAM-basierten Recheneinheit unter Verwendung einer Technologie wie SRAM. gespeichert sind. Dieses Verfahren behält die meisten der Vorteile einer ROM-basierten IMC-Architektur bei, während Programmierbarkeit für Aufgabespezialisierung, Umgang mit Betriebsbedingungen, die sich im Laufe der Zeit ändern, und Training am Rand möglich sind.
  • 19 veranschaulicht ein Beispiel eines CMOS-Halbleiterprozesses. Die Gewichtswerte in den IMC ROM-basierten Recheneinheiten sind einmalig während oder kurz nach Fertigung programmierbar. Das elektrische Back End of Line (BEOL) Interconnect in einem CMOS-Halbleiterprozess (gezeigt in 19) wird verwendet, um Programmierbarkeit zu ermöglichen. Zum Beispiel können Metallverbindungen, Kontakt zu siliziumbasierten Vorrichtungen (wie Transistoren, Widerstände oder Dioden) oder Durchkontaktierungen zwischen Metallschichten verwendet werden, um die Gewichte, die in einem NN gespeichert sind, neu zu konfigurieren. Dies kann billig erfolgen, nachdem die Front End of Line (FEOL) Verarbeitung beendet wurde, indem die lithografischen Masken geändert werden, um die Metall-, Kontakt- oder Durchkontaktierungsschichten in dem BEOL-Prozess zu definieren. Schließlich kann es möglich sein, teilweise bearbeitete CMOS-Wafer zur späteren Konfiguration zu lagern. Die Waferbearbeitung kann vor Bearbeitung der Schicht (wie eine Metall-, Kontakt- oder Durchkontaktierungsschicht) gestoppt werden und kann verwendet werden, um die Gewichte zu definieren, die in den ROM-basierten Recheneinheiten gespeichert sind. An diesem Punkt können die Wafer zur späteren Programmierung gelagert werden, während die verbleibenden Schichten bearbeitet werden. Dies ermöglicht die rasche Produktion verschiedener Versionen von ROM-basierten Recheneinheiten bei niedrigen Kosten mit nur Änderungen an einer geringen Anzahl von Masken oder sogar nur einer einzigen Maskenschicht.
  • Wie gezeigt, zeigt ein Querschnitt eines typischen CMOS-Halbleiterprozesses die Front End of Line (FEOL), enthaltend Vorrichtungen aus Silizium - Widerstände, Transistoren, Kondensatoren. Wie auch die Back End of Line, (BEOL), die den elektrischen Interconnect auf dem Chip definiert. Es ist zu beachten, dass der BEOL-Schichtenstapel auch typischerweise elektrische Vorrichtungen, wie Kondensatoren, Induktoren, Widerstände usw. enthalten kann. In fortschrittlicheren Prozessen kann der BEOL-Schichtenstapel auch nicht flüchtige Speicher wie 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. Zum Beispiel veranschaulicht in 20(a) die Ausführungsform eine Einheitszelle 2005, die sowohl mit der Bitleitung 2003 als auch der Wortleitung 2001 verbunden ist. In 20(b) werden Metallverbindungen geändert, um den Gewichtswert zu ändern, der in der Zelle gespeichert ist. In 20(c) zeigt die Ausführungsform ein ähnliches Beispiel, wo Kontakt- oder Durchkontaktierungsverbindungen 2007 geändert werden, um den Gewichtswert zu ändern. Somit wird das Einheitszellengewicht durch Entfernen einer Kontakt- oder Durchkontaktierungsverbindung geändert. Alternativ können interne Metallverbindungen innerhalb der Einheitszelle modifiziert werden, um das Gewicht zu programmieren, das in der Einheitszelle gespeichert ist. Zum Beispiel, wie in 20(d) gezeigt, können Metallschichtverbindungen verwendet werden, um mit null, einer oder mehreren Verbindungsoptionen (z.B. C1, C2 oder C3) verbunden zu werden. In einer solchen Ausführungsform wird das Gewicht durch Auswählen interner Metallverbindungen 2009 geändert. 20(e) zeigt, dass Kontakt- oder Durchkontaktierungsverbindungen anstelle von Metallschichtverbindungen verwendet werden können. Einmalig programmierbare eFuses können auch verwendet werden, um die Gewichtswerte zu programmieren, aber dies könnte nicht so flächeneffizient sein, wie Programmieren unter Verwendung von Metall, Kontakt oder Durchkontaktierungen.
  • ROM-basierte Recheneinheiten, die unter Verwendung der Verfahren programmiert werden, die in 20 gezeigt sind, können auch mit den Implementierungen, die in 17 gezeigt sind, und den oben beschriebenen und in 18 gezeigten Auslesungsschemata kompatibel sein. Zum Beispiel kann das in 17(a) gezeigte Schema, wo mehrere Einheitszellen parallel verbunden sind, mit dem in 20(d) und 20(e) gezeigten Programmierungsverfahren 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. Zum Beispiel können zum Speichern eines Gewichtswerts von „3“ drei Transistoren parallel und mit der Wortleitung und Bitleitung verbunden sein. Anstelle von mehreren Transistoren können auch mehrere Finger eines Einzel-Transistors verwendet werden, die gemäß dem gewünschten Gewicht neu konfiguriert werden.
  • Es kann mehrere Implementierungen für eine speicherinterne Rechen- (IMC), ROM-basierte Recheneinheit geben. Diese können eine Kombination von Transistoren und/oder passiven Elementen (Widerstände und Kondensatoren) beinhalten. Jede dieser Implementierungen nutzt Elemente, die in allgemein verwendeten Standardprozessen einer integrierten Schaltung allgemein verfügbar sind, keine spezialisierte Technologie erfordern und somit bei geringen Kosten implementiert werden können. Ferner, da diese Implementierungen gut dargestellte Komponenten in der Technologie verwenden, ist ihre Leistung robust und kann verglichen mit den oben erwähnten, experimentellen oder aufkommenden Technologien (z.B. RRAM und MRAM) garantiert werden. Transistoren und passive Elemente können in der Größenordnung der minimalen Elementgröße in der Technologie hergestellt werden, wodurch diese Implementierungen sehr kompakt sein können, und einen geringen Flächenmehraufwand aufweisen, der sich direkt in geringe Kosten übersetzt. Mehrere bestimmte Implementierungen der ROM-basierten Recheneinheit und deren Operation werden in der Folge beschrieben. Diese sind vorwiegend durch die Struktur des Einheitselements in dem ROM differenziert, wie unten näher besprochen wird.
  • Aus diesen Gründen haben ROM-basierte IMC-Einheiten die folgenden Vorteile gegenüber anderen Technologien. Zum Beispiel leiden sie nicht an den Stabilitäts-, Retentions-, Ertrags- oder Driftproblemen, die ein Problem bei Operation langer Lebensdauer bei nicht flüchtigen Speichertechnologien wie PCM, RRAM, MRAM, FeFET oder Flash sein können. Zusätzlich leiden die ROM-basierten IMC-Einheiten nicht an den Leckströmen, die signifikante statische Leistung in Technologien wie SRAM verbrauchen.
  • ROM-basierte Einheitszellen können unter Verwendung von Elementen gestaltet werden, die in allen integrierten Schaltungsprozessen allgemein verfügbar sind (z.B. Widerstände, Kondensatoren und Transistoren) und keine spezialisierte Technologie mit hohen Kosten erfordern. ROM-Einheitselemente können mit hoher Dichte in der Größenordnung eines Einzel-Transistors hergestellt werden, wodurch Kosten weiter verringert werden und Algorithmen, die eine große Anzahl (z.B. Millionen) von Parametern benötigen, auf einem einzelnen Chip gespeichert werden können.
  • Es kann kein Schaltkreis zum Programmieren der Einheitselemente erforderlich sein, wodurch Fläche, Kosten und Leistung gespart werden. ROM-basierte Recheneinheiten können Vertraulichkeit bereitstellen, da keine Schaltungen enthalten sind, um den Speicher direkt neu zu programmieren und zu lesen, und es daher schwierig ist, die Modellparameter (und den Algorithmus) aus der Recheneinheit zu kopieren. ROM-basierte Recheneinheiten können auch hohe Integrität und Authentizität aus ähnlichen Gründen aufweisen. Daher kann es unmöglich sein, nachdem der Sensor eingesetzt wurde, die gespeicherten Modellparameter neu zu programmieren, wodurch die Recheneinheit manipulationssicher wird.
  • Die ROM-basierten Recheneinheiten können unter Verwendung von nur BEOL Metall-, Kontakt- oder Durchkontaktierungsverbindungen programmiert werden. Wenn eine Schicht, wie die obere oder letzte Metallschicht oder eine kleine Anzahl von Schichten zum Programmieren der Recheneinheit verwendet wird, können Wafer bis zur Programmierungsschicht gefertigt und gelagert werden. Falls erwünscht, kann die BEOL-Verarbeitung mit Änderungen an nur einer Maske oder einer kleinen Anzahl von Masken beendet werden, um Recheneinheiten mit aktualisierten oder verschiedenen Algorithmen zu fertigen, für verbesserte Leistung, Aufgabenspezialisierung oder vollständig neue Anwendungen. Dies kann bei geringen Kosten erfolgen, da Modifizierungen nur eine kleine Anzahl von Masken oder sogar eine einzige Maske benötigen.
  • Alle der folgenden Recheneinheitsimplementierungen, die ROM-basierte Elemente verwenden, die in 21-34 gezeigt sind, können unter Verwendung von Metall-, Kontakt- oder Durchkontaktierungsverbindungen programmiert werden, wie in 20 gezeigt. Zur Veranschaulichung der Operation jeder Implementierung ist ein Beispiel dargestellt, das unipolare Gewichtscodierung (z.B. Gewichtswerte von „0“ oder „1“) und ein einzelnes Schnittstellenschema für jede verwendet. Andere Gewichtscodierungen, wie bipolare Gewichte (z.B. Gewichtswerte von „-1“ oder „1“) oder Mehrfachbit-Gewichtswerte, sind unter Verwendung der in 17 gezeigten Schemata möglich. Es ist möglich, andere Schnittstellenschemata, wie die verschiedenen Varianten in 18, zu verwenden. Die Wahl des Codierungsverfahrens und der Schnittstelle (Treiber und Auslesungsschema) hängen von Technologieeinschränkungen wie auch Leistungsmetrik, wie Fläche, Kosten, Latenz, Durchsatz und Signal/Rausch-Verhältnis ab.
  • 21 veranschaulicht ein Beispiel einer Einzel-Transistor- (1T), ROM-basierten Recheneinheit, die eine erste Implementierung benutzt. Ein Einzel-Transistor kann als ein ROM-Einheitselement verwendet werden, das einen binären Gewichtswert speichert, zum Beispiel entweder „0“ oder „1“. Dies kann mit mehreren Implementierungen erreicht werden. 21 veranschaulicht eine erste Implementierung, in der ein einzelner NMOS-Transistor 2103 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-Teilabschnitt eines N mal M Arrays ist gezeigt. PMOS-Transistoren können anstelle von NMOS-Vorrichtungen verwendet werden. Zusätzlich können die Source- und die Drain-Anschlussverbindungen geschaltet werden. Das Gewicht kann in der Gate-Verbindung des Transistors codiert werden, entweder zu einer Spannung Von oder zu einer Spannung Voff. Wenn das Gate von Transistor Mi,j mit Von verbunden ist, ist die Vorrichtung eingeschaltet und das entsprechende gespeicherte Gewicht, Wi,j, kann als „1“ angesehen werden. Der Transistor kann als ein Widerstand mit effektivem Widerstand Ri,j = Ron, und Leitwert Gi,j = Gon dienen. Alternativ, wenn das Transistor-Gate mit Voff verbunden ist, kann die Vorrichtung ausgeschaltet sein und das Wi,j wird als eine „0“ angesehen. Das Gewicht kann auch auf „0“ gestellt werden, indem das Gate mit Von verbunden bleibt und einer oder beide Anschlüsse von der Wortleitung oder Bitleitung getrennt werden. Der Transistor kann als ein Widerstand mit effektivem Widerstand Ri,j = Roff und Leitwert Gi,j = Goff dienen. Eine solche Implementierung kann auch mit den in 17 gezeigten Techniken zum Erhöhen der Auflösung der Eingangsaktivierungen oder Gewichte, wie auch Differenzialoperation kompatibel sein. Das Verhältnis zwischen dem Leitwert und dem Gewichtswert kann in 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 DE102021207661A1_0018
  • Der Term Gscale kann ein Skalierungsfaktor sein, der das Gewicht in eine Leitwert umwandelt, und Goffset ist ein Versatz, der auch gleich null sein kann.
  • Wie oben beschrieben, kann es mehrere mögliche Implementierungen der Reihentreiber- und Spaltenauslesungsschaltungen (spannungs- oder strombasiert, statisch oder dynamisch) geben. In einer Ausführungsform kann ein einzelnes mögliches Antriebs- und Auslesungsschema ein Beispiel sein (statisch, spannungsbasierte Eingangsaktivierung und Stromauslesung). In dieser Implementierung ist der Rücksetzblock nicht notwendig und kann weggelassen werden. Bei Betrachtung nur einer einzigen Bitleitung und Spalte (entsprechend einem einzigen Neuron in dem NN) wird die Multiplikationsoperation durch Anwenden von Eingangsaktivierungen (Xi) als Spannungen (VXi) 2101 entlang der Wortleitung durchgeführt, die binäre Informationen (digital) oder mehrere Bits von Informationen (bis zu analogen Werten) tragen kann:
  • V X i = V X s c a l e X i + V X o f f s e t
    Figure DE102021207661A1_0019
  • Der Term VXscale ist ein Skalierungsfaktor, der den Aktivierungswert in eine Spannung umwandelt, und der Term VXoffset ist ein Versatz, der auch gleich null sein kann. Die Aktivierungsspannung erzeugt einen Strom in dem Transistor, der zu seiner effektiven Leitwert proportional ist und daher 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 DE102021207661A1_0020
  • Wenn der zweite Anschluss jedes Transistors in einer Spalte mit derselben Bitleitung am Eingang eines Transimpedanzverstärkers verbunden ist (wie in 18 gezeigt) und bei einem konstanten Spannungspegel (VBL) gehalten wird, stellt die Stromsummierung die Akkumulationsoperation dar:
  • I B L j = i = 1 N I i , j = i = 1 N ( V X i V B L ) G i , j
    Figure DE102021207661A1_0021
  • In einer beispielhaften Implementierung, die binäre Gewichtswerte verwendet, wo Goffset = 0, VBLj = 0V, VXoffset = 0V, ergibt eine 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 DE102021207661A1_0022
  • Die Summierung 2109 in Gl. 22 stellt die gesamte MAC-Operation dar. Der Strom kann unter Verwendung eines Transimpedanzverstärkers zu einer Spannung transformiert werden und dann in einer folgenden Analog/Digital-Wandler-Stufe digitalisiert werden. Alternativ kann der Strom direkt unter Verwendung eines Stromeingangs-ADC digitalisiert oder gepuffert und zu einer folgenden Stufe weitergeleitet werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der Gewichte durchgeführt, die in dieser Spalte gespeichert sind. Die Schaltung kann auch einen Rücksetzblock 2107 aufweisen.
  • 22 veranschaulicht eine andere Implementierung, die einen Einzel-Transistor als das Einheitselement verwendet. In dieser Ausführungsform ist der Transistor-Gate-Anschluss mit der Wortleitung verbunden, der erste Anschluss (Drain) ist mit der Bitleitung verbunden und der zweite Anschluss (Source) ist mit einer Referenzspannung verbunden. Es ist ein drei mal drei Array-Teilabschnitt eines N by M Arrays gezeigt. PMOS-Transistoren können anstelle von NMOS-Vorrichtungen verwendet werden. Zusätzlich können die Source- und die Drain-AnschlussVerbindungen geschaltet werden. Diese Referenzspannung kann als Signalmasse gezeigt sein, kann aber auch eine andere Spannung sein, abhängig vom Systemdesign. Das Gewicht kann in der Einheitszelle codiert werden, indem eines oder mehrere des Gates, des Drains oder der Source mit der Wortleitung, Bitleitung oder Referenzspannung unter Verwendung von Metall-, Kontakt- oder Durchkontaktierungsverbindungen in dem CMOS-Prozess (die punktierten Linien in 22) verbunden oder von diesen getrennt werden. Wenn alle diese Anschlüsse verbunden sind, ist das Gewicht, Wi,j, das in Transistor Mi,j gespeichert ist, „1“. Abhängig von dem Biasing-Schema des Transistors gibt es mehrere Möglichkeiten, die Wirkung des Gewichts auf Vorrichtungsparameter zu darzustellen. Wenn der Transistor in der Triodenregion vorgespannt ist, kann er als ein Widerstand mit effektivem Widerstand Ri,j = Ron, und Leitwert Gi,j = Gon dargestellt werden. Alternativ, wenn der Transistor in den Sättigungs- oder Subschwellenregionen vorgespannt ist, kann er als eine Stromquelle dargestellt werden, die einen Strom Ii,j = Ion bereitstellt. Wenn einer der Anschlüsse getrennt ist, ist das Gewicht, Wi,j, das in Transistor Mi,j gespeichert ist, „0“. Wenn der Transistor in der Triodenregion vorgespannt ist, kann er als ein Widerstand mit effektivem Widerstand Ri,j = Roff und Leitwert Gi,j = Goff (Roff kann sehr groß sein, wenn die Anschlüsse von der Bitleitung oder der Referenzspannung getrennt sind) dargestellt werden. Alternativ, wenn der Transistor in den Sättigungs- oder Subschwellenregionen vorgespannt ist, kann er als eine Stromquelle dargestellt werden, die einen Strom Ii,j = IOff bereitstellt. Diese Implementierung ist auch mit den in 17 gezeigten Techniken zur Erhöhung der Auflösung der Eingangsaktivierungen oder Gewichte wie auch Differentialoperation kompatibel. Für den Fall, dass der „on“ Transistor in der Triodenregion ist und als eine Impedanz dargestellt ist, kann das Verhältnis zwischen dem Leitwert und dem Gewichtswert unter Verwendung von Gl. 18 beschrieben werden.
  • Wie oben beschrieben, gibt es mehrere mögliche Implementierungen der Reihentreiber- und Spaltenauslesungsschaltungen (spannungs- oder strombasiert, statisch oder dynamisch). Hier beschreiben wir nur ein einziges mögliches Treiber- und Auslesungsschema als ein Beispiel (statisch, spannungsbasierte Eingangsaktivierung und Stromauslesung) für den Fall, dass der Transistor in der Triodenregion 2203 als eine Impedanz dargestellt ist. In dieser Implementierung ist der Rücksetzblock nicht notwendig und kann weggelassen werden. Die Eingangsaktivierungen Xi können in den Spannungen VXi codiert sein, wie oben und in Gl. 19 beschrieben. Die Spannung VXi (gezeigt als Spannungen 2201) kann analoge Werte annehmen, die weiter die Leitwert des Transistors darstellen. Alternativ kann VXi ein digitales Signal mit nur zwei Pegeln sein, nieder oder hoch, entsprechend Xi = 0 bzw. Xi = 1. In dem Fall, wo VXi nieder ist, ist der Transistor immer ausgeschaltet, unabhängig von dem Gewichtswert. Der Strom durch das Einheitselement entspricht der Multiplikation der Aktivierung und des Gewichts und ist beschrieben durch:
  • I i , j = V B L X i G i , j
    Figure DE102021207661A1_0023
  • Bei Betrachtung nur eines einzelnen Bitleitung und Spalte (entsprechend einem einzelnen Neuron in dem NN) werden alle der Ströme von den Einheitselementen entlang der Bitleitung summiert, wie oben beschrieben:
  • I B L j = i = 1 N I i , j = i = 1 N V B L X i G i , j
    Figure DE102021207661A1_0024
  • Kombination von Gl. 24 mit Gl. 18 und Verwenden von 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 DE102021207661A1_0025
  • In dieser Implementierung kann die Spannung VBL nicht auch 0V sein und muss sich von der Referenzspannung unterscheiden, die an der Source jedes Transistors verbunden ist, um einen Strom zu erzeugen. Die Summierung 2109 in Gl. 25 stellt die gesamte MAC-Operation dar. Der Strom kann unter Verwendung eines Transimpedanzverstärkers zu einer Spannung transformiert werden und dann in einer folgenden Analog/Digital-Wandler-Stufe digitalisiert werden. Alternativ kann der Strom direkt unter Verwendung eines Stromeingang-ADC digitalisiert werden oder gepuffert und zu einer folgenden Stufe weitergeleitet werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der Gewichte durchgeführt, die in dieser Spalte gespeichert sind.
  • 23 veranschaulicht eine alternative Ausführungsform, die einen Einzel-Transistor als das Einheitselement verwendet. In dieser Ausführungsform ist der Transistor-Gate-Anschluss mit der Wortleitung verbunden, der erste Anschluss (Drain) ist mit der Bitleitung verbunden und der zweite Anschluss (Source) ist mit einer eines Satzes von Referenzspannungen verbunden. Es ist ein drei mal drei Array-Teilabschnitt eines N by M Arrays gezeigt. PMOS-Transistoren können anstelle von NMOS-Vorrichtungen verwendet werden. Zusätzlich können die Source- und die Drain-Anschlussverbindungen geschaltet werden. Das Gewicht wird durch Auswählen einer der möglichen Referenzspannungen und Verbinden derselben mit dem Transistor programmiert, wobei jeder Pegel einem einzelnen Gewichtswert entspricht. Es sind drei Referenzspannungen 2303 gezeigt (VREF1, VREF2 und VREF3), es kann jedoch jede 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 (weniger Auflösung). Es ist möglich, dem Transistor zu erlauben, von allen Referenzspannungen getrennt zu sein, entsprechend einem zusätzlichen Pegel (für insgesamt P + 1). Diese Implementierung ist auch mit den in 17 gezeigten Techniken zur Erhöhung der Auflösung der Eingangsaktivierungen oder Gewichte wie auch Differentialoperation kompatibel. Die Referenzspannungspegel können aus jeder Verteilung genommen werden (d.h. sie können nicht gleichmäßig beabstandet sein), aber es kann eine lineare Verteilung verwendet werden. Der Referenzspannungspegel, VREFi,j, in einer einzelnen Einheitszelle entspricht dem Gewichtspegel Wi,j und kann durch den Ausdruck beschrieben werden:
  • V R E F i , j = V R E F s c a l e W i , j + V R E F o f f s e t
    Figure DE102021207661A1_0026
  • Der Term VREFscale ist ein Skalierungsfaktor, der den Gewichtswert zu einem Spannungspegel umwandelt, und VREFoffset ist ein Versatzterm, der auch gleich null sein kann. In diesem Fall können wir den Widerstand und die Leitwert des Transistors Mi,j als konstante Werte darstellen: R0 bzw. G0.
  • Wie oben beschrieben, gibt es mehrere mögliche Implementierungen der Reihentreiber- und Spaltenauslesungsschaltungen (spannungs- oder strombasiert, statisch oder dynamisch). Hier beschreiben wir nur ein einziges mögliches Treiber- und Auslesungsschema als ein Beispiel (statisch, spannungsbasierte Eingangsaktivierung und Stromauslesung). In dieser Implementierung ist der Rücksetzblock nicht notwendig und kann weggelassen werden. Die Eingangsaktivierungen Xi können in den Spannungen VXi codiert werden (gezeigt als 2301), wie oben und in Gl. 19 beschrieben. Die Spannung VXi kann analoge Werte annehmen, die die Leitwert des Transistors darstellen. Alternativ kann VXi ein digitales Signal mit nur zwei Pegeln sein, nieder oder hoch, entsprechend Xi = 0 bzw. Xi = 1. In dem Fall, dass VXi nieder ist, ist der Transistor immer ausgeschaltet, unabhängig von dem Gewichtswert. Der Strom durch das Einheitselement entspricht der Multiplikation der Aktivierung und des Gewichts und ist 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 DE102021207661A1_0027
  • Bei Betrachtung nur einer einzelnen Bitleitung und Spalte (entsprechend einem einzelnen Neuron in dem NN) werden alle der 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 DE102021207661A1_0028
  • Kombinieren von Gl. 28 mit Gl. 26 und Verwenden 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 DE102021207661A1_0029
  • Die Summierung 2309 in Gl. 29 stellt die gesamte MAC-Operation dar. Der Strom kann unter Verwendung eines Transimpedanzverstärkers zu einer Spannung transformiert werden und dann in einer folgenden Analog/Digital-Wandler-Stufe digitalisiert werden. Alternativ kann der Strom direkt unter Verwendung eines Stromeingang-ADC digitalisiert werden oder gepuffert und zu einer folgenden Stufe weitergeleitet werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der Gewichte durchgeführt, die in dieser Spalte gespeichert sind.
  • 24 veranschaulicht eine Implementierung eines ROM-basierten MAC-Arrays, das einen Einzel-Kondensator als ein Einheitselement benutzt. Es ist ein drei mal drei Array-Teilabschnitt eines N by M Arrays gezeigt. Ein Anschluss ist mit der Bitleitung verbunden und einer mit der Wortleitung. Das Gewicht ist in der Verbindung der Anschlüsse codiert. Für binäre Gewichtswerte (z.B. Wi,j ist entweder „0“ oder „1“) sind die Anschlüsse entweder beide verbunden oder einer oder beide Anschlüsse sind getrennt. Wenn beide Anschlüsse verbunden sind, ist das gespeicherte Gewicht Wi,j = 1 und andernfalls Wi,j = 0. Die Verbindung zu der Wortleitung kann programmierbar sein, wie mit einer gestrichelten Linie dargestellt, aber stattdessen können die Bitleitungsverbindung oder beide Verbindungen verwendet werden. Mehr Kondensatoren können parallel verwendet werden, um weitere Gewichtspegel zu haben. Diese Implementierung ist auch mit den in 17 gezeigten Techniken zur Erhöhung der Auflösung der Eingangsaktivierungen oder Gewichte wie auch Differentialoperation kompatibel. Der Kondensatorwert kann mit dem Gewichtspegel codiert sein und kann beschrieben werden als:
  • C i , j = C u W i , j + C o f f s e t
    Figure DE102021207661A1_0030
  • Der Term Cu ist ein Skalierungsfaktor, der den Gewichtswert zu einer Kapazität umwandelt, und Coffset ist ein Versatzterm (zum Beispiel eine festgesetzte parasitäre Kapazität), der auch gleich null sein kann. Es ist zu beachten, dass, wenn nur eine einzelner Einheitskondensator mit binären Gewichtswerten („0“ oder „1“) verwendet wird, Cu die Einheitskapazität ist. Wenn nur ein Einzel-Kondensator für binäre Gewichtswerte verwendet wird, kann der Maximalwert, den Ci,j annehmen kann, als Cmax definiert sein, und stellt die Summierung der Kapazität und Coffset dar. Wenn in jedem Einheitselement k Kondensatoren verwendet werden, um k + 1 Gewichtspegel bereitzustellen, ist Cmax gleich der Summierung aller Kondensatoren wie auch Coffset. Im Allgemeinen ist Cmax = Wmax · Cu + Coffset, wo Wmax der größtmögliche Gewichtswert ist.
  • Wie oben beschrieben, kann es mehrere mögliche Implementierungen der Reihentreiber- und Spaltenauslesungsschaltungen (dynamisch, spannungs-, strom-, ladungs- oder zeitbasiert) geben. In einer Ausführungsform offenbart das System ein einzelnes mögliches Treiber- und Auslesungsschema als ein Beispiel (dynamisch, spannungsbasierte Eingangsaktivierung und spannungsbasierte Auslesung). In dieser Ausführungsform wird der Rücksetzblock verwendet. Die Eingangsaktivierungen Xi können in den Spannungen VXi codiert sein (gezeigt als 2401), wie oben und in Gl. 19 beschrieben. Die Spannung VXi kann analoge Werte annehmen. Alternativ kann VXi ein digitales Signal mit nur zwei Pegeln, nieder oder hoch, sein, entsprechend Xi = 0 bzw. Xi = 1. Anfänglich werden alle Wortleitungen auf eine Rücksetzspannung, VXreset, eingestellt und der Rücksetzblock (der auch mit der Auslesungsschaltung integriert sein kann) wird zum Zurücksetzen der Bitleitungsspannung auf eine Spannung, Vr, verwendet. Im nächsten Schritt wird die Bitleitung freigegeben und die Eingangsaktivierungsspannungen VXi werden auf den Wortleitungen geltend gemacht. Die Eingangsaktivierungsspannung gemeinsam mit dem Kapazitätswert bewirkt, dass eine kleine Ladung von jedem Einheitselement entlang der entsprechenden Gesamt-Bitleitungskapazität geteilt wird:
  • Δ Q i , j = V X i C i , j
    Figure DE102021207661A1_0031
  • Die gesamte Kapazität, verbunden mit der Bitleitung, 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 DE102021207661A1_0032
  • Der Term CBL stellt eine zusätzliche festgesetzte Kapazität dar, die auf der Bitleitung verbunden ist. Bei Betrachtung nur einer einzelnen Bitleitung und Spalte (entsprechend einem einzelnen Neuron in dem 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 DE102021207661A1_0033
  • 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 DE102021207661A1_0034
  • Die Summierung in Gl. 34 stellt die gesamte MAC-Operation dar. Diese Spannung kann aus jeder Bitleitung unter Verwendung eines Spannung-Spannung-Puffers oder Verstärkers gelesen werden und dann in einer folgenden Analog/Digital-Wandler-Stufe digitalisiert werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der Gewichte durchgeführt, die in dieser Spalte gespeichert sind. Aus Gl. 32 geht hervor, dass die Kapazität CT von den Gewichtswerten abhängt und daher ergibt eine Erweiterung von Gl. 34:
  • 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 DE102021207661A1_0035
  • Aus Gl. 35 gibt es einen zusätzlichen Term 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 der Gewichte vorhersagbar ist und/oder eine minimale Variation hat, kann dieser Fehler auf der Systemebene oder während des Trainings des neuronalen Netzwerkalgorithmus herauskalibriert werden, um auf der Recheneinheit zu laufen, um ihn vernachlässigbar zu machen.
  • 25 veranschaulicht eine andere Ausführungsform eines ROM-basierten MAC-Arrays, das einen Einzel-Kondensator als ein Einheitselement verwendet, das das oben im vorherigen Abschnitt erwähnte Problem löst. In dieser Ausführungsform ist einer der Anschlüsse des Kondensators entweder mit der Wortleitung oder mit einer Referenzspannung verbunden, die als Masse gezeigt ist, kann aber jeder andere Spannungspegel sein. In dieser Ausführungsform ist die Gesamtkapazität auf der Bitleitung von den Gewichtswerten unabhängig und ist durch folgende Gl. 36 gegeben:
  • C T = C B L + i = 1 N C m a x = C B L + N C m a x
    Figure DE102021207661A1_0036
  • Verwendung desselben dynamischen spannungsbasierten Eingangsaktivierungs- und spannungsbasierten Auslesungsschemas wie für die vorherige Implementierung beschrieben, kann zu demselben Ausdruck für die Bitleitungsspannung VBLj wie in Gl. 34 führen, 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 darstellen und es gibt keinen Fehlerterm oder keine Abhängigkeit basierend auf der Gesamtsummierung 2509 aller Gewichtswerte. Diese Spannung kann aus jeder Bitleitung unter Verwendung eines Spannung-Spannung-Puffers oder Verstärkers gelesen werden und dann in einer folgenden Analog/Digital-Wandler-Stufe digitalisiert werden. Diese Operation kann in jeder Spalte (Neuron) des Arrays unter Verwendung der Gewichte durchgeführt werden, die in dieser Spalte gespeichert sind.
  • 26(a) veranschaulicht eine Implementierung eines ROM-basierten MAC-Arrays. das einen Einzel-Transistor und Einzel-Kondensator in dem Einheitselement verwendet. Der Kondensator kann ein separates Element von dem Transistor sein oder könnte eine der Kapazitäten sein, wie die Source- (oder Drain-) Diodenkapazität selbst. Es ist ein drei mal drei Array-Teilabschnitt eines N by M Arrays gezeigt. Der Transistor und Kondensator sind in Reihe zwischen jeder Wortleitung und Bitleitung verbunden. Die Reihenfolge des Transistors und Kondensators kann geschaltet werden. PMOS-Transistoren können anstelle von NMOS-Vorrichtungen verwendet werden. Zusätzlich können die Source- und die Drain-Anschlussverbindungen geschaltet werden. Das Gewicht ist in der Gate-Verbindung des Transistors codiert, entweder zu einer Spannung Von oder zu einer Spannung Voff. In dieser Implementierung dient jeder Transistor als ein Schalter, der die Nebenverbindung des entsprechenden Kondensators zwischen der Bitleitung und Wortleitung öffnet oder schließt. Der Transistorleitwert ist nicht kritisch, sollte aber hoch genug sein, um ein richtiges dynamisches Einschwingen mit dem Kondensatorwert abhängig von der gewünschten Frequenz der Operation zu ermöglichen. Wenn das Gate von Transistor Mi,j mit Von verbunden ist, ist die Vorrichtung eingeschaltet und das entsprechende gespeicherte Gewicht, Wi,j, wird als „1“ angesehen. Alternativ, wenn das Transistor-Gate mit Voff verbunden ist, ist die Vorrichtung ausgeschaltet und das Wi,j wird als eine „0“ angesehen. Diese Implementierung ist auch mit den in 17 gezeigten Techniken zur Erhöhung der Auflösung der Eingangsaktivierungen oder Gewichte wie auch Differentialoperation kompatibel. Der Transistor dient als eine einmalig programmierbarer, spannungsgesteuerter Schalter, der die Nebenverbindung des Kondensators zwischen der Wortleitung und der Bitleitung öffnet oder schließt. Daher kann die oben beschriebene Schaltung (z.B. 26) in demselben Verfahren wie 24 dargestellt werden. Das Gewicht modifiziert die effektive Kapazität des Einheitselements, Ci,j, wie durch die Bitleitung, unter Verwendung von Gl. 30 durch den Zustand des Gate von Transistor Mi,j gesehen.
  • Wie oben beschrieben, gibt es mehrere mögliche Implementierungen der Reihentreiber- und Spaltenauslesungsschaltungen (dynamisch, auf Spannung, Strom oder Ladung basiert). Diese Implementierung kann arbeiten, indem sie derselben dynamischen Eingangsaktivierung und spannungsbasierten Auslesung folgt, die oben für die Schaltung von 24 beschrieben sind. Gleichungen 31-35 können verwendet werden, um den Ausgang der MAC-Operation zu berechnen, wobei ein Satz von Eingangsaktivierungen und Gewichtswerten gegeben ist. Diese Spannung kann aus jeder Bitleitung unter Verwendung eines Spannung-Spannung-Puffers oder Verstärkers gelesen werden und dann in einer folgenden Analog/Digital-Wandler-Stufe digitalisiert werden. Diese Operation kann in jeder Spalte (Neuron) des Arrays unter Verwendung der Gewichte durchgeführt werden, die in dieser Spalte gespeichert sind. Es kann einen zusätzlichen Term 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 vorhersagbar ist und/oder eine minimale Variation hat, kann dieser Fehler auf der Systemebene herauskalibriert werden und wie zuvor beschrieben vernachlässigbar sein.
  • Eine andere Ausführungsform der Einheitszelle in 26(a) ist in 26(b) gezeigt, die das Problem von CT, abhängig von den Gewichtswerten lösen kann. In dieser Implementierung der Einheitszelle ist eine extra potentielle Metall-, Kontakt- oder Durchkontaktierungsverbindung zu einer Referenzspannung (gezeigt als Masse, kann aber eine andere Spannung sein) enthalten, die nur in dem Fall verbunden ist, wo das Gate des Transistors mit Voff verbunden ist. Andernfalls ist diese Implementierung mit der Implementierung identisch, die in 26(a) gezeigt ist. Auf diese Weise bleibt die Gesamtkapazität jeder Bitleitung konstant, unabhängig von den Gewichtswerten, und ist durch Gl. 36 gegeben.
  • 27(a) veranschaulicht eine andere Implementierung, die einen Einzel-Transistor und Kondensator als das Einheitselement verwendet. Es ist ein drei mal drei Array-Teilabschnitt eines N by M Array 2703 gezeigt. Der Transistor und Kondensator können in Reihe zwischen jeder Bitleitung und einer Referenzspannung, als Masse gezeigt, verbunden sein, aber es kann eine andere Referenzspannung verwendet werden. Die Reihenfolge des Transistors und Kondensators kann geschaltet werden. PMOS-Transistoren können anstelle von NMOS-Vorrichtungen verwendet werden. Zusätzlich können die Source- und die Drain-Anschlussverbindungen geschaltet werden. Das Gewicht wird in der Einheitszelle codiert, indem einer oder mehrere des Transistor-Gate-, Transistor-Drain-, Transistor-Source- oder Kondensatoranschlusses mit der Wortleitung, Bitleitung oder Referenzspannung unter Verwendung von Metall-, Kontakt- oder Durchkontaktierungsverbindungen im CMOS-Prozess verbunden oder von diesen getrennt wird (wie durch punktierte Linien in 27(a) veranschaulicht). Wenn alle diese Anschlüsse verbunden sind, ist das Gewicht, Wi,j, das in der Einheitszelle gespeichert ist, „1“. Wenn einer der Anschlüsse getrennt ist, ist das Gewicht, Wi,j, das in Transistor gespeichert ist, „0“. Diese Implementierung kann auch mit den in 17 gezeigten Techniken zur Erhöhung der Auflösung der Eingangsaktivierungen oder Gewichte wie auch Differentialoperation kompatibel sein. Ähnlich den vorherigen kapazitiven Implementierungen modifiziert das Gewicht die effektive Kapazität des Einheitselements, Ci,j, wie durch die Bitleitung erkennbar ist, basierend auf dem Gewichtswert wie in Gl. 30.
  • Wie oben beschrieben, gibt es mehrere mögliche Implementierungen der Reihentreiber- und Spaltenauslesungsschaltungen (dynamisch, spannungs-, strom-, ladungs- oder zeitbasiert). In einer Ausführungsform ist nur ein einziges mögliches Treiber- und Auslesungsschema als ein Beispiel (dynamisch, spannungsbasierte Eingangsaktivierung und spannungsbasierte Auslesung) angegeben. In dieser Implementierung wird der Rücksetzblock verwendet. Die Eingangsaktivierungen Xi können in den Spannungen VXi wie oben und in Gl. 19 beschrieben codiert sein. VXi ist ein digitales Signal mit nur zwei Pegeln, nieder oder hoch, entsprechend Xi = 0 bzw. Xi = 1. Für den niederen Spannungspegel ist der Transistor ausgeschaltet und für den hohen Pegel ist der Transistor eingeschaltet (Verbinden des Kondensators zwischen der Bitleitung und der Referenzspannung). Anfänglich werden alle Aktivierungen, VXi, auf den Wortleitungen geltend gemacht und die Bitleitungen werden unter Verwendung des Rücksetzblocks (der auch mit der Auslesungsschaltung integriert sein kann) auf eine Spannung, Vr vorgeladen. Im nächsten Schritt werden die Bitleitungen freigegeben und alle Wortleitungen werden auf dem hohen Spannungspegel geltend gemacht, sodass alle Transistoren eingeschaltet werden. Die Eingangsaktivierungsspannung bewirkt gemeinsam mit dem Einheitskapazitätswert, dass eine kleine Ladung von jedem Einheitselement entlang der entsprechenden Gesamt-Bitleitungskapazität geteilt wird:
  • Δ Q i , j = X i V r C i , j
    Figure DE102021207661A1_0037
  • Die Gesamtkapazität, die mit der Bitleitung, CT, verbunden ist, ist durch Gl. 32 gegeben. Bei Betrachtung nur einer einzigen Bitleitung und Spalte (entsprechend einem einzelnen Neuron in dem NN) ist die Gesamtspannung, VBLj, die sich auf der Bitleitung entwickelt, zu der Summe aller ΔQi,j und einem Faktor, der sich auf die Rücksetzspannung Vr bezieht, proportional:
  • V B L j = V r C B L C T + i = 1 N Δ Q i , j C T = V T C B L C T + i = 1 N V r X i C i , j C T
    Figure DE102021207661A1_0038
  • 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 DE102021207661A1_0039
  • Die Summierung in Gl. 39 stellt die gesamte MAC-Operation dar. Diese Spannung kann aus jeder Bitleitung unter Verwendung eines Spannung-Spannung-Puffers oder Verstärkers gelesen werden und dann in einer folgenden Analog/Digital-Wandler-Stufe digitalisiert werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der Gewichte durchgeführt, die in dieser Spalte gespeichert sind. Aus Gl. 32 ist erkennbar, dass die Kapazität CT von den Gewichtswerten abhängig ist, und daher ergibt Erweiterung von Gl. 39:
  • V B L j = V r + v r i = 1 N W i , j i = 1 N X i W i , j
    Figure DE102021207661A1_0040
  • Dies ist ähnlich Gl. 35 für die in 24 gezeigte Implementierung. Es gibt einen zusätzlichen Term 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 Gewichte vorhersagbar ist und/oder minimale Variation hat, kann dieser Fehler auf der Systemebene herauskalibriert werden und wie zuvor beschrieben vernachlässigbar sein.
  • Eine andere Implementierung der Einheitszelle in 27(a) ist in 27(b) gezeigt, die das Problem löst, dass CT von den Gewichtswerten abhängig ist. Ähnlich 27(a), wenn das Transistor-Gate mit der Bitleitung verbunden ist, seine Source mit einer Referenzspannung verbunden (z.B. Masse) ist, sein Drain mit dem Kondensator verbunden ist und der Kondensator mit der Bitleitung verbunden ist, ist der Gewichtswert, der in der Einheitszelle gespeichert ist, „1“. Um einen „0“ Wert zu speichern, ist der Transistor nicht mit dem Kondensator verbunden und stattdessen ist der Kondensator mit einer Referenzspannung verbunden (gezeigt als Masse, kann aber eine andere Spannung sein). Diese Implementierung kann mit der in 27(a) gezeigten Implementierung identisch sein. Auf diese Weise kann die Gesamtkapazität jeder Bitleitung konstant bleiben, unabhängig von den Gewichtswerten, und ist durch Gl. 36 gegeben.
  • 28 veranschaulicht einen Implementierung, die zwei Transistoren und einen Kondensator in dem Einheitselement verwendet. Es ist ein drei mal drei Array-Teilabschnitt 2805 eines N mal M Arrays 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 von einem Satz von Referenzspannungen. Drei Referenzspannungen sind gezeigt (VREF1, VREF2 und VREF3), es kann jedoch jede 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 geringere Anzahl von Gewichtspegeln (geringere Auflösung). Der andere Transistor verbindet den Knoten, den sich die zwei Transistoren und der Kondensator teilen, mit einer anderen Referenzspannung, VY. Dieses Gate des zweiten Transistors ist mit einem Spannungssignal VSET verbunden, das den Transistor ein- und ausschaltet. PMOS-Transistoren können anstelle von NMOS-Vorrichtungen verwendet werden. Zusätzlich können die Source- und die Drain-Anschlussverbindungen geschaltet werden. Das Gewicht wird in der Einheitszelle codiert, indem eine der P-Referenzen unter Verwendung von Metall-, Kontakt- oder Durchkontaktierungsverbindungen in dem CMOS-Prozess verbunden oder getrennt wird. Nur eine Referenzspannung sollte in jedem Einheitselement verbunden sein. Dieses Verfahren erlaubt, dass P viele Gewichtspegel im Inneren jedes Einheitselements codiert werden. Zusätzlich ist es möglich, dem Transistor zu ermöglichen, von allen Referenzspannungen getrennt zu sein, wodurch ein zusätzlicher Pegel (für insgesamt P + 1) bereitgestellt wird. Die Referenzspannungen können durch das MAC-Array unter Verwendung von Metallschichten zugeleitet werden, die vertikal gestapelt sind, um Fläche zu sparen und Einheitselemente hoher Dichte zu ermöglichen, die auch beliebig hohe Gewichtspräzision unterstützen können. Die Referenzspannungspegel können aus jeder Verteilung erhalten werden (d.h. sie können nicht gleichmäßig beabstandet sein), aber allgemein kann eine lineare Verteilung verwendet werden. Der Referenzspannungspegel, VREFi,j, in einer einzelnen Einheitszelle 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 Eingangsaktivierungen oder Gewichte wie auch Differentialoperation kompatibel. Zum Beispiel kann der Kondensator, Ci,j auch unter Verwendung von Metall-, Kontakt- oder Durchkontaktierungsverbindungen programmierbar sein, wie für vorherige Implementierungen beschrieben. Wenn der Kondensator nicht programmierbar ist, hat er einen Wert von C0.
  • Wie oben beschrieben, gibt es mehrere mögliche Implementierungen der Reihentreiber- und Spaltenauslesungsschaltungen (dynamisch, auf Spannung, Strom oder Ladung basiert). Hier beschreiben wir nur ein einziges mögliches Treiber- und Auslesungsschema als ein Beispiel (dynamisch, spannungsbasierte Eingangsaktivierung und spannungsbasierte Auslesung). In dieser Implementierung wird der Rücksetzblock verwendet. Die Eingangsaktivierungen Xi können in den Spannungen VXi codiert sein, wie oben und in Gl. 19 beschrieben. VXi kann ein digitales Signal mit nur zwei Pegeln sein, nieder oder hoch, entsprechend Xi = 0 bzw. Xi = 1. Für den niederen Spannungspegel ist der Transistor, Mi,j, ausgeschaltet und für den hohen Pegel ist der Transistor eingeschaltet (wobei der Kondensator zwischen der Bitleitung und der ausgewählten Referenzspannung, VREFi,j, verbunden ist). Anfänglich werden alle Aktivierungen, VXi, auf den Wortleitungen geltend gemacht, VSET wird nieder eingestellt, um den zweiten Transistor auszuschalten, und die Bitleitungen werden unter Verwendung des Rücksetzblocks (der auch mit der Auslesungsschaltung integriert sein kann) auf eine Spannung, Vr, vorgeladen. Im nächsten Schritt werden die Bitleitungen freigegeben und alle Wortleitungen werden auf einen niederen Spannungspegel gebracht, sodass alle Transistoren Mi,j ausgeschaltet werden. Dann wird VSET hoch eingestellt, um die Spannung VY mit dem Kondensator zu verbinden. Bei Betrachtung des Falls, wo der Einheitszellenkondensator bei C0 festgesetzt ist, bewirkt diese Prozedur, dass eine kleine Ladung ΔQi,j von jeder Einheitselementkapazität entlang der entsprechendem Gesamt-Bitleitungskapazität geteilt wird:
  • Δ Q i , j = X i V R E F i , j C 0
    Figure DE102021207661A1_0041
  • Die Gesamtkapazität, die mit der Bitleitung verbunden ist, CT, ist gegeben als:
  • C T = C B L + i = 1 N C 0 = C B L + N C 0
    Figure DE102021207661A1_0042
  • In diesem Fall hängt CT nicht von den Gewichtswerten ab. Bei Betrachtung nur einer einzelnen Bitleitung und Spalte (entsprechend einem einzelnen Neuron in dem NN) ist die Gesamtspannung, VBLj, die sich auf der Bitleitung entwickelt, zu der Summe aller ΔQi,j und Faktoren, die sich auf VY und Vr beziehen, proportional:
  • 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 DE102021207661A1_0043
  • 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 DE102021207661A1_0044
  • Die Summierung in Gl. 44 stellt die gesamte MAC-Operation dar. Es ist zu beachten, dass die Operation in diesem Szenario umgekehrt ist. Diese Spannung kann aus jeder Bitleitung unter Verwendung eines Spannungspuffers oder Verstärkers ausgelesen werden und dann in einer folgenden Analog/Digital-Wandler-Stufe digitalisiert werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der Gewichte durchgeführt, die in dieser Spalte gespeichert sind.
  • 29 veranschaulicht eine Ausführungsform einer Einzel-Transistor- und Einzel-Kondensator-, ROM-basierten Recheneinheit. Diese Implementierung ist mit der Implementierung in 28 identisch, mit der Ausnahme, dass der Transistor, der mit VY verbunden ist, weggelassen ist.
  • Wie oben beschrieben, gibt es mehrere mögliche Implementierungen der Reihentreiber- und Spaltenauslesungsschaltungen (dynamisch, auf Spannung, Strom oder Ladung basiert). In einer Ausführungsform kann ein einziges mögliches Treiber- und Auslesungsschema verwendet werden, das jenem ähnlich ist, das für 28 als ein Beispiel beschrieben ist, (dynamisch, spannungsbasierte Eingangsaktivierung und spannungsbasierte Auslesung). In dieser Implementierung wird der Rücksetzblock verwendet. Die Eingangsaktivierungen Xi können in den Spannungen VXi codiert sein, wie oben und in Gl. 19 beschrieben. VXi kann ein digitales Signal mit nur zwei Pegeln sein, nieder oder hoch, entsprechend Xi = 0 bzw. Xi = 1. Für den niederen Spannungspegel ist der Transistor, Mi,j, ausgeschaltet und für den hohen Pegel ist der Transistor eingeschaltet (wobei der Kondensator zwischen der Bitleitung und der ausgewählten Referenzspannung, VREFi,j verbunden ist). Anfänglich werden alle Aktivierungen, VXi, auf den Wortleitungen geltend gemacht. Die Bitleitungen werden unter Verwendung des Rücksetzblocks (der auch mit der Auslesungsschaltung integriert sein kann) auf eine Spannung, Vr, vorgeladen. Im nächsten Schritt werden die Bitleitungen freigegeben und alle Wortleitungen werden auf einen hohen Spannungspegel gebracht (sodass alle Transistoren Mi,j eingeschaltet werden) und alle Referenzspannungspegel werden unter Verwendung eines Treibers, der extern zu dem Array ist, auf denselben Spannungspegel, VY, gestellt. Während der Auslesungsphase werden alle Einheitskondensatoren zwischen der Bitleitung und einer Spannung VY verbunden. Auf diese Weise arbeitet diese Implementierung auf dieselbe Weise wie die Implementierung von 28 und die MAC-Berechnung kann durch folgende Gl. 41-44 dargestellt werden. Die Ausgangsspannung kann aus jeder Bitleitung unter Verwendung eines Spannungspuffers oder Verstärkers ausgelesen werden und dann in einer folgenden Analog/Digital-Wandler-Stufe digitalisiert werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der Gewichte durchgeführt, die in dieser Spalte gespeichert sind.
  • 30 veranschaulicht eine Ausführungsform eines ROM-basierten MAC-Arrays, das einen Einzel-Widerstand als ein Einheitselement verwendet. Es ist ein drei mal drei Array-Teilabschnitt eines N by M Arrays 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“) ist der Anschluss entweder sowohl mit der Wortleitung als auch der Bitleitung für ein Wi,j = 1 verbunden und von der Wortleitung und/oder Bitleitung für Wi,j = 0 getrennt. Mehr Widerstände können parallel verwendet werden, um weitere Gewichtspegel zu haben. Diese Implementierung ist auch mit den in 17 gezeigten Techniken zur Erhöhung der Auflösung der Eingangsaktivierungen oder Gewichte wie auch Differentialoperation kompatibel. Der Leitwert, Gij, von Widerstand Rij wird mit dem Gewichtspegel codiert und kann unter Verwendung von Gl. 18 beschrieben werden, dieselbe wie für die Implementierung in 21 verwendet.
  • Wie oben beschrieben, gibt es mehrere mögliche Implementierungen der Reihentreiber- und Spaltenauslesungsschaltungen (spannungs- oder strombasiert, statisch oder dynamisch). Hier beschreiben wir nur ein einziges mögliches Treiber- und Auslesungsschema als ein Beispiel (statisch, spannungsbasierte Eingangsaktivierung und Stromauslesung). In dieser Implementierung ist der Rücksetzblock nicht notwendig und kann weggelassen werden. Bei Betrachtung nur einer einzigen Bitleitung und Spalte (entsprechend einem einzelnen Neuron in dem NN) wird die Multiplikationsoperation durch Anwenden von Eingangsaktivierungen (Xi) als Spannungen (VXi) entlang der Wortleitung durchgeführt, die binäre Informationen (digital) oder mehrere Bits von Informationen (analoge Werte) wie in Gl. 19 tragen kann.
  • Die MAC-Operation, die unter Verwendung von Gl. 20, 21 und 22 beschrieben ist, kann dieselbe sein wie für 21. Der Spaltenstrom kann unter Verwendung eines Transimpedanzverstärkers zu einer Spannung transformiert werden und dann in einer folgenden Analog/Digital-Wandler-Stufe digitalisiert werden. Alternativ kann der Strom direkt unter Verwendung eines Stromeingang-ADC digitalisiert werden oder gepuffert und zu einer folgenden Stufe weitergeleitet werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der Gewichte durchgeführt, die in dieser Spalte gespeichert sind.
  • Wie oben beschrieben, können ROM-basierte Recheneinheiten gemeinsam mit RAM-basierten Recheneinheiten in demselben IMC-basierten Prozessor verwendet werden. Die ROM-basierte Recheneinheit kann eine der Implementierungen sein, die in den vorherigen Abschnitten erwähnt wurden. Zusätzlich kann jede der oben erwähnten Arten von RAM (oder NVRAM), wie SRAM, RRAM, PCM, MRAM, FeRAM oder Flash, verwendet werden. Die Vorteile einer ROM-basierten Recheneinheit im Sinne von Leistung, Zuverlässigkeit und Sicherheit können durch Speichern des Großteils der festgesetzten Modellparameter in den ROM-Elemente beibehalten werden. Ein kleinerer Teilsatz von Speicher kann aufgabenspezifische Parameter speichern, die im RAM neu programmiert werden können. Dieses Schema behält die meisten der Vorteile von RAM bei, während Aufgabespezialisierung, Aktualisierungen nach Verwendung, um variierenden Betriebsbedingungen gerecht zu werden, oder Verbesserung von Algorithmen und Training am Rand möglich sind.
  • 31 veranschaulicht mehrere Ausführungsformen von Recheneinheiten innerhalb eines IMC-basierten Prozessors für einen beliebigen Maschinenlernalgorithmus. Der Maschinenlernalgorithmus kann aus mehreren Schichten bestehen, die jeweils eine Anzahl von Neuronen enthalten. Es können verschiedene Arten von Recheneinheiten für verschiedene Schichten verwendet werden, wie in 31(a) gezeigt, wo eine ROM-basierte Recheneinheit für die Berechnung von Schicht u verwendet wird und eine RAM-basierte Berechnung für Schicht u+1 verwendet wird. Die Reihenfolge dieser zwei Schichten kann umgekehrt sein und ROM-basierte Recheneinheiten können nach RAM-basierten verwendet werden oder verschiedene Arten von IMC-Recheneinheiten können in aufeinanderfolgenden Schichten verschachtelt sein. 31(b) zeigt eine Implementierung, wo mehrere Arten von Recheneinheiten zur Berechnung in derselben Schicht in dem neuronalen Netzwerk verwendet werden. 31(c) und 31(d) zeigen Beispiele, wo Schichten unter Verwendung von Recheneinheiten implementiert sind, die hybride ROM- und RAM-Recheneinheiten aufweisen.
  • Dies kann unter Verwendung mehrerer Arten von Speicher erreicht werden, die direkt in der analogen Domäne auf derselben Bitleitung verbunden sind, wie in 32(a) und 32(b) gezeigt, wo einmalig programmierbare Transistoren gemeinsam mit einer Einheitszelle basierend auf einer Art von RAM wie RRAM, PCM oder MRAM, verwendet werden. In 32(a) sind angrenzende Blöcke von Einheitszellen mit verschiedenen Arten mit derselben Bitleitung verbunden. In 32(b) sind verschiedene Arten von Einheitszellen verschachtelt und mit derselben Bitleitung für analoge Summierung verbunden. Alternativ können mehrere Spalten mit verschiedenen Arten von Speicher verwendet werden, wie in 32(c) und 32(d) gezeigt, 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 Eingangsaktivierungen oder Gewichte wie auch 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 Sechs-Transistor- (6T) SRAM-Standardstruktur, die in 33(b) gezeigt ist. Von und Voff können hohe bzw. niedere Versorgungsspannung sein. Andere SRAM-Standardstrukturen, wie die Sieben-Transistor- (7T), Acht-Transistor- (8T) oder Zehn-Transistor- (10T) Strukturen, können ebenso verwendet werden. Ein vier mal vier Teilsatz eines N mal M Arrays ist in 33(a) gezeigt. Es kann jeder Anteil von ROM-basierten Einheitszellen zu SRAM-basierten Einheitszellen verwendet werden. PMOS-Transistoren können anstelle von NMOS-Vorrichtungen verwendet werden. Zusätzlich können die Source- und die Drain-Anschlussverbindungen geschaltet werden. Gewichte werden einmalig in ROM-Einheitszellen durch Metall-, Kontakt- oder Durchkontaktierungsverbindungen wie oben beschrieben programmiert. Gewichte werden in den SRAM-basierten Einheitszellen unter Verwendung spezifischer Steuersignale (SEL) und zweckbestimmter zusätzlicher Bitleitungen (P und N für positive bzw. negative SRAM-Bitleitung) programmiert. Wenn ein Gewichtswert von „1“ in einem SRAM einer Einheitszelle gespeichert ist, ist das Gate des entsprechenden Transistors mit Von verbunden. Wenn im Gegensatz dazu ein Gewichtswert von „0“ in einem SRAM einer Einheitszelle gespeichert ist, ist das Gate des entsprechenden Transistors mit Voff verbunden. Sowohl für die ROM-Elemente als auch die SRAM-basierten Elemente kann das Gewicht als in dem Leitwert des Transistors codiert angesehen werden, der zwischen der Wortleitung und Bitleitung verbunden ist, wie in Gl. (1) beschrieben.
  • Wie oben beschrieben, gibt es mehrere mögliche Implementierungen der Reihentreiber- und Spaltenauslesungsschaltungen (spannungs- oder strombasiert, statisch oder dynamisch). Zum Beispiel kann eine statische, spannungsbasierte Eingangsaktivierung und Stromauslesung verwendet werden, wie für die Implementierung in 21 beschrieben. Für ein solches Schema ist die gesamte MAC-Operation für eine einzelne Spalte nach Gl. 19-22 beschrieben und wie oben beschrieben. Der Strom kann unter Verwendung eines Transimpedanzverstärkers zu einer Spannung transformiert werden und dann in einer folgenden Analog/Digital-Wandler-Stufe digitalisiert werden. Alternativ kann der Strom direkt unter Verwendung eines Stromeingang-ADC digitalisiert werden oder gepuffert und zu einer folgenden Stufe weitergeleitet werden. Diese Operation wird in jeder Spalte (Neuron) des Arrays unter Verwendung der Gewichte durchgeführt, die in dieser Spalte gespeichert sind.
  • In manchen Implementierungen können die SRAM-basierten Einheitszellen nur in einigen Spalten und nicht in allen enthalten sein. Zum Beispiel kann der SRAM in jeder zweiten Spalte enthalten sein, wie in 33(c) gezeigt. Da die Gegenwart des SRAM in der Einheitszelle zusätzliche Transistoren erfordert, kann dieses Verfahren verwendet werden, um den Gesamtbereich und Kosten zu verringern, während weiterhin ein Grad an Programmierbarkeit aufrechterhalten wird. Zusätzlich kann eine Differentialimplementierung verwendet werden, wie in 33(d) gezeigt. In dieser Implementierung werden die Differentialausgänge der SRAM-Zelle zum Steuern der Gates von Transistoren in angrenzenden Spalten in dem Array verwendet. Entsprechende ROM-basierte Einheitszellen in angrenzenden Spalten müssen auch differentiell codiert werden, wie gezeigt. Die Ausleseschaltungen müssen auch Differentialimplementierungen sein, wobei sie den Unterschied in Ausgangsmengen (zum Beispiel Spannung, Strom oder Ladung) zwischen angrenzenden Spalten lesen. Diese Implementierung ist auch mit den in 17 gezeigten Techniken zur Erhöhung der Auflösung der Eingangsaktivierungen oder Gewichte wie auch Differentialoperation kompatibel. Diese Implementierungen sind auch mit den Variationen kompatibel, die in 32 gezeigt sind.
  • 33(a) veranschaulicht eine Ausführungsform von 1T ROM-basierten Einheitszellen., die in demselben IMC-Array verwendet werden, wie SRAM-basierte Einheitszellen mit analoger Summierung auf den Bitleitungen. 33(b) veranschaulicht eine Ausführungsform einer Standard-6T-Einheitszelle, die Von und Voff als den hohen und niederen Versorgungsspannungspegel verwendet. 33(c) veranschaulicht ein Beispiel, in dem SRAM-basierte Einheitszellen in einigen Spalten weggelassen werden können, um Fläche und Kosten zu sparen. 33(d) veranschaulicht eine Differentialimplementierung, wo ein einzelner SRAM verwendet wird, um Transistoren in angrenzenden Spalten komplementäre Werte bereitzustellen.
  • Die in 32 und 33 gezeigten Ausführungsformen sind nur beispielhafte Ausführungsformen und andere Kombinationen oder oben beschriebenen ROM-basierten Elemente und RAM-basierten Elemente sind auch möglich. Die Wahl einer hybriden ROM/RAM-Architektur wird durch Optimieren von Leistungsmetrik bestimmt, wie Fläche, Leistungsverbrauch, Latenz, Durchsatz und Signal/Rausch-Verhältnis.
  • Mehrere ROM-basierte IMC-Arrays (wie jene Ausführungsformen mit kapazitiven Implementierungen, die in 24 und 25 gezeigt sind), können zur Gänze in den Metallschichten eines integrierten Schaltungsprozesses gefertigt werden. Zusätzlich kann es möglich sein, manche Kategorien RAM-basierter IMC-Arrays, wie für RRAM oder PCM, vollständig in den Metallschichten zu fertigen. Dieses Merkmal ermöglicht die 3D-Integration von IMC-Recheneinheiten, die eine Gewichtspeicherung höherer Dichte und Berechnung ermöglicht, die Kosten spart und 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 ein 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 ein 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 sein können. 34(d) veranschaulicht, dass ein oder mehrere ROM-basierte IMC-Arrays in den Metallschichten mit einer oder mehreren RAM-basierten IMC über einem anderen RAM-basierten IMC-Array in dem Substrat 3D-gestapelt sein können.
  • Wie in 34(a) gezeigt, können ein 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 unteren Metallschichten verwendet (z.B. die Ausführungsformen von Transistor-basierten Implementierungen in 21-23 und 26-29). Die Substratschicht kann eine Halbleitermaterialschicht sein, die ein Siliziumwafer oder eine andere Art von Material sein kann. Wie in 34(b) gezeigt, können ein oder mehrere ROM-basierte IMC-Arrays über einem Substrat-RAM-basierten IMC-Array basierend auf einer Technologie wie SRAM 3D-gestapelt sein. Ein 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 sein.
  • 35 veranschaulicht ein Beispiel einer „Rand“-Erfassungsvorrichtung mit Klassifikator basierend auf neuronalen Netzwerken, um eine begrenzte Anzahl von Klassen zu klassifizieren, um eine Aufweckfunktion auszulösen, die ihrerseits die Übertragung von Big Data zur weiteren Verarbeitung an eine Cloud freigibt. 35(b) ist eine typische Matrix-Multiplikations- und Additionsoperation, die in einem neuronalen Netzwerk ausgeführt werden kann. 35(c) veranschaulicht eine Anordnung von Speichern und arithmetischer Logikeinheit (ALU).
  • Ein Verfahren zum Verringern dieser Quelle von Energieverbrauch ist durch Eingliedern eines Schemas, das als speicherinterne Berechnung bezeichnet wird. In diesem Ansatz sind die Gewichte des neuronalen Netzwerks stationär und gespeichert, wo die Berechnung auftritt, und daher kann die Datenbewegung deutlich verringert werden. Im Sinne von neuronalen Netzwerk-Hardwareimplementierungen mit digitalen Schaltungen könnten diese als eine Architektur angeordnet sein, wo der Speicher und arithmetische Einheiten derart verteilt sind, dass der Datenspeicher näher bei seinem Zielortprozessor ist. Eine Alternative höherer Effizienz dazu ist die Ausführung der Multiplikations- und Additionsberechnungen (MAC) basierend auf den elektrischen Schaltungsnetzwerkeigenschaften, die die Schaltungsspannung und -ströme regeln. Dies ermöglicht sofortigen Einsatz von Eingangsaktivierungen, z.B. Spannungs- oder Strompegel über ein großes Netzwerk von Gewichten, z.B. implementiert durch Impedanzen wie Widerstände. Die Multiplikationsoperation wird dann durch die Impedanz des Gewichtelements erreicht, das die Eingangsaktivierung skaliert, und die Summierung erfolgt durch die sofortige Strom- oder Ladungspaketsummierung in Schaltungsknoten. Das Ergebnis dieser analogen MAC-Operation ist sofort zur Auslesung mittels eines Datenwandlers verfügbar.
  • Eine analoge Schaltungskonfiguration, die als Crossbar-Netzwerk bezeichnet wird, kann für den Zweck von Matrix-Multiplikations- und Additionsoperationen verwendet werden. Ein solches Netzwerk (z.B. in 36 veranschaulicht), wendet die ganzzahligen Neuronenaktivierungswerte, Xi, über Digital/Analog-Wandler (DACs) durch Zugriffsreihen (Wortleitungen) an. Diese Wortleitungen setzen analoge Spannungen Xi.Vref,DAC über die Wortleitungen ein, wo Vref,DAC die Referenzspannung des DAC ist. Entlang jeder Wortleitung werden mehrere Gewichtelemente an Kreuzungen mit Spalten (Bitleitungen) platziert. Diese Gewichtelemente werden durch Impedanzen (Leitwerten) implementiert, wo jedes Element ein ganzzahliges Wij Vielfaches eines Einheitsleitwerts G ist, was zu einem Leitwert von G.Wij führt. Jede Bitleitung kreuzt mehrere Wortleitungen mit entsprechenden Gewichten an ihren Kreuzungen und implementiert daher einen Summierungsknoten, um die Ströme hinzuzufügen. Für die j-te Bitleitung kann dieser Strom als eine Summierung aller Ströme durch die mit ihr verbundenen Gewichtelemente geschrieben werden als:
  • I j = i = 1 n ( V r e f , D A C X i ) ( G W i j )
    Figure DE102021207661A1_0045
  • Wenn dieser Bitleitungsstrom durch einen Transimpedanzverstärker mit einer Verstärkung von RTIA verarbeitet wird, erzeugt der Verstärker eine Spannung Vj pro Bitleitung, angegeben durch:
  • 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 DE102021207661A1_0046
  • Diese Spannung Vj wird dann durch einen Analog/Digital-Wandler (ADC) in Bezug auf eine Spannung Vref,ADC zu einer ganzen Zahl Yj digitalisiert, wobei sie zu einer ganzen Zahl Yj gerundet wird (die Rundungs(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 DE102021207661A1_0047
  • Der Einfachheit wegen nehmen wir Vref,DAC = Vref, ADC und RTIA = 1/G an und dann wird Gleichung (3) vereinfacht zu:
  • Y j = i = 1 n X i W i j
    Figure DE102021207661A1_0048
  • Dies zeigt, dass jede Bitleitung Multiplikations- und Additionsergebnisse für die Multiplikation zwischen den Eingangsaktivierungen und der j-ten Spalte der Gewichtsmatrix implementiert und daher alle Yj Werte das Matrix-Punktproduktergebnis bilden. Für den Fall, der in 36 gezeigt ist, führt eine 4x1 Aktivierungsmatrix X multipliziert mit der 4x4 Gewichtsmatrix W zu der 1×4 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 DE102021207661A1_0049
  • Manche der Nachteile der in 36 gezeigten Crossbar-Netzwerkschnittstelle können sein, dass das Anlegen der kontinuierlichen Aktivierungsspannungen an die Wortleitungen und die laufenden Ströme in den Bitleitungen (stark von der Art von Gewichtelement und Wertbereichen abhängig) und der Ruheleistungsverbrauch von ADCs, DACs, Treibern und Erfassungsverstärkern den Energieverbrauch erhöht. Zusätzlich ist jeder ADC und DAC aus vielen aktiven und passiven Teilkomponenten hergestellt, was üblicherweise zu einer großen Chipfläche führt und somit die Teilungsgröße der Schnittstelle auf die Crossbar beschränkt und große Maßstäbe begrenzt. Die Annahme, dass die Transfereigenschaften der DACs und ADCs übereinstimmen (die einfache Annahme von Vref,DAC=Vref,ADC), ist in Ausführungen aufgrund der Variationen analoger Komponenten nicht wahr. Die Aufnahme solcher nicht idealen Fälle in Netzwerke in großem Maßstab macht das Training komplexer. In tiefen neuronalen Netzwerken muss häufig der dynamische Bereich von ADCs und DACs von Schicht zu Schicht skaliert werden, was eine signifikante Menge an Komplexität und Designaufwand hinzufügt.
  • 36 veranschaulicht eine Ausführungsform einer analogen Multiplikations- und Additionsoperation, die durch ein Crossbar-Netzwerk implementiert wird, die analoge Eingangsaktivierungen und Gewichte einsetzt, die durch ganzzahlige gewichtete Leitwerte und Summierung in Stromdomäne implementiert sind.
  • In der Vergangenheit wurden Aktivierungseingänge von Crossbar-Netzwerken modifiziert, um pulsbreitenmodulierte Zeitdomänensignale zu verwenden, und nicht die Amplitudendomänenaktivierungen, die in 36 gezeigt sind. Ein Beispiel eines solchen Netzwerks, das binäre Gewichte beinhaltet, die in binären Speicherzellen (wie SRAM-Zellen) gespeichert sind, ist in 37(a) gezeigt. Dieser Ansatz kann verglichen mit laufenden Strömen durch die Bitleitungen energieeffizienter sein, da er vorwiegend auf Ladungssummierung auf Kondensatoren beruht, die an den Bitleitungen befestigt sind (parasitäre Kapazität oder ein absichtlich hinzugefügter Kondensator). Das in 37(a) gezeigte Crossbar-Netzwerk implementiert seine Aktivierungseingänge mit Hilfe von Pulsgeneratoren, die auf eine Zeiteinheitsreferenz mit Dauer Ta referenziert sind. Hier bestimmen die ganzzahligen Aktivierungseingänge, angegeben mit Xi, die Aktivierungsdauer als gleich Xi.Ta. Beispielsweise ist eine ganzzahlige Eingangsaktivierung von 7 durch einen Puls bei einer Dauer von 7.Ta dargestellt.
  • 37 (a) veranschaulicht ein Crossbar-Netzwerk mit pulsbreitenmodulierten Aktivierungssignalen und binären Gewichten, eingebettet in Speichern, die Entladungspolarität auf differentiellen Bitleitungskapazitäten bestimmen. 37(b) veranschaulicht eine Zeitsteuerungsoperation des Netzwerks. Ähnlich dem Crossbar-Netzwerk von 36 senden Wortleitungen die Aktivierungen über viele Bitleitungen aus, wo die Gewichtelemente in Speicherzellen an den Kreuzungen jeder Wortleitung und Bitleitung gespeichert sind. Die Bitleitungen können differentiell angeordnet sein, d.h. jede Leitung besteht aus zwei Leitungen mit Spannungen VBLj und VBLbj. Diese Bitleitungen weisen jeweils eine Gesamtkapazität, angegeben mit CBL, auf und werden anfänglich auf eine Vorladespannung, VP, vor der Operation geladen. Wenn zu Beginn jeder Punktproduktoperation vorgeladen, beginnt die Differentialspannung über die Bitleitungen. angegeben mit Vdj = VBLj - VBLbj, bei null (gezeigt in 37(B)). Für die Dauer jeder pulsbreitenmodulierten Aktivierung der Wortleitung verbinden Schalter SW die Bitleitungskondensatoren mit den Speicherzellen, die ‚10‘- oder ‚01‘-Zustände halten (linke und rechte Seite oder SRAM-Zelle, die 0- oder 1-Werte hält, was in zwei Zuständen resultiert). Es wird angenommen, dass die Schalter keinen Einschaltwiderstand haben und der Gesamtwiderstand zu dem Kondensator durch einen Widerstand RBL dargestellt ist. Abhängig von dem Zustand, der in dem Gewichtspeicher gespeichert ist (‚+1 = 10‘ oder ‚-1 = 01‘ ähnlich einer Ladungs-/Entladungspolarität für die Bitleitungskapazitäten), lädt eine der Bitleitungskapazitäten in Richtung Versorgung und die andere entlädt Richtung Masse (37(a)). Sobald alle pulsbreitenmodulierten Eingangsaktivierungen an den Wortleitungen angewendet wurden, führt, aufgrund einer Überlagerung die Gesamtladung (aktivierungsabhängig), die an jeder Bitleitungskapazität entfernt oder hinzugefügt wurde (gewichtsabhängig), zu einer Differentialspannung über die Bitleitungen (siehe 37(b) im Fall aller Gewichte ‚1‘):
  • V d j 2 V p T a R B L C B L i = 0 n 1 X i W i j
    Figure DE102021207661A1_0050
  • Die Bitleitungsspannungen Vdj werden durch Analog/Digital-Umwandlung in Bezug auf eine Spannung, Vref,ADC, umgewandelt, um das ganzzahlige Bitleitungspunktproduktergebnis 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 DE102021207661A1_0051
  • Dieses Schema vereinfacht die Aktivierung durch Entfernen der in 36 verwendeten DACs und verbessert Energieeffizienz durch Ladungsdomänenoperation der Bitleitungen, jedoch verbleiben die Komplexität und der Energieverbrauch der Amplitudendomänenauslesung (erforderlich durch die Bitleitung-ADCs).
  • 38 veranschaulicht ein Memristor-basiertes Crossbar-Netzwerk, aktiviert mit pulsbreitenmodulierten Aktivierungen und Auslesung in Amplitudendomänen mit Amplitudendomänen-Analog/Digital-Wandlern. In einer solchen Ausführungsform implementiert die Implementierung ähnlich der Implementierung von 38(a) die Gewichte in gewichteten Widerständen (Leitwerte). Diese können entweder festgesetzte Schaltungselemente für ein Netzwerk sein, das keine Programmierbarkeit aufweist, oder könnten programmierbar gemacht werden, indem Elemente wie Memristorelemente (programmierbare Leitwerte, wie in 38(b) gezeigt) verwendet werden. Die Konfiguration der pulsbreitenmodulierten Aktivierungen und deren Erzeugungen wie auch der Differentialstruktur für Bitleitungen ist jener von 37(a) ähnlich. Der Unterschied liegt in den Gewichtswerten, Wij, die mehr Pegel als die binären Pegel von 37(a) haben könnten. Ein Fall bipolarer Gewichtswerte über 7 Pegeln von Leitwerten ist in 38(b) gezeigt. Unter der Annahme, dass Wij (Wbij für negative Gewichtswerte) ein ganzzahliger Wert ist, erfolgt seine physische Implementierung durch einen Leitwert Gij = G0 + Wij.Gu oder Gij = G0 - Wbij.Gu. Die Matrix-Punktprodukt-Multiplikations- und Additionsoperation beginnt mit Vorladen der Bitleitungen auf eine Vorladespannung VP. Jede Wortleitung trägt die pulsbreitenmodulierten Aktivierungseingänge Xi zu Schaltern SW. Diese Schalter stellen einen Entladungspfad durch die Gewichtsleitwerte, bestimmt durch Wij (und Wbij), zur Masse für die Dauer des Aktivierungseingangs bereit. Als ein Ergebnis der Überlagerung aller Zeitkonstanten, sobald alle Aktivierungseingänge angewendet sind, erscheint eine Differentialspannung Vdj über die Bitleitung, die in einer ersten Ordnung bestimmt ist 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 DE102021207661A1_0052
  • Die Bitleitungsspannungen werden durch ADCs digitalisiert. In der Vergangenheit ist die Operation des ADC mit der Operation der Crossbar durch die Anwendung einer Multizyklusladungs- und -entladungsoperation in der Gegenwart einer zusätzlichen Reihe eingebettet, die durch Referenzleitwerte gebildet ist. Dies hilft, das nicht lineare Verhältnis von (Gleichung 52) auf Kosten einer notwendigen Multizyklusladungs- und -entladungsoperation und zusätzlicher Reihen von Leitwerten über die Crossbar zur Implementierung der Amplitudendomänen-ADC-Operation zu verringern.
  • Eine Ausführungsform der vorliegenden Offenbarung veranschaulicht eine Zeitdomänenschnittstelle zur Aktivierung und Auslesung der analogen Multiplikations- und Additions-Crossbar-Netzwerke. Eine solche Schnittstelle ersetzt Amplitudendomänenschemata, die im Stand der Technik verwendet werden. Sie profitiert von der Tatsache, dass mit den Aktivierungseingängen zu den Crossbar-Wortleitungen, die in pulsbreitenmodulierte Zeitdomänensignale übersetzt werden, die Überlagerung von Zeitkonstanten (Ladungszeiten, Integrationszeiten, Entladungszeiten), die durch verschiedene Crossbar-Netzwerkkonfigurationen implementiert werden, an den Bitleitungen durch Zeitmessungen gemessen werden können, wo die Zeit/Digital-Umwandlung in Bezug auf dieselbe Zeitreferenz erfolgen kann, die zum Erzeugen der Aktivierungen verwendet wurde. Ferner schlägt diese Erfindungsoffenbarung eine Zeitmessung vor, die in einer ratiometrischen Weise angeordnet ist, sodass die nicht idealen Situationen, die zu den Absolutwerten von Widerständen, Kondensatoren, Referenzspannungen, Strömen, Zeiten usw. beitragen, gelöscht werden, was zu einem linearen Punktproduktmatrix-Multiplikationsausgang führt, der in einer ersten Ordnung nur eine Funktion der ganzzahligen Eingangsaktivierungen und Gewichte ist.
  • 39 veranschaulicht eine zeitbasierte Schnittstelle zu einem Punktprodukt berechnenden Crossbar-Netzwerk. Die Zeiteingangs- und -ausgangsschnittstellen können gezeigt werden, wie auch in 39(b) die Schnittstellenperipherien, die ein Digital/Zeit- und ein Zeit/DigitalWandler (TDC) sind, und in 39(c) die Zeitdomänenoperation. Eine Zeitdomänenoperation hat mehrere Vorteile im Sinn von Skalierbarkeit und Zuverlässigkeit solcher analoger Crossbar-Multiplikations- und Additionsnetzwerke. 39(a) veranschaulicht eine Zeitdomänenschnittstelle zu einem Crossbar-Netzwerk mit Zeitdomänenperipherieschnittstellenschaltungen. Diese Peripherieschaltungen sind in 39(b) gezeigt und implementieren vorwiegend die Funktionen einer Digital/Zeit- und Zeit/Digital-Umwandlung. Die Aktivierungen werden durch den erstgenannten (ein Pulsgenerator) in Bezug auf eine Zeit Tref erzeugt, der durch einen ganzzahligen Eingang Xj skaliert ist, und die MAC-Ausgänge werden durch Zeit/Digital-Wandler (TDCs) von der Zeitdomäne zu digital umgewandelt. Ein TDC misst eine Eingangszeit, die durch ein START und STOP Signal markiert ist, das zwei Ereignisse markiert (39(c)). Um Zeitmessung zu ermöglichen, ist eine Referenzzeit erforderlich. Für TDC wird diese häufig durch eine Eingangsfrequenz (fref) oder Zeitreferenz, Tref = 1/fref zu dem TDC eingestellt. Anwendung solcher Wandler an der Schnittstelle eines Punktprodukt-Crossbar-Netzwerks hat mehrere Vorteile:
  • Die Schaltungsarchitektur eines TDC ist digitalen Schaltungen näher (eine TDC-Implementierung kann einfach ein Zähler für mäßige Zeitauflösungen oder ein Ringoszillator und ein Register, kombiniert mit einem Zähler für Fälle einer hohen Auflösung sein). Eine solche Art von Schaltkreis hat mehrere Vorteile:
  • Skalieren des dynamischen Bereichs, der pro verborgener Schicht eines tiefen neuronalen Netzwerks erforderlich ist, ist einfacher in einem TDC als einem ADC zu implementieren. Wenn ein TDC verwendet wird, kann dies einfach als Hinzufügen eines zusätzlichen Bits zu dem Zähler und Zählen für einen längeren Zeitraum erfolgen, um den dynamischen Bereich zu verdoppeln, während in einem ADC eine solche Anpassung starke Auswirkung auf Komplexität, Größe und Leistungsverbrauch haben kann.
  • TDCs verbrauchen dynamische Leistung in Verbindung mit dem Schalten logischer Gates (wie digitale Schaltungen) anstatt Ruhrstrom, der durch lineare analoge Schaltungen verbraucht wird, die in ADCs verwendet werden. Dies stellt bessere Energieeffizienz verglichen mit ADCs bereit.
  • Die semidigitalen Schaltungsarchitekturen führen zu sehr kleinen Fußabdrücken für ihre integrierten Schaltungsausführungen und machen diese somit für tiefe neuronale Netzwerke in großem Maßstab zuträglich, die analoge Crossbar-Multiplikations- und Additionsnetzwerke verwenden.
  • Die resultierende Ausgangszeit jeder Bitleitung kann gegen eine Referenzzeitkonstante gemessen werden, die von analogen Widerständen oder Kapazitäten derselben Einheit erzeugt werden, die zum Implementieren der Netzwerkgewichte verwendet wird. Dies ermöglicht ein ratiometrisches Messschema, das die Robustheit des Punktproduktergebnisses deutlich erhöht, indem die Variationen der analogen Elemente in einer ersten Ordnung beseitigt werden.
  • Mit Eingangs- und Ausgangsschnittstellen zu dem Crossbar-Netzwerk, die in Zeitdomäne angeordnet sind, kann die Zeitreferenz des pulsbreitenmodulierten Aktivierungsgenerators mit der Zeitreferenz des TDC synchronisiert werden (39c), was dann zu einer übereinstimmenden Transfereigenschaft für die analoge und digitale Schnittstelle zu dem Crossbar-Netzwerk führt. Dies ist mit Amplitudendomänenschnittstellen nicht machbar, da die Eigenschaften von DACs und ADCs oder Pulsbreitenmodulatoren und ADCs an sich fehlangepasst sind.
  • 40A veranschaulicht ein Funktionsblockdiagramm und Operation der vorgeschlagenen Zeitdomänenschnittstelle zu einer Mischsignal-Punktproduktberechnungshardware basierend auf einem Crossbar-Netzwerk, wie in 40A und 40C gezeigt, mit den Zeitdomänen-Betriebswellenformen in 40B. Dieses Blockdiagramm ist die Grundlage der Zeitdomänen- und ratiometrischen Auslesungsoperation und wird als erweiterbar auf verschiedene Crossbar-Netzwerke, basierend auf verschiedenen elektrischen Eigenschaften (Ladungsdomäne, Stromdomäne usw.) und Gewichtimplementierungen (Speicherelemente wie ROM, SRAM, M/R/PC/RAM) gezeigt. Zur Vereinfachung der Beschreibung des vorgeschlagenen Verfahrens wird zuerst eine asymmetrische Struktur (nur positive Gewichtswerte) gezeigt. Erweiterung auf praktische Implementierungen mit bipolarer Operation und Differential-Bitleitungen kann aus dieser grundlegenden Architektur abgeleitet werden und wird später gezeigt.
  • In 40 ist die Ausführungsform einer Zeitdomänenschnittstelle zu einem Crossbar-Mischsignal-Punktproduktberechnungsnetzwerk mit ratiometrischer Ausgangsauswertung gezeigt. In 40(a) ist das konzeptionelle Blockdiagramm mit pulsbreitenmodulierten Eingangsaktivierungen und TDC-basierter Auslesung veranschaulicht. In 40 (b) sind die Wellenformen, verknüpft mit den Zeitdomäneneingängen, -ausgängen und den Steuer- und Referenzsignalen veranschaulicht. Und in 40(c) die Zeitdomänen-ratiometrische Implementierung, die skalierte Stromquellen verwendet, referenziert auf eine Referenzstromquelle Iref.
  • In dieser Ausführungsform sind die Gewichte als Impedanzen gezeigt, die durch Nutzung eines Einheitsleitwerts G, implementiert sind, die durch das passende ganzzahlige Gewicht Wij skaliert ist. Die Eingangsaktivierungssignale werden durch pulsbreitenmodulierte Generatoren basierend auf einer Referenzzeit Ta, skaliert durch ganzzahligen Aktivierungswert Xi, erzeugt. Diese werden entlang den Wortleitungen ausgesendet, die dann die Bitleitungen an den entsprechenden Gewichtsimpedanzen kreuzen, die die Wortleitung mit der Bitleitung verbinden. Jede Bitleitung kann mit einem Integrator verbunden werden, der seine Operation pro Punktproduktberechnung aus einem Rücksetzzustand startet, der durch eine bestimmte Referenzspannung Vref definiert ist (durchgeführt mit Hilfe eines ‚Rücksetz‘-Signals). Sobald die pulsbreitenmodulierten Aktivierungen mit Amplitude Va an allen Wortleitungen angewendet sind, übersetzt der Leitwert in Verknüpfung mit den Gewichten die pulsbreitenmodulierten Aktivierungen in eine Gesamtnettomenge von Ladung, die in jede Bitleitung eingespeist wird (abgegeben durch fließende Ströme Ij), die durch den entsprechenden Integrator integriert ist. Die Ladung der j-ten Bitleitung ist:
  • Q j = V a G T a i = 0 n 1 W i j X i
    Figure DE102021207661A1_0053
  • Als ein Ergebnis der Anwendung der Eingangsaktivierungen und der Ladungsintegration entwickelt jeder Integrator eine Ausgangsspannung, angegeben mit Vintj, die eine Funktion der Integratorverstärkung ist (40b). Sobald alle Aktivierungen angewendet sind (und alle gewichteten Ladungen integriert sind), verbindet ein Signal, das mit START angegeben ist, die Integratorausgänge durch einen Einheitsleitwert G mit einer Spannung -Va, die der negative Wert der Amplitude der pulsbreitenmodulierten Eingangsaktivierungen ist. Gleichzeitig beginnt ein TDC, der mit der Bitleitung verbunden ist, mit der Zeitmessung. Die Verbindung zu -Va entfernt Ladung von dem Integrator (durch Entladungsstrom Idischarge,j). Die Entfernung von Ladung verringert dann Integratorausgangsspannungen Vintj und dies fährt fort, bis ein Komparator, der die Integratorausgangsspannung überwacht, detektiert, dass der Integrator seinen ursprünglichen Rücksetzwert, Vref, erreicht hat. Sobald dieser Pegel detektiert ist, wird von dem Komparator ein STOP-Signal erzeugt und zu dem TDC geleitet, um Zeitmessung zu stoppen. Infolgedessen wird die Gesamtladung Qj, die während der Aktivierungsphase integriert wird, unter Verwendung des Referenzentladungspfads, der durch Einheitsleitwert G gebildet wird, vollständig entfernt. Die Zeit, die für diese Entfernung der Ladung (Entladung) aufzuwenden ist, ist: 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 DE102021207661A1_0054
  • Der TDC erzeugt einen digitalen ganzzahligen Wert Yj an seinem Ausgang, der zu tOD,j und der TDC Referenzzeit Tref proportional ist, durch eine Rundungsfunktion (Quantisierungsfunktion) von round(x): Y j = r o u n d ( t O D , j T r e f )
    Figure DE102021207661A1_0055
  • Einsetzen von (54) in (55) führt zu: Y j = r o u n d ( T a i = 0 n 1 W i j X i T r e f )
    Figure DE102021207661A1_0056
  • Sowohl TDC Referenzzeit, Tref, als auch die Zeitreferenz zu den Pulsbreitenmodulator-Aktivierungsgeneratoren, Ta, sind mit demselben Systemtakt Tclock mit ganzzahligen Verhältnissen synchronisiert. Daher haben Tref und Ta ein ganzzahliges Verhältnis, angegeben mit k. Synchronisation ermöglicht, dass k als eine ganze Zahl oder als das Verhältnis von zwei ganzzahligen Werten M und N gewählt werden kann, d.h. k = M/N. Dies berücksichtigt auch die zuvor erwähnte Quantisierung:
  • T a = k T r e f
    Figure DE102021207661A1_0057
  • Einsetzen von (57) in (56) führt zu einer ratiometrischen linearen Bitleitungsausgangsmessung Yj, die nur von dem Eingang ganzzahliger Aktivierungen Xi, ganzzahliger Gewichtswerte Wij und einer festgesetzten Konstante k abhängt: Y j = k i = 0 n 1 W i j X i
    Figure DE102021207661A1_0058
  • Eine alternative Veranschaulichung der vorgeschlagenen ratiometrischen Zeitdomänen-Crossbar-Netzwerkimplementierung ist in 40(c) gezeigt. In dieser Ausführungsform implementieren die ganzzahligen skalierten Stromquellen, die auf eine Referenzstromquelle Iref referenziert sind, die Netzwerkgewichte. Der Entladungspfad kann aus einer Reihe von Stromquellen bestehen, die auf dieselben Quelle referenziert sind und entgegengesetzte Polarität aufweisen. Die Zeitdomänenoperation und Wellenformen der Signale in dem Netzwerk sind exakt jenen ähnlich, die in 40(b) gezeigt sind. Eine Differenz mit der Ausführungsform, die in 40(a) veranschaulicht ist, ist, dass die Ladungs- und Entladungsströme durch Nutzung aktiver Stromquellen anstelle von passiven Impedanzen erzeugt werden. Die Gleichungen, die die Punktproduktberechnung und ratiometrische Operation regeln, bleiben dieselben wie Gleichungen (53) bis (59), mit dem einzigen Unterschied, dass Va · G, die die Ladungs- und Entladungsströme von 40(a) in Gleichungen (53) und (54) darstellen, durch Iref ersetzt werden sollten.
  • Im Sinne von Punktproduktimplementierung veranschaulicht Gleichung (58) die Signifikanz des vorgeschlagenen Verfahrens, das eine ratiometrische Zeitdomänenschnittstelle zu einem Crossbar-Netzwerk implementiert. Die ratiometrische Ausgangsauswertung in Zeitdomäne ist in einer ersten Ordnung unabhängig von sämtlichen absoluten Parameterwerten wie die Einheitsimpedanzen oder Stromquellen, die die Gewichte (G oder Iref) bilden, die Spannungspegel wie die Referenzspannung Vref oder Aktivierungsamplitude Va, die Ladungsintegrationsparameter wie die Integratorverstärkung und Ausgangspegel Vintj und die Zeitreferenzwerte Ta, Tref,Tclock .
  • Da die Aktivierungsgeneratoren und der TDC auf digitalen Schaltungen (Zählern) beruhen und dieselbe Zeitreferenz Tclock verwenden, stimmen ihre Eingang/Ausgang-Transfereigenschaften (Digital/Zeit und Zeit/Digital) in erster Ordnung überein und beeinflussen daher Genauigkeit nicht.
  • Im Sinne von Hardware- und Energieverbrauchseffizienz kann das vorgeschlagene Schema mehrere Vorteile aufweisen. In erster Ordnung ist eine der nur analogen Schaltungen, die in der Schnittstelle verwendet werden können, ein Komparator pro Bitleitung, der einmal pro Punktproduktberechnung verwendet wird, der den Ruheleistungsverbrauch der Schnittstellenschaltung minimiert und ihren Durchsatz (verglichen mit einer ADC-Schnittstelle) maximiert. Die Ladungsintegration kann passiv unter Verwendung von Bitleitungskapazitäten oder aktiv mit einem aktiven Integrator für mehr Genauigkeit erfolgen, jedoch kann der Bitleitungsintegrator mit Niederleistungsschaltungen wie Inverter-basierten aktiven Integratoren implementiert sein.
  • Die vorgeschlagene Zeitdomänenschnittstellentechnik kann bei verschiedenen Konfigurationen von Crossbar-Netzwerken basierend auf verschiedenen Speicherelementen (flüchtige wie SRAM oder nicht flüchtige wie Floating-Gate-Flash, ROM, RRAM, MRAM usw.) angewendet werden. Sie kann auch bei Netzwerken angewendet werden, die hybride Speicherarchitekturen implementieren, z.B. teilweise SRAM-basierte und teilweise ROM-basierte oder sämtliche Kombinationen verschiedener Speicherelemente zur speicherinternen Mischsignalberechnung.
  • Ein SRAM (Static Random-Access Memory, statischer Direktzugriffsspeicher) kann zum Speichern der Gewichte in Speicherberechnung verwendet werden. Der SRAM kann ein binäres Gewichtelement bereitstellen, das in Netzwerken zu verwenden ist, die entweder Mehrfachpegeleingänge oder binäre Eingänge verwenden. Der Punktproduktausgang kann auch binär oder in mehreren Pegeln sein. Jede Konfiguration kann ihre eigenen Eigenschaften und Vorteile und Nachteile aufweisen, wenn jedoch eine Mehrfachpegeleingangsaktivierung- und Mehrfachpegel-Punktproduktausgangsauswertung unter Verwendung von SRAM-Zellen angewendet wird, um die Gewichte zu speichern, stellt die vorgeschlagene Zeitdomänenschnittstelle Hardware- und Energieeffizienz wie auch ein hochpräzises Berechnungsergebnis verglichen mit dem Stand der Technik bereit, der Amplitudendomänenschnittstellen benutzt. Anschließend werden drei Architekturen vorgestellt, die eine ratiometrische Zeitdomänenschnittstelle mit SRAM-basierten Crossbar-Netzwerken verwenden.
  • 41 veranschaulicht ein Zeitdomänen-Mehrfachpegel-Aktivierungseingang-, Mehrfachpegel-Punktprodukt-Ausgang-, SRAM-basiertes speicherinternes Rechen-Crossbar-Netzwerk. Das in 41(a) gezeigte Netzwerk kann auf symmetrischer Stromintegration unter Verwendung von Einheitsimpedanzen und den TDC Bitleitungswandlern beruhen und passive Integration unter Verwendung von Bitleitungskapazitäten benutzen. 41(b) veranschaulicht Ersetzen des passiven Integrators durch einen aktiven Integrator. 41 (c) veranschaulicht Operation der Zeitdomänenschnittstelle mit Eingangs- und Ausgangszeitwerten. Die Ausführungsform dieses Crossbar-Netzwerks kann Einheitsleitwerte G verwenden, um den gespeicherten SRAM-Speicherinhalt in einen bipolaren Strom umzuwandeln (Push- und Pull-Stromkomponenten), der durch einen Differentialintegrator integriert wird. Die Differentialbitleitungsstruktur bedeutet, dass die binären Gewichtswerte als +1 und -1 Werte arbeiten. Jede Zelle benötigt 6 Transistoren (eine 6T-Zelle), wo 4 Transistoren den SRAM-Kern implementieren und 2 verwendet werden, um die Aktivierungssignale anzulegen. Der Integrator in 41(b) stellt bessere Integrationsgenauigkeit auf Kosten von mehr Energie und Chipfläche bereit. Die Operation des Netzwerks in 41(c) ist dieselbe wie die grundlegende Netzwerkarchitektur, die in 6a gezeigt ist. Sie startet bei einem Rücksetzzustand für die Bitleitungsintegratoren, wobei sie diese in eine Allgemeinmodus-Referenzspannung Vref zurücksetzt (z.B. bei der Hälfte der SRAM-Versorgung Vdd, d.h. Vref = 0,5 Vdd). Auf dies folgt die Anwendung der pulsbreitenmodulierten Aktivierungseingänge, Xi. Die Aktivierungszeitreferenz Ta und der TDC Referenztakt Tref sind auf einen Systemtakt Tclock synchronisiert. Der Gewichtsleitwert, G, führt zu einem Strom einer bipolaren Ladung (abhängig von dem gespeichertem SRAM-Wert) in den Bitleitungsintegrator, was zu einer Differentialspannung Vintj führt, die pro Bitleitung entwickelt wird. Nachdem die Eingänge angelegt wurden, wird ein START-Signal geltend gemacht, dass den Entladungszweig freigibt. Dieser Zweig verwendet zwei Einheitsleitwerten von G zur Entfernung der integrierten Ladung durch Ableiten derselben zurück zu Vref (dieselbe Anfangsbedingung, bei der der Integrator vor der Anwendung der Aktivierungseingänge gestartet ist). Der TDC startet die Zeitmessung, wenn das START-Signal geltend gemacht wird. Sobald der Integrator eine Null-Differentialspannung weiterleitet, stoppt der Komparator den TDC durch Erzeugen des STOPPj-Signals (41 (c)). Unter Verwendung von Gleichung (54) und Ersetzen von Va mit Vdd (SRAM-Versorgung wie auch die Amplitude für die pulsbreitenmodulierten Eingangsaktivierungen) und unter der Annahme, dass dasselbe Verhältnis zwischen den synchronisierten Zeitreferenzen vorliegt, wie (57) nahelegt, kann der digitale TDC-Ausgang 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 DE102021207661A1_0059
  • Dies zeigt ein Punktproduktergebnis, das in einer ersten Ordnung nur eine Funktion der ganzzahligen Aktivierungseingänge und der in den SRAM-Speichern gespeicherten Gewichte ist. Es sollte festgehalten werden, dass Leitwert G einfach durch den Einschaltwiderstand der Schalttransistoren in der 6T-Zelle dargestellt werden kann, wenn ein binäres Gewichtnetzwerk implementiert ist, und somit nicht unbedingt eine separate physische Impedanz sein muss.
  • 42 veranschaulicht eine SRAM-basierte Mehrfachpegeleingang-, Mehrfachpegelausgang-Zeitdomänenschnittstelle zu einem Crossbar-Netzwerk zur Punktproduktberechnung. 42(a) veranschaulicht ein Netzwerk, das auf vollständig symmetrischer Stromintegration unter Verwendung eines 8T-Zellen-SRAM und symmetrischen Stromquellen und einem übereinstimmenden, vollständig symmetrischen Entladungspfad und Zeitmessungsblöcken beruht. 42(b) veranschaulicht die Polarität der symmetrischen Stromintegration, bestimmt durch SRAM, und die Polarität der symmetrischen Entladungsphase, bestimmt durch Integratorpolarität und angewendet durch den ‚Chopper‘. 42(a) veranschaulicht einen anderen Ansatz für ein SRAM-basiertes Crossbar-Netzwerk mit ratiometrischer Zeitdomänenschnittstelle, wo anstelle von Einheitsimpedanzen Einheitstransistoren vollständig symmetrische Stromquellen implementieren, um Ladung auf den Bitleitungskapazitäten für die Zeitdauer zu integrieren, die durch Eingangsaktivierungen bestimmt ist. Hier ist eine 8 Transistor-(8T-) Zelle vorgeschlagen, wo 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 Wert bestimmt ist, der im SRAM gespeichert ist. Die Push- und Pull-Einheitsstromquellen in 8T-SRAM-Zellen werden auf einen Referenzzweig mit einem Strom Iref referenziert. Der Referenzstrom wird mit Hilfe der Referenzdiode repliziert, die mit Transistoren MPref und MNref verbunden ist, die Wortleitungsspannungen VGP und VGN erzeugen, die zum Vorspannen der 8T-Zellen-PMOS- und NMOS-Stromquellen verwendet werden. Diese stimmen mit MPref und MNref überein und erzeugen +/-Iref-Ströme. 42(b) zeigt, wie für zwei Zustände entsprechend Gewichtswerten +1 und -1 die symmetrische Einspeisungspolarität des Stroms bestimmt wird. Der SRAM-Zustand bestimmt, welche Stromquelle freigegeben wird und welche gesperrt wird, indem einfach ihre gemeinsamen Source-Anschlüsse auf Vdd (Versorgung) oder GND (Masse) vorgespannt werden. Die vorgeschlagene Verbindung garantiert die symmetrische Stromrichtung durch Ein- und Ausschalten der Stromquellen in entgegengesetzter Weise. Die Spannungen VGP und VGN werden an die 8T-Zellen-Stromquellentransistor-Gates durch die Wortleitungen für die Dauer angelegt, die durch die entsprechende Eingangsaktivierung X; bestimmt ist. Die gesamte funktionelle Operation des Netzwerks ist dieselbe wie die Ausführungsform von (41(c)). Eine zusätzliche Überlegung ist für die ratiometrische Entladungsphase verglichen mit einer solchen Ausführungsform erforderlich. Die Entladungsphase sollte durch Nutzung übereinstimmender symmetrischer Stromquellen für ratiometrische Operation ausgeführt werden. Die korrekte Entladungspolarität (die in Entfernung von Ladung von dem Integrator und nicht zu einem Hinzufügen von Ladung führt) wird durch Nutzung desselben Bitleitung-Komparatorausgangs bestimmt. Der Komparatorausgang hält einfach die Informationen bezüglich der Polarität der integrierten Ladung am Ende der Aktivierungsphase. Dieses Bit wird zum Steuern der Polarität verwendet, bei der der ‚Chopper‘-Block die NMOS- und PMOS-Entladestromquellen mit den Bitleitungen verbindet (siehe 42(b)). Der Chopper wird gesperrt, bis das START-Signal angelegt wird. In diesem Moment startet der TDC die Zeitmessung und die Entladungspfadeinheitsstromquellen entfernen Ladung von den Kondensatoren, der korrekten Polarität folgend, bis der Komparator auslöst (wenn der Integratorausgang null quert). Diese Ereignis, das durch die STOPP-Signale markiert ist, stoppt die TDC-Zeitmessung. Daher ist die Zeitdomänenoperation exakt jener der Architektur in 41(c) ähnlich.
  • Der passive Bitleitungsintegrator, gezeigt in 42(a) kann auch durch denselben aktiven Integrator, gezeigt in 41(b), ersetzt werden. Verglichen mit anderen Ausführungsformen stellt dieses Netzwerk Präzisionsladungsintegration und ratiometrische Ausgangsauswertung bereit. Für dieselben Zeitsteuerungsbedingungen, die in Ableitung von (59) angenommen wurden, ist der Netzwerkausgang:
  • 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 DE102021207661A1_0060
  • Was einmal mehr ein ratiometrischer Punktproduktausgang mit in einer ersten Ordnung Unabhängigkeit von Schaltungswerten ist. Es sollte festgehalten werden, dass die Architektur in 42 auch mit asymmetrischen Bitleitungen und unipolaren Stromquellen in sowohl Ladungs- als auch Entladungsphasen verwendet werden kann.
  • 43 veranschaulicht eine Ladungsgliederungsarchitektur. Die in 43(a) gezeigte Ladungsumverteilungsarchitektur implementiert eine Mehrfachpegeleingangsaktivierung- und Mehrfachpegelausgang-Zeitdomänenschnittstelle zu einer 8 Transistor SRAM-Zellen- (8T-Zellen) Architektur. Hier weist jede 8T-Zelle auch eine Einheitskapazität Cu auf, die abhängig von dem programmierten SRAM-Gewichtswert von +1 oder -1 zwischen ‚Vdd‘ und ‚GND‘ oder zwischen ‚GND‘ und ‚Vdd‘ geladen wird. Die Eingangsaktivierungen werden in einen Pulsstrang umgewandelt, wo die Anzahl von Pulsen gleich der ganzzahligen Eingangsaktivierung X; ist. Jeder Puls weist eine Einheitspulsbreite auf, die aus einem Signal Ta extrahiert ist, das mit dem Systemtakt Tclock synchron ist. Ein Abtasttakt TS hat dieselbe Periode wie Ta, hat aber im Vergleich zu Ta die entgegengesetzte Phase (43b). Jede Wortleitung sendet die Pulsstränge für Aktivierungen aus, wo sie von den 8T-Zellen bei Kreuzungen mit den Bitleitungen empfangen werden. Innerhalb der 8T-Zellen tasten Schalter, die von Eingangsaktivierungen betrieben werden, eine Ladung auf CU bei einer Polarität ab, die durch den SRAM-Wert bestimmt wird. Bei der entgegengesetzten Phase (definiert durch TS) wird die Ladung von allen Cus zu dem Integrator transferiert, der mit der Bitleitung verbunden ist (Integrator startet von einer Rücksetz-Nullphase). Sobald alle Eingangsaktivierungspulse angelegt sind, ist die Gesamtladung, die durch den Bitleitungsintegrator integriert ist, gleich:
  • Q j = V d d C U i = 0 n 1 W i j X i
    Figure DE102021207661A1_0061
  • Nach dieser Phase wird das START-Signal geltend gemacht (siehe 43(b)), wenn der TDC die Zeitmessung startet und gleichzeitig den Entladungspfad durch ein UND-Gate, das mit dem Abtasttakt TS verbunden ist, durch Umschalten eines Einheitsentladungskondensator Cu freigibt, um Leeren des Integrators zu starten. Die Entladungspolarität wird durch denselben Komparator bestimmt, der mit dem Bitleitung-Integratorausgang verbunden ist und für einen STOPP des TDC verwendet wird, wenn der Integrator geleert ist. Die Entladungszeit tOD,j kann durch die Gesamtladung, die entfernt wird, bis sich den anfänglichen Rücksetzzustand von null erreicht, und den effektiven Widerstand des Kondensators Cu, der bei Rate TS (TS = Ta) geschaltet wird, bestimmt werden:
  • 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 DE102021207661A1_0062
  • Zeit tOD,j wird mit dem TDC referenziert auf einen Referenztakt Tref gemessen, demselben synchronisierten Verhältnis folgend, wie durch Gleichung (57) beschrieben, wobei die digitale Ausgangszählung 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 DE102021207661A1_0063
  • Dies zeigt die ratiometrische Punktproduktausgangsberechnung als unabhängig von allen Schaltungsparametern in einer ersten Ordnung und nur als eine Funktion der ganzzahligen Aktivierungen und Gewichte. Es sollte festgehalten werden, dass die Bitleitungen mit vollständig differential geschalteten Kondensatorschaltungen implementiert sein können. Ferner muss die Integrationskapazität nicht mit der 8T-Zellenkapazität übereinstimmen, da die Integratorverstärkung für den ratiometrischen Punktproduktausgang irrelevant ist. Nur der Kondensator des Entladungspfads sollte als ein ganzzahliges Verhältnis der 8T-Zellenkapazität und mit derselben Art von Kondensator gefertigt sein. Der Wert dieser Kapazität und die Entladungstaktfrequenz sind auch für den Punktproduktausgang irrelevant, solange der Entladungstakt (im Fall von 43(a) wurde Abtasttakt TS verwendet) mit dem Haupttakt des Systems synchron ist.
  • 44 veranschaulicht Nur-Lese-Speicher- (ROM) basierte Beispiele für Zeitdomänenschnittstellenschemata, die bei Crossbar-Netzwerken zur speicherinternen Berechnung von Punktproduktberechnungen angewendet werden. Die Eingänge 4401 können von den Pulsgeneratoren 4403 empfangen werden. In 44(a) ist eine Ausführungsform einer grundlegenden Architektur mit ROM-basierten programmierbaren Gewichten gezeigt. In 44(b), eine Ausführungsform der Differential-Bitleitungsleitwert-basierten Architektur mit ROM-basierter Gewichtprogrammierung (Magnitude und Polarität). Die Zeitdomänen-Punktproduktmatrix-Multiplikations- und Additions-Crossbar Netzwerke, die in anderen Ausführungsformen (wie 40-43) gezeigt sind, können für Implementierungen in Betracht gezogen werden, wo die Gewichtswerte als Nur-Lese-Speicher (ROM) hartverdrahtet sind. Dies ist für Anwendungen geeignet, wo von Netzwerkgewichten (oder Teil der Netzwerksgewichte) nicht erwartet wird, dass sie sich nach Implementierung der Hardware für speicherinterne Berechnung ändern. Diese Technik ermöglicht Programmierung von Gewichtpolarität oder sogar Wiegen von Werten, indem mehr Einheitsschaltungselemente wie Impedanzen (wie z.B. in 44 gezeigt) oder Stromquellen und Kondensatoren (wie z.B. unten in 45 gezeigt) einfach hergestellt und ausgewählt werden, in einer späteren Stufe verbunden zu werden, beispielsweise als eine Back End of Line-Metalloption oder eine NVM-Lasersicherungsoption. Die zugrundeliegende Hardware kann noch für ein anderes Muster von Gewichtswerten 4405 für ein anderes Produkt modifiziert werden. Verschiedene Teile des Netzwerks können noch mit SRAM-Speicherzellen als ein Hybrid einer SRAM- und ROM-Implementierung ausgeführt werden, um etwas Programmierbarkeit bereitzustellen.
  • Die Ausführungsform von 44 verändert die allgemeine Grundlinienarchitektur von 40 wie auch die Differentialstruktur von 41 (basierend auf Einheitsimpedanzen) und wurde daher zu einem ROM-basierten Zeitdomänen-Crossbar-Netzwerk umgewandelt und ist in 44 gezeigt. Zur Veranschaulichung wird eine Anzahl von Einheitsimpedanzen G in der Schaltung pro Wortleitungs- und Bitleitungskreuzung vorgefertigt und eine Metalloption erlaubt, dass eine gewünschte Anzahl von ihnen mit den Bitleitungen verbunden wird, und ermöglicht so eine Skalierung der Gewichtswerte. Die Polarität kann auch mit Hilfe des mittleren Abschnitts geändert werden, der bestimmt, welche Seite der Bitleitungsimpedanzen mit positiven oder negativen Spannungen verbunden werden sollte. Die ratiometrische Zeitdomänenoperation dieser Struktur bleibt verglichen mit 40 und 41 unverändert und stellt exakt dieselben Vorteile bereit.
  • 45 veranschaulicht eine ROM-basierte Zeitdomänenschnittstelle. 45(a) veranschaulicht eine Ausführungsform, die bei Ladungsumverteilung-basierten Crossbar-Netzwerk-Bitleitungen mit programmierbarem Kapazitätswert und Polarität angewendet wird. 45(b) veranschaulicht ein Referenzstromquelle-basiertes Crossbar-Netzwerk mit programmierbarer Strommagnitude und -polarität. Eine ROM-basierte Alternative zu den Strukturen von 42 und 43 ist in 45 gezeigt. Hier hat das Ladungsumverteilungsnetzwerk von 45(a) programmierbare Kapazitätswerte pro ROM-Zelle mit Hilfe einer Metalloption, die eine gewünschte Anzahl vorgefertigter Kondensators parallel einbringt und sie mit der Zelle verbindet. Ferner bestimmt eine weitere Metalloption, die sich in der Mitte befindet, die Gewichtspolarität durch Bestimmen der Kondensatorladungspolarität. Die Architektur in 45(b) ist eine vollständig symmetrische Stromintegrationsarchitektur basierend auf der Architektur von 42, wo vorgefertigte Einheitsstromquellen mit Hilfe von Metalloptionen wie auch Polaritätsauswahloptionen mit den Bitleitungen verbunden werden können. Die ratiometrische Zeitdomänenoperation der Architekturen in den Ausführungsformen von 45 bleiben ähnlich jenen von Ausführungsformen, die in 42 und 43 gezeigt sind, mit allen damit verbundenen Vorteilen. Die ROM-basierten Architekturen können die Möglichkeit eines gewissen Grads an Gewichtprogrammierbarkeit nach Herstellung auf Kosten erhöhter Hardware für die vorgefertigten Elemente bereitstellen. Die Architekturen können mit SRAM-basierten Speichern kombiniert werden, um Teile des Netzwerks oder der Gewichte als ein Hybrid von ROM und SRAM für teilweise Programmierbarkeit zu implementieren.
  • 46 veranschaulicht ein Beispiel eines Floating-Gate-Flash- oder FeFET-basierten Crossbar-Netzwerks mit ratiometrischer Zeitdomänenschnittstelle. Die Eingänge 4601 können bei einem Pulsbreitengenerator 4603 empfangen werden. Die neuronalen Netzwerkgewichte können auf einem Chip in der Form eines nicht flüchtigen Speichers gespeichert (programmiert) werden. Dies ermöglicht eine rekonfigurierbare Hardware (im Gegensatz zu ROM-basierten Netzwerken), die leistungszykliert werden kann, ohne die Netzwerkgewichte neu programmieren zu müssen (im Gegensatz zu SRAM-basierten Netzwerken). Weiter erlaubt eine Gewichtspeicherkapazität auf mehreren Ebenen eine Erhöhung der Netzwerkleistung (im Gegensatz zu binären Gewichten) wie auch Sparen von Chip-Fläche (im Gegensatz zu ROM- und SRAM-basierten Ansätzen). Ein Verfahren zum Implementieren solcher speicherinternen Rechenschemata ist durch Einsetzen von Floating-Gate-Flash-Speicherarchitekturen, wo die Gewichte in der Schwellenspannung eines Transistors gespeichert sind. Ein anderer Ansatz ist die Nutzung eines ferroelektrischen Feldeffekttransistors (FeFET), wo die magnetische Polarisation einer ferroelektrischen Schicht einer Gate-Struktur des Transistors hinzugefügt wird und ein nicht flüchtiges Speicherverfahren bereitstellt. Crossbar-Netzwerke mit speicherinterner Berechnung zur Berechnung von Matrix-Punktprodukten können unter Nutzung solcher Vorrichtungen ausgeführt werden. Die ratiometrische Zeitdomänenaktivierungs- und Ausgangsauswertungstechniken können bei diesen Netzwerken angewendet werden, um die grundlegenden Vorteile von ratiometrischer Messung, Linearität, kleinem Fußabdruck und skalierbarer Schnittstelle bereitzustellen. Die Struktur, die den Floating Gate-Transistor oder den FeFET beinhaltet, wird gleich behandelt wie eine 2 Transistor- (2T) Zelle mit einem Transistor, der als ein Zugangsschalter dient, und dem anderen Transistor als ein programmierbarer Schwellenspannungstransistor, der das Gewicht des neuronalen Netzwerks implementiert. Die programmierbaren Schwellentransistoren können entweder als ein variabler Widerstand in der Triodenregion der Operation oder als eine Stromquelle in der Subschwellen- oder Sättigungsregion der Operation verwendet werden. In stärker vereinfachten Implementierungen vereint eine 1 T-Zelle den Auswahlschalter auf der Ebene der Wortleitung 4607.
  • Wenn programmierbare Schwellentransistoren als ein Widerstand verwendet werden, ist der Kanalleitwert Gij des Transistors bestimmt durch:
  • G i j = β ( V g s V T H , i j )
    Figure DE102021207661A1_0064
  • Wo Vgs die Transistor-Gate-Source-Spannung ist, β der Transistorparameter proportional zu dem Aspektverhältnis seiner Dimensionen (Breite/Länge), Ladungsträgermobilität usw. ist und VTH,ij die programmierte Schwellenspannung durch das Floating oder magnetische Gate ist, die schließlich den Gewichtsleitwert Gij steuert. Zur Anordnung des Gewichtsleitwerts, um ein ganzzahliges Verhältnis von m zu haben, d.h. um Werte von: G, 2G, 3G, 4G usw. zu haben, müssen die programmierten Schwellenspannungen ein Verhältnis mit der Grundlinienschwellenspannung VTH,b erfüllen, das zu dem kleinsten Einheitsgewichtsleitwert G führt. Mit anderen Worten, damit ein Transistor einen Leitwert von m×G (mit m = 1, 2, 3, 4, ...) bereitstellt, sollte seine Schwellenspannung VTH,m verglichen mit dem Grundlinientransistor ein Verhältnis erfüllen von:
  • β ( V g s V T H , m ) = m G = m β ( V g s V T H , b )
    Figure DE102021207661A1_0065
  • Was ergibt:
  • V T H , m = m V T H , b + ( 1 m ) V g s
    Figure DE102021207661A1_0066
  • Der Designraum zum Erhalten eines linearen Verhältnisleitwerts unter Verwendung von Gleichung (63) ist vielleicht auf 3 oder 4 Leitwertstufen als die Grenzen für die kleinstmögliche Vgs begrenzt und die möglichen programmierten Schwellenspannungen sind begrenzt (durch Versorgungsspannungen und Transistoreigenschaften). Mit anderen Worten, aufgrund der Art von Gleichung 66 führt ein Erhalten größerer Leitwerten zu negativen Schwellenspannungspegeln für dieselbe Art von Transistor, die nicht realisierbar sein könnten (47 oben). Innerhalb des Designraums und nach Gleichung (66) können die ganzzahligen Verhältnisse zwischen Kanalleitwert in einer ersten Ordnung (für eine begrenzte Anzahl von Pegeln) und unter Verwendung desselben Aspektverhältnisses für die Transistoren erhalten werden. Mit dieser Überlegung kann eine ratiometrische Zeitdomänenschnittstelle bei einem Crossbar-Netzwerk angewendet werden, das Floating-Gate-Flash oder FeFET Transistoren verwendet.
  • 46 veranschaulicht Floating-Gate-Flash- oder FeFET-basierte Crossbar-Netzwerke mit ratiometrischer Zeitdomänenschnittstelle. 46(a) zeigt ein 2T-Zellen-basiertes Netzwerk 4620 basierend auf Transistorkanalleitwert (Triodenoperation). 46(b) veranschaulicht ein 2T-Zellen-basiertes Netzwerk basierend auf Stromquellen (Sub-Schwelle oder Sättigung). 46(c) veranschaulicht ein 1 T-Zellen-basiertes Netzwerk mit vereintem Wortleitungsschalter basierend auf Transistorkanalleitwert (Triodenoperation). 46(d) veranschaulicht ein 1T-Zellen-basiertes Netzwerk mit vereintem Wortleitungsschalter basierend auf Stromquellen (Sub-Schwelle oder Sättigung). Der Grundlinienleitwert G kann verwendet werden, um den Entladungspfad zu bilden. Dies ist in 46(a) gezeigt. Die Aktivierungen werden als pulsbreitenmodulierte Signale angewendet. Die Operation dieses Netzwerks ist jener von 40(a) ähnlich und ihr Ausgang ist durch Gleichungen (54) bis (58) bestimmt. Es sollte festgehalten werden, dass der Kanalleitwert durch die Drain-Source-Spannung Vds des Transistors moduliert ist und es daher besser ist, dass die Bitleitungen bei einer gesteuerten DC-Spannung gehalten werden, d.h. durch Verwenden des aktiven Integrators, der eine regulierte DC-Spannung an dem Summierungsknoten und nicht einen passiven Integrator verwendet. Eine Alternative zu Netzwerk von 46(a) ist in 46(c) gezeigt, wo ein 1T-Zellen-Transistor verwendet wird und der Auswahlschalter an der Wortleitung vereint ist.
  • Wenn programmierbare Schwellentransistoren als Stromquellen verwendet werden, dann folgt der Kanalstrom des Transistors dem Quadratgesetz, wenn in Sättigung betrieben:
  • I i j = 0.5 β ( V g s V T H , i j ) 2
    Figure DE102021207661A1_0067
  • Wenn der Transistor in Sub-Schwelle betrieben wird, folgt er einem exponentiellen Verhältnis:
  • 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 DE102021207661A1_0068
  • Wo Is ein Sättigungsstrom ist, n ein Transistorparameter in Sub-Schwelle ist und VT die thermische Spannung (25mV bei Raumtemperatur) ist. Für ein lineares Gewichtsverhältnis, das durch Iij implementiert ist, d.h. um den Kanalstrom des Transistors dahin zu bringen, ein ganzzahliges Verhältnis in Bezug auf einen Einheitstransistor mit Grundlinienschwellenspannung VTH,b zu haben, d.h. Im = m × Iref, sollte einmal mehr VTH, m angeordnet sein, die folgenden Verhältnisse zu haben:
  • Für die Sättigungsoperation:
  • V T H , m = m V T H , b + ( 1 m ) V g s
    Figure DE102021207661A1_0069
  • Für die Sub-Schwellenoperation:
  • V T H , m = V T H , b n V T ln ( m )
    Figure DE102021207661A1_0070
  • Einmal mehr setzen die Einschränkungen von Versorgung und min und max programmierbaren Schwellenwerten eine Grenze für die mögliche Anzahl von ausführbaren Pegeln, um ein ganzzahliges Verhältnis zwischen Gewichten zu erhalten. Die programmierbaren Schwellentransistoren können als Stromquellen in einem Crossbar-Netzwerk angeordnet sein, das die Netzwerkgewichte implementiert, wie in 46(b) gezeigt, enthaltend eine ratiometrische Zeitdomänenauslesung mit einem Entladungspfad, der mit einer Einheitsstromquelle benutzt wird. Die Operation dieses Netzwerks ist jener von 40(c) ähnlich und ihr ratiometrische Matrix-Punktproduktausgang wird durch Gleichung (58) abgeleitet. Eine Alternative zu dem Netzwerk von 46(b) ist in 12d gezeigt, wo ein 1 T-Zellentransistor verwendet wird, und der Auswahlschalter an der Wortleitung vereint ist.
  • Es sollte festgehalten werden, dass für die Implementierung einer größeren Anzahl von Gewichtspegeln mit dem ratiometrischen Zeitdomänenoperationsschema die Stromquelle-basierten Architekturen des Floating-Gate-Flash oder FeFET eine größere Anzahl von Pegeln ermöglichen als die Netzwerke, die Gewichte mit Hilfe von Kanalleitwert implementieren (obwohl negative Schwellenspannungen implementiert werden können, bedeutet jedoch Erzeugen der linearen Pegel Anwendung von annähernd null oder negativen Gate-Source-Spannungen, was weniger praktisch sein könnte). Stromquellenimplementierungen ermöglichen Pegel mit mehr ganzzahligen Verhältnissen mit positiven Schwellenspannungen, vorwiegend aufgrund ihrer exponentiellen Art der Stromquellenimplementierung (im Gegensatz zu der linearen Abhängigkeit des Kanalleitwerts von den programmierten Schwellenspannungen). Dies ist in 47 veranschaulicht, die die Schwellenspannungsbereiche für eine ganze Zahl von Pegeln veranschaulicht, die Leitwert und Stromquellen (in der Sättigungsregion und Subschwellenregion) implementieren. Dies ist kein Problem, wenn binäre Gewichten implementiert werden, wobei in diesem Fall Floating Gate- oder FeFET-Transistoren binär (EIN/AUS) arbeiten. In diesem Fall arbeiten die Zeitdomänennetzwerke von 46(a) und 46(b) auf dieselbe Weise und haben dieselben ratiometrischen Operationsvorteile.
  • 47 veranschaulicht den Bereich von VTH,ij, um linear skalierte Gewichte eines Crossbar-Netzwerks unter Verwendung von Kanalleitwerten (oben) oder Stromquellen in Sättigung (Mitte) oder Sub-Schwelle (unten) zu implementieren.
  • Resistive Speicher (Memristoren) wie RRAM oder Phasenänderungsspeicher (PCM) usw. stellen eine flächeneffiziente Möglichkeit bereit, neuronale Netzwerkgewichte unter Verwendung von Speicherelementen für den Zweck einer speicherinternen Berechnung zu implementieren. Implementieren von Crossbar-Netzwerken, die Matrix-Punktprodukte berechnen, unter Verwendung von Memristoren kann mit der vorgeschlagenen ratiometrischen Zeitdomänenschnittstelle kombiniert werden, um Flächen- und Energieeffizienz zu maximieren, wie auch einen skalierbare Schnittstelle bereitzustellen, die in einer ersten Ordnung von den Prozess-, Temperatur- und Spannungsvariationen der Schaltungselemente unabhängig ist. Mehrere Ausführungsformen können für die Architektur benutzt werden.
  • In einer ersten Ausführungsform kann die Ausführungsform auf der grundlegenden Architektur basieren, die in 40 gezeigt ist, und wird durch Ersetzen des Gewichtsleitwerts G.Wij mit programmierbaren Memristorelementen, die diese Leitwerte implementieren, und unter Verwendung des Grundlinienmemristorleitwerts G, um einen Entladungspfad zu implementieren, der die ratiometrischen Ladungs- und Entladungsoperationen ermöglicht, erreicht. Die Zeitdomänenauswertung der Entladungszeit, mit den Bedingungen von übereinstimmenden Gewicht- und Entladungspfadelementen wie auch synchronisierten Zeitreferenzen, führt zu einem Punktprodukt, das in einer ersten Ordnung eine Funktion der ganzzahligen Eingangs- und Gewichtsskalierungswerte ist. Gleichung (58) stellt den Ausgang dar und die Integrationsfunktion kann mit Hilfe von aktiver (Integrator mit einem Verstärker) oder passiver (Bitleitungskapazität) Integration implementiert werden.
  • 48 veranschaulicht eine zweiphasige passive Entladung, die eine Bitleitungskapazität und den Memristorleitwert nutzt. Unter der Annahme der Verfügbarkeit eines Vorzeichenkomparators mit ausreichender Eingangsallgemeinmodus-Spannungsrückweisungskapazität, unterscheidet sich dieser Ansatz etwas von anderen Ausführungsformen in dem Sinn, wie die ratiometrische Zeitmessung durchgeführt wird. Wie in 48a veranschaulicht, kann dieser Ansatz eine zweiphasige Entladung unter Verwendung der Bitleitungskapazitäten CBL und des Memristorleitwerts, die unterschiedlich um einen Grundlinienleitwert G0 angeordnet sind, durch bipolare ganzzahlige Gewichte ±Wij nutzen, die einen Einheitsleitwert Gu skalieren (Leitwerteigenschaft 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 DE102021207661A1_0071
  • Die Differential-Bitleitungsspannungen, die mit VBLj und VBLbj angegeben sind, jeweils verbunden mit einer Kapazität CBL, haben Entladungspfade zur Masse. Die Pulsbreitenmodulatoren 4803 steuern die Wortleitungen 4809, die an den Memristorschaltern befestigt sind. Diese stellen eine Entladungsphase 4813 der Bitleitungen 4802 zur Masse bereit, die durch gewichtete Memristoren und die Aktivierungspulsbreiten geregelt ist. Ein zweiter Entladungspfad wird durch einen Referenzleitwert gesteuert und stellt ratiometrische Zeitmessung bereit. Zwei analoge Komparatoren, die mit den zwei Anschlüssen jeder Differentialbitleitung verbunden sind, vergleichen die Bitleitungsspannungen VBLj und VBLbj mit einer Schwellenspannung Vref (Komparatoren könnten auch unter Bitleitungen auf Kosten von Durchsatz geteilt werden). Die Operation des Zeitdomänenauslesungsschemas ist in 48(b) gezeigt. Die Bitleitungen starten von einem Vorladungszustand zu einer Vorladespannung, VP. Dann werden die pulsbreitenmodulierten Aktivierungssignale (skaliert durch Aktivierungseingänge Xi und synchron zu einer Zeitreferenz Ta) angewendet. Die Aktivierungen treiben Schalter an, die die Bitleitungskondensatoren durch den Gewichtsleitwert für die Dauer entladen, die durch die Aktivierung bestimmt ist. Sobald alle Aktivierungen angewendet sind (wie in 48(b) gezeigt), führt die Überlagerung der exponentiellen Entladungszeiten durch die gewichteten Zeitkonstanten zu einer Gesamtdifferentialspannung VOD über die 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 DE102021207661A1_0072
  • In der zweiten Phase werden die Bitleitungen durch die Referenzleitwertzweige mit Leitwert Gref entladen und durch die Entladungsschalter freigegeben, die durch ein ‚Entladungs‘-Signal gesteuert werden. Während dieser Phase kreuzt schließlich jede Bitleitungsspannung den Schwellenpegel, Vref, zu welchem Zeitpunkt der entsprechende Komparator ein logisches Signal erzeugt. Ein Logikblock empfängt beide Komparatorausgänge und erzeugt START- und STOPP-Signale (START wird erzeugt, wenn der erste Komparator auslöst, und STOPP, wenn der zweite Komparator auslöst). Diese Signale werden zu dem Zeit/Digital-Wandler (TDC) 4819 der Bitleitung geleitet, der die Zeit tOD,j zwischen START- und STOPP-Ereignissen misst. Die tOD,j Zeit ist die Differenz zwischen der Zeit, die notwendig ist, damit jede Bitleitung aus ihrem Zustand nach der Anwendung der Aktivierungen entlädt, zu der Komparatorschwellenspannung Vref (siehe 48(b)), angegeben mit tdis,Pj und tdis,Mj und 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 DE102021207661A1_0073
    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 DE102021207661A1_0074
    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 DE102021207661A1_0075
  • Durch Wählen von Gref als ein ganzzahliges Vielfaches von Gu, d.h. Gref = M.Gu, ist die Zeitdomänenmessung von tOD,j im Sinne von Leitwert ratiometrisch: t O D = 2 T a M j = 0 n 1 W i j X j
    Figure DE102021207661A1_0076
  • Die Funktion eines Zeit/Digital-Wandlers kann zu jener eines Zählers vereinfacht sein, der bis N zählt, das die Anzahl von Perioden eines Referenztakts mit Periode Tref ist, die in die Zeitdauer tOD,j passen: 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 DE102021207661A1_0077
  • Durch Synchronisieren 4815 der Zeiteinheit Ta der pulsbreitenmodulierten Aktivierungen mit der Zeitreferenz Tref des TDC, wie durch Gleichung (57) beschrieben, ist die Quantisierungsfunktion (round(x)) nicht mehr notwendig und der digitalisierte ganzzahlige N Ausgang des TDC kann neu geschrieben werden als: Y j = 2 k M j = 0 n 1 W i j X j
    Figure DE102021207661A1_0078
  • Dies zeigt das vorgeschlagene Schema, das eine lineare und ratiometrische Auswertung des Matrix-Punktproduktausgangs implementiert.
  • 49 veranschaulicht ein Memristor-basiertes passives Entladungsverfahren mit ratiometrischer Zeitdomäne-Punktproduktausgangsauswertung unter Verwendung eines Komparators. In 49(a) zeigt die Veranschaulichung Crossbar-Netzwerk und den Leitwert. 49(b) veranschaulicht Zeitdomänenoperation-Wellenformen. Eine Alternative zu der Operation des Netzwerks, die in 48(a) gezeigt ist, ist die in 49(a) gezeigte Implementierung. Hier kann ein einzelner Komparatorblock (anstelle von zwei) zweimal verwendet werden und die Referenzspannung Vref kann eliminiert werden. Nach der Anwendung der pulsbreitenmodulierten Aktivierungseingänge an den Wortleitungen und der Beendigung der gewichteten Entladung der Bitleitungskapazitäten, bestimmt der Komparator, welche der Bitleitungsspannungen, VBLj oder VBLbj die größere der zwei ist. Das Komparatorausgangssignal bestimmt dann, dass die Bitleitung mit der größeren Spannung durch den Referenzentladungspfad entladen wird, während die Ladung auf dem anderen Kondensator der Bitleitung (mit kleinerer Spannung) unverändert bleibt (siehe 49(b)). Dies wird einfach bei den Referenzpfad-Entladungssteuerschaltern mit Hilfe eines UND- und eines NICHT-Logikgates angewendet, wie in 49(a) gezeigt. Die Referenzpfadentladung startet, wenn das Steuersignal ‚Entladung/START‘ geltend gemacht wird, das die Bitleitung mit größter Spannung entlädt und die TDC-Zeitmessung startet. Wenn sich das Vorzeichen des Komparatoreingangs ändert, wenn zum Beispiel die Spannung des Entladungs-Bitleitungsanschlusses kleiner wird als die Nicht-Entladungsleitung, wechselt der Komparatorausgang und markiert das STOPP-Ereignis bei dem TDC, um die Zeitmessung zu stoppen. Die Zeitdifferenz zwischen dem START und STOPP bildet eine Zeit TOD,j, die durch Gleichsetzen der Zeit, die notwendig ist, die größere Spannungs-Bitleitung durch den Referenzleitwert Gref zu der Spannung der kleineren Spannungsbitleitung zu entladen, abgeleitet werden kann. Gleichsetzen der zwei Spannungen nach Zeit TOD,j führt zu:
  • 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 DE102021207661A1_0079
  • Neuanordnen der Gleichung führt zu:
  • 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 DE102021207661A1_0080
  • Wo 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 DE102021207661A1_0081
  • Gleichung (81) zeigt einmal mehr, dass der dritte Ansatz auch eine ratiometrische Auswertung des Crossbar-Netzwerk-Punktproduktausgangs mit Unabhängigkeit erster Ordnung von den Schaltungselementwerten mit synchroner Aktivierung und TDC-Zeitreferenzen (Gleichung 57) und ratiometrischen Impedanzpegeln (Gref = M.Gu) implementiert, was zu demselben digitalen Ausgang Yj wie durch Gleichung (78) beschrieben führt, z.B. nur eine Funktion von ganzzahligen Aktivierungen und Gewichten.
  • Die hier offenbarten Prozesse, Verfahren oder Algorithmen können an/durch eine Verarbeitungsvorrichtung, Steuerung oder einen Computer lieferbar/implementierbar sein, die jede bestehende programmierbare elektronische Steuereinheit oder zweckbestimmte elektronische Steuereinheit aufweisen können. Ebenso können die Prozesse, Verfahren oder Algorithmen als Daten und Anweisungen gespeichert sein, die durch eine Steuerung oder einen Computer in vielen Formen ausführbar sind, enthaltend, ohne aber darauf beschränkt zu sein, Informationen, die permanent auf nicht beschreibbaren Speichermedien wie ROM-Vorrichtungen gespeichert sind, und Informationen, die veränderbar auf beschreibbaren Speichermedien wie Disketten, Magnetbändern, CDs, RAM-Vorrichtungen und anderen magnetischen und optischen Medien gespeichert sind. Die Prozesse, Verfahren oder Algorithmen können auch in einem Software-ausführbaren Objekt implementiert sein. Alternativ können die Prozesse, Verfahren oder Algorithmen zur Gänze oder teilweise unter Verwendung geeigneter Hardwarekomponenten, wie anwendungsspezifischer integrierter Schaltungen (ASICs, Application Specific Integrated Circuits), feldprogrammierbarer Gate Arrays (FPGAs), Zustandsmaschinen, Steuerungen oder anderen Hardwarekomponenten oder Vorrichtungen oder einer Kombination von Hardware-, Software- und Firmware-Komponenten ausgeführt sein.
  • Während oben beispielhafte Ausführungsformen beschrieben sind, ist nicht beabsichtigt, dass diese Ausführungsformen alle möglichen Formen beschreiben, die durch die Ansprüche umfasst sind. Die Ausdrücke, die in der Beschreibung verwendet werden, sind Ausdrücke der Beschreibung und nicht der Einschränkung und es ist klar, dass verschiedene Änderungen vorgenommen werden können, ohne vom Wesen und Umfang der Offenbarung abzuweichen. Wie zuvor beschrieben, können die Elemente verschiedener Ausführungsformen kombiniert werden, um weitere Ausführungsformen der Erfindung zu bilden, die nicht ausdrücklich beschrieben oder veranschaulicht sein können. Während verschiedene Ausführungsformen beschrieben sein könnten, Vorteile bereitzustellen oder gegenüber andere Ausführungsformen oder Implementierungen am Stand der Technik in Bezug auf eine oder mehrere gewünschte Eigenschaften bevorzugt zu sein, erkennen Durchschnittsfachleute, dass ein oder mehrere Elemente oder eine oder mehrere Eigenschaften enthalten sein können, um gesamte Systemattribute zu erreichen, die von der spezifischen Anwendung und Implementierung abhängen. Diese Attribute können Kosten, Stärke, Dauerhaftigkeit, Lebenszykluskosten Vermarktbarkeit, Aussehen, Verpackung, Größe, Wartungsfähigkeit, Gewicht, Herstellbarkeit, leichte Montage usw. enthalten, ohne aber darauf beschränkt zu sein. Als solches sind, in dem Ausmaß in dem Ausführungsformen als weniger wünschenswert als andere Ausführungsformen oder Implementierungen am Stand der Technik in Bezug auf eine oder mehrere Eigenschaften beschrieben sind, diese Ausführungsformen nicht außerhalb des Umfangs der Offenbarung und können für bestimmten Anwendungen wünschenswert sein.

Claims (20)

  1. Schaltung, die konfiguriert ist, Matrix-Multiplikations- und Additionsrechnungen zu berechnen, aufweisend: einen Digital/Zeit-Wandler der konfiguriert ist, einen digitalen Eingang zu empfangen und ein Signal, das proportional zu dem digitalen Eingang und in Zeitdomäne verknüpft mit einer Referenzzeit moduliert ist, auszugeben; einen Speicher, der ein Crossbar-Netzwerk aufweist, wobei der Speicher konfiguriert ist, das zeitmodulierte Signal von dem Digital/Zeit-Wandler zu empfangen und ein gewichtetes Signal, das in Antwort auf Netzwerkgewichte des Crossbar-Netzwerks skaliert ist, und das zeitmodulierte Signal auszugeben; und eine Ausgangsschnittstelle in Kommunikation mit dem Crossbar-Netzwerk und konfiguriert, ihr gewichtetes Ausgangssignal zu empfangen und einen Digitalwert, der zu zumindest der Referenzzeit proportional ist, unter Verwendung eines Zeit/Digital-Wandlers auszugeben.
  2. Schaltung nach Anspruch 1, wobei die Schaltung einen Referenztakt, der mit dem Digital/Zeit-Wandler und dem Zeit/Digital-Wandler verknüpft ist, aufweist.
  3. Schaltung nach Anspruch 1, wobei die Netzwerkgewichte ein oder mehrere elektrische Elemente aufweisen, die konfiguriert sind, das Signal, das proportional zu dem digitalen Eingang und in Zeitdomäne moduliert ist, zu skalieren.
  4. Schaltung nach Anspruch 1, wobei die Schaltung einen Integrator zur Akkumulierung des gewichteten Signals, das in Antwort auf Gewichte des Crossbar-Netzwerks skaliert ist, und des zeitmodulierten Eingangssignals aufweist.
  5. Schaltung nach Anspruch 1, wobei die Schaltung einen ratiometrischen Entladungspfad aufweist, der ein oder mehrere elektrische Elemente aufweist, deren Werte proportional zu elektrischen Gewichtelementen in dem Crossbar-Netzwerk sind.
  6. Schaltung nach Anspruch 1, wobei der ratiometrische Entladungspfad eine elektrische Verbindung zu einem Integratorausgang hat.
  7. Schaltung nach Anspruch 1, wobei die Schaltung einen Komparator aufweist, der eine elektrische Verbindung zu einem Integratorausgang hat.
  8. Schaltung nach Anspruch 1, wobei die Schaltung einen Komparatorausgang aufweist, der konfiguriert ist, den Zeit/Digital-Wandler anzutreiben.
  9. Schaltung nach Anspruch 1, wobei die Schaltung konfiguriert ist, eine zweistufige Operation auszuführen, die einen ersten Akkumulationsschritt aufweist, der eine anfängliche Bedingung für Referenzentladungsphase einer zweiten Stufe aufweist.
  10. Schaltung nach Anspruch 1, wobei die Schaltung konfiguriert ist, einen Start einer Zeitmessung durch den Zeit/Digital-Wandler auszulösen, wobei der Start der Zeitmessung mit einem Start einer ratiometrischen Entladungsoperation synchronisiert ist.
  11. Schaltung nach Anspruch 1, wobei die Schaltung konfiguriert ist, einen Stopp einer Zeitmessung durch den Zeit/Digital-Wandler in Antwort auf einen Komparator auszulösen, wobei ein Stopp der Zeitmessung mit einem Ende einer ratiometrischen Entladungsphase synchronisiert ist.
  12. Schaltung, die konfiguriert ist, Matrix-Multiplikations- und Additionsrechnungen zu berechnen, aufweisend: einen Digital/Zeit-Wandler der konfiguriert ist, einen digitalen Eingang zu empfangen und ein Signal, das proportional zu dem digitalen Eingang und in Zeitdomäne verknüpft mit einer Referenzzeit moduliert ist, auszugeben; einen Speicher, der ein Crossbar-Netzwerk aufweist, wobei der Speicher konfiguriert ist, ein zeitmoduliertes Signal von dem Digital/Zeit-Wandler zu empfangen und ein gewichtetes Signal, das auf Netzwerkgewichte des Crossbar-Netzwerks skaliert ist, und das zeitmodulierte Eingangssignal auszugeben, wobei sich die Netzwerkgewichte auf einer oder mehreren Bitleitungen oder Wortleitungen des Crossbar-Netzwerks befinden; und eine Ausgangsschnittstelle in Kommunikation mit dem Crossbar-Netzwerk und konfiguriert, ihr gewichtetes Ausgangssignal zu empfangen, und einen Digitalwert, der zu zumindest der Referenzzeit proportional ist, unter Verwendung eines Zeit/Digital-Wandlers auszugeben.
  13. Schaltung nach Anspruch 12, wobei der Digital/Zeit-Wandler und die Zeit/Digital-Wandler konfiguriert sind, synchronisiert zu sein, um eine Taktreferenzvariation in dem gewichteten Ausgangssignal zu beseitigen.
  14. Schaltung nach Anspruch 12, wobei die Schaltung konfiguriert ist, einen ratiometrischen Entladungspfad, der konfiguriert ist, eine Ladung zu einer Referenzspannung oder durch einen Referenzstrom oder eine Referenzladungsumverteilungsschaltung abzuleiten, und einen Komparator, der konfiguriert ist, einen Zeit/Digital-Wandler auszulösen, aufzuweisen.
  15. Schaltung nach Anspruch 12, wobei die Schaltung einen Komparator aufweist, der angeordnet ist, den Zeit/Digital-Wandler synchron mit den Akkumulations- und Entladungsoperationen des Crossbar-Netzwerks auszulösen.
  16. Schaltung nach Anspruch 12, wobei die Netzwerkgewichte ein oder mehrere SRAM- oder ein oder mehrere ROM-Speicherelemente oder eine Kombination von SRAM und ROM oder einem oder mehreren Flash-Speicherelementen oder einem oder mehreren resistiven Speicherelementen aufweisen.
  17. Schaltung nach Anspruch 12, wobei die Netzwerkgewichte Transistoren und Einheitszellen-Kondensatorelemente zum Akkumulieren gewichteter Ladung, die proportional zu einer Anzahl von Eingangspulsen sind, und einen ratiometrischen Entladungspfad unter Verwendung derselben Einheitszellenkondensatoren, um die akkumulierte Ladung zu entladen, aufweisen.
  18. Schaltung nach Anspruch 12, wobei die Schaltung eine ratiometrische Zeitdomänenschnittstelle zu dem Crossbar-Netzwerk aufweist, wobei das Crossbar-Netzwerk symmetrische oder asymmetrische Stromintegration unter Verwendung asymmetrischer oder symmetrischer Stromquellen mit oder ohne Speicherelemente(n) für gewichtete Akkumulation und ratiometrischen Entladungspfad mit übereinstimmenden symmetrischen Stromquellen zur Entladung einer akkumulierten Ladung aufweist.
  19. Schaltung, die konfiguriert ist, Matrix-Multiplikations- und Additionsrechnungen zu berechnen, aufweisend: einen Digital/Zeit-Wandler der konfiguriert ist, einen digitalen Eingang zu empfangen und ein Signal, das proportional zu dem digitalen Eingang und in Zeitdomäne verknüpft mit einer Referenzzeit moduliert ist, auszugeben; einen Speicher, der ein Crossbar-Netzwerk aufweist, wobei der Speicher konfiguriert ist, ein zeitmoduliertes Signal von dem Digital/Zeit-Wandler zu empfangen und ein gewichtetes Signal, das auf Netzwerkgewichte des Crossbar-Netzwerks skaliert ist, und das zeitmodulierte Eingangssignal auszugeben, wobei die Netzwerkgewichte in Antwort auf nicht flüchtigen Speicher (NVM) eingestellt sind, konfiguriert, programmierbare Gewichte zu sein; und eine Ausgangsschnittstelle in Kommunikation mit dem Crossbar-Netzwerk und konfiguriert, ihr gewichtetes Ausgangssignal zu empfangen, und einen Digitalwert, der zu zumindest der Referenzzeit proportional ist, unter Verwendung eines Zeit/Digital-Wandlers auszugeben.
  20. Schaltung nach Anspruch 19, wobei das Crossbar-Netzwerk Leitwert oder Widerstände mit oder ohne Speicherelemente(n) aufweist, konfiguriert, Ladungs- oder Entladungszeitkonstanten oder asymmetrische oder symmetrische Ströme zur Ladung von Bitleitungsintegratoren zu bilden, und einen ratiometrischen Entladungspfad mit derselben Leitwertart aufweist.
DE102021207661.0A 2020-07-27 2021-07-19 Ratiometrische zeitdomänen-auslesungschnittstellen für speicherinterne, analoge mischsignal-rechen-crossbar-netzwerke Pending DE102021207661A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/940,124 US20220027130A1 (en) 2020-07-27 2020-07-27 Time domain ratiometric readout interfaces for analog mixed-signal in memory compute crossbar networks
US16/940124 2020-07-27

Publications (1)

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

Family

ID=79179499

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021207661.0A Pending DE102021207661A1 (de) 2020-07-27 2021-07-19 Ratiometrische zeitdomänen-auslesungschnittstellen für speicherinterne, analoge mischsignal-rechen-crossbar-netzwerke

Country Status (4)

Country Link
US (1) US20220027130A1 (de)
CN (1) CN113990371A (de)
DE (1) DE102021207661A1 (de)
TW (1) TW202205113A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022211998A1 (de) 2022-11-11 2024-05-16 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Betreiben einer Speichervorrichtung

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210125049A1 (en) * 2019-10-29 2021-04-29 Taiwan Semiconductor Manufacturing Co., Ltd. System for executing neural network
KR20230070753A (ko) * 2021-11-15 2023-05-23 삼성전자주식회사 디지털 펄스 기반 크로스바 연산을 수행하는 연산 장치 및 그 동작 방법
US11823740B2 (en) * 2021-12-08 2023-11-21 International Business Machines Corporation Selective application of multiple pulse durations to crossbar arrays
FR3140454A1 (fr) * 2022-09-30 2024-04-05 Commissariat A L'energie Atomique Et Aux Energies Alternatives Circuit de traitement logique de données intégré dans un circuit de stockage de données
EP4358087A1 (de) 2022-10-20 2024-04-24 Semron GmbH Anordnung einer pulsweiten gesteuerten vektor-matrix multiplikationseinheit mit kapazitiven elementen und verfahren zu dessen ansteuerung
CN116094882B (zh) * 2022-11-07 2023-09-22 南京大学 基于模拟存内计算的调制、解调方法及系统
CN115688897B (zh) * 2023-01-03 2023-03-31 浙江大学杭州国际科创中心 低功耗紧凑型Relu激活函数神经元电路

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11048434B2 (en) * 2018-09-28 2021-06-29 Intel Corporation Compute in memory circuits with time-to-digital computation
US10896242B2 (en) * 2019-03-01 2021-01-19 International Business Machines Corporation Resistive memory device for matrix-vector multiplications
JP2021002133A (ja) * 2019-06-20 2021-01-07 ソニー株式会社 演算装置及び積和演算システム
US11573792B2 (en) * 2019-09-03 2023-02-07 Samsung Electronics Co., Ltd. Method and computing device with a multiplier-accumulator circuit
US11657238B2 (en) * 2020-01-31 2023-05-23 Qualcomm Incorporated Low-power compute-in-memory bitcell
KR20210144417A (ko) * 2020-05-22 2021-11-30 삼성전자주식회사 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022211998A1 (de) 2022-11-11 2024-05-16 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Betreiben einer Speichervorrichtung

Also Published As

Publication number Publication date
CN113990371A (zh) 2022-01-28
US20220027130A1 (en) 2022-01-27
TW202205113A (zh) 2022-02-01

Similar Documents

Publication Publication Date Title
DE102021207661A1 (de) Ratiometrische zeitdomänen-auslesungschnittstellen für speicherinterne, analoge mischsignal-rechen-crossbar-netzwerke
DE102021207970A1 (de) Eine nurlesespeicherarchitektur für analoge matrixoperationen
DE102021208010A1 (de) Hardware-rechenstruktur für tiefe gleichgewichtsmodelle
DE112018000272T5 (de) Resistive Verarbeitungseinheit mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze
DE112018005726B4 (de) Resistive verarbeitungseinheit auf zählerbasis für programmierbare und rekonfigurierbare künstliche neuronale netzwerke
DE112016002943B4 (de) Neuromorphe Verarbeitungseinheiten
Liu et al. Event-based neuromorphic systems
DE60024030T2 (de) Auf Nadelpulsen basierter Analog-Digital-Wandlung des Stromtyps
DE112019000437B4 (de) Architektur einer resistiven verarbeitungseinheit mit voneinander getrennter gewichtungsaktualisierungs- und inferenzschaltung
TWI766799B (zh) 基於電流積分的存內脈衝神經網路
Loeffler et al. Neuromorphic learning, working memory, and metaplasticity in nanowire networks
DE112018002950T5 (de) System und Verfahren zum Aufbauen von synaptischen Gewichten für künstliche neuronale Netze aus mit Vorzeichen versehenen analogen Leitwertpaaren unterschiedlicher Wertigkeit
DE112021005864T5 (de) Nichtflüchtige analoge widerstands-speicherzellen zum verwenden von ferroelektrischen auswahltransistoren
DE102021115361A1 (de) Inferenzmaschine mit sehr geringer leistung und externer magnetfeldprogrammierung
Ahmadi-Farsani et al. A CMOS–memristor hybrid system for implementing stochastic binary spike timing-dependent plasticity
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
DE102021115503A1 (de) Mehrstufiger inferenzmaschinenbeschleuniger mit sehr niedrigem stromverbrauch
DE112020006162T5 (de) Neuronaler verstärker, neuronales netzwerk und sensorelement
DE112020003371T5 (de) Unterdrücken von ausreisserdriftkoeffizienten während des programmierens von phasenwechsel-speichersynapsen
DE102021101727A1 (de) Sram-basierte zelle für in-memory-computing und hybride rechen-/speicherarchitektur
DE102019119744A1 (de) Konfigurierbares präzises neuronales netz mit differentieller binärer, nichtflüchtiger speicherzellenstruktur
Xia et al. Fully Integrated Memristor System for Neuromorphic and Analog Computing
EP4016395A1 (de) Synapsenschaltung zum drei-faktor-lernen
DE112020005262T5 (de) Kapazitive verarbeitungseinheit

Legal Events

Date Code Title Description
R012 Request for examination validly filed