DE102022100200A1 - Compute-In-Memory-Speicherarray, CIM-Speicherarray - Google Patents

Compute-In-Memory-Speicherarray, CIM-Speicherarray Download PDF

Info

Publication number
DE102022100200A1
DE102022100200A1 DE102022100200.4A DE102022100200A DE102022100200A1 DE 102022100200 A1 DE102022100200 A1 DE 102022100200A1 DE 102022100200 A DE102022100200 A DE 102022100200A DE 102022100200 A1 DE102022100200 A1 DE 102022100200A1
Authority
DE
Germany
Prior art keywords
group
memory cells
memory
array
cim
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
DE102022100200.4A
Other languages
English (en)
Inventor
Yen-An Chang
Yu-Lin Chen
Chia-Fu Lee
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.)
Taiwan Semiconductor Manufacturing Co TSMC Ltd
Original Assignee
Taiwan Semiconductor Manufacturing Co TSMC Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Taiwan Semiconductor Manufacturing Co TSMC Ltd filed Critical Taiwan Semiconductor Manufacturing Co TSMC Ltd
Publication of DE102022100200A1 publication Critical patent/DE102022100200A1/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/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
    • 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/408Address circuits
    • G11C11/4085Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • G11C5/063Voltage and signal distribution in integrated semi-conductor memory access lines, e.g. word-line, bit-line, cross-over resistance, propagation delay
    • 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • 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
    • 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/4091Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
    • 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
    • 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/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Neurology (AREA)
  • Semiconductor Memories (AREA)
  • Dram (AREA)
  • Debugging And Monitoring (AREA)
  • Static Random-Access Memory (AREA)

Abstract

Eine Speichervorrichtung für Compute-In-Memory (CIM) weist ein Speicherarray mit einer Mehrzahl von Speicherzellen auf, die in einem Array von Zeilen und Spalten angeordnet sind. Die Speicherzellen weisen eine erste Gruppe von Speicherzellen und eine zweite Gruppe von Speicherzellen auf. Jede Zeile des Arrays enthält eine entsprechende Wortleitung, wobei jede Speicherzelle einer Zeile des Arrays mit der entsprechenden Wortleitung verbunden ist. Jede Spalte des Arrays enthält eine entsprechende Bitleitung, wobei jede Speicherzelle einer Spalte des Arrays mit der entsprechenden Bitleitung verbunden ist. Eine Steuerschaltung ist so konfiguriert, dass sie als Reaktion auf ein Gruppenaktivierungssignal die erste Gruppe von Speicherzellen oder die zweite Gruppe von Speicherzellen auswählt.

Description

  • PRIORITÄTSANSPRUCH UND QUERVERWEIS
  • Die vorliegende Anmeldung beansprucht die Priorität der am 21. Mai 2021 eingereichten vorläufigen US-Patentanmeldung mit dem Aktenzeichen 63/191.635 und dem Titel „COMPUTE IN MEMORY STORAGE DEVICE“ („Compute-In-Memory-Speichervorrichtung“), die durch Bezugnahme in die vorliegende Anmeldung aufgenommen ist.
  • HINTERGRUND
  • Die vorliegende Erfindung betrifft allgemein In-Memory-Computing oder Compute-In-Memory (CIM) und insbesondere Speichermatrizen, die bei der Datenverarbeitung, wie etwa Multiply-Accumulate-Operationen (MAC-Operationen), verwendet werden. Compute-In-Memory- oder In-Memory-Computing-Systeme speichern Informationen in einem Haupt-Direktzugriffsspeicher (Haupt-RAM) von Computern und führen Berechnungen auf einer Speicherzellen-Ebene aus, statt für jeden Rechenschritt große Mengen von Daten zwischen dem Haupt-RAM und einem Datenspeicher zu verschieben. Da auf gespeicherte Daten viel schneller zugegriffen werden kann, wenn sie in einem RAM gespeichert sind, können die Daten durch Compute-In-Memory in Echtzeit analysiert werden, was ein schnelleres Melden und Entscheiden bei Geschäfts- und Machine-Learning-Anwendungen ermöglicht.
  • Figurenliste
  • Aspekte der vorliegenden Offenbarung lassen sich am besten anhand der folgenden detaillierten Beschreibung in Verbindung mit den beiliegenden Zeichnungen verstehen. Es ist zu beachten, dass gemäß der branchenüblichen Praxis verschiedene Merkmale nicht maßstabsgetreu dargestellt sind. Vielmehr können die Abmessungen der verschiedenen Merkmale zugunsten einer klaren Erläuterung willkürlich vergrößert oder verkleinert sein. Außerdem sind die Zeichnungen als Beispiele für Ausführungsformen der Erfindung nur erläuternd, und sie sollen nicht beschränkend sein.
    • 1 zeigt ein Blockdiagramm eines Beispiels für Aspekte eine CIM-Vorrichtung gemäß einigen Ausführungsformen.
    • 2 ist ein Schaltbild, das ein Beispiel für ein CIM-Speicherarray gemäß einigen Ausführungsformen zeigt.
    • 3 ist ein Schaltbild, das ein Beispiel für eine CIM-Speicherzelle gemäß einigen Ausführungsformen zeigt.
    • 4 ist ein Schaltbild, das ein Beispiel für eine Multiplikationsschaltung gemäß einigen Ausführungsformen zeigt.
    • 5 ist ein Schaltbild, das ein Beispiel für eine weitere Multiplikationsschaltung gemäß einigen Ausführungsformen zeigt.
    • 6 ist ein Blockdiagramm, das ein Beispiel für eine Operation gemäß einigen Ausführungsformen zeigt, bei der ein CIM-Eingangssignal mit einem CIM-Gewichtssignal multipliziert wird.
    • 7 ist ein Blockdiagramm, das ein Beispiel für eine Operation gemäß einigen Ausführungsformen zeigt, bei der ein CIM-Eingangssignal mit einem CIM-Gewichtssignal multipliziert wird und anschließend eine Addition durchgeführt wird.
    • 8 ist eine schematische Darstellung, die ein Beispiel für zwei wählbare Arraygruppen ein CIM-Speicherarray gemäß einigen Ausführungsformen zeigt.
    • 9 ist eine schematische Darstellung, die ein Beispiel für vier wählbare Arraygruppen eines CIM- Speicherarrays gemäß einigen Ausführungsformen zeigt.
    • 10 ist ein Ablaufdiagramm, das ein CIM-Verfahren gemäß einigen Ausführungsformen zeigt.
  • DETAILLIERTE BESCHREIBUNG
  • Die nachstehende Beschreibung liefert viele verschiedene Ausführungsformen oder Beispiele zum Implementieren verschiedener Merkmale des bereitgestellten Gegenstands. Nachstehend werden spezielle Beispiele für Komponenten und Anordnungen beschrieben, um die vorliegende Erfindung zu vereinfachen. Diese sind natürlich lediglich Beispiele und sollen nicht beschränkend sein. Zum Beispiel kann die Herstellung eines ersten Elements über oder auf einem zweiten Element in der nachstehenden Beschreibung Ausführungsformen umfassen, bei denen das erste und das zweite Element in direktem Kontakt hergestellt werden, und sie kann auch Ausführungsformen umfassen, bei denen zusätzliche Elemente zwischen dem ersten und dem zweiten Element hergestellt werden können, sodass das erste und das zweite Element nicht in direktem Kontakt sind. Darüber hinaus können in der vorliegenden Erfindung Bezugszahlen und/oder -buchstaben in den verschiedenen Beispielen wiederholt werden. Diese Wiederholung dient der Einfachheit und Übersichtlichkeit und schreibt an sich keine Beziehung zwischen den verschiedenen erörterten Ausführungsformen und/oder Konfigurationen vor.
  • Darüber hinaus können hier räumlich relative Begriffe, wie etwa „unter“, „unterhalb“, „unten“, „über“, „auf“, „oberhalb“, „oben“ und dergleichen, zur einfachen Beschreibung der Beziehung eines Elements oder einer Struktur zu einem oder mehreren anderen Elementen oder Strukturen verwendet werden, die in den Figuren dargestellt sind. Die räumlich relativen Begriffe sollen zusätzlich zu der in den Figuren dargestellten Orientierung andere Orientierungen der in Gebrauch oder in Betrieb befindlichen Vorrichtung umfassen. Die Vorrichtung kann anders ausgerichtet werden (um 90° gedreht oder in einer anderen Orientierung), und die räumlich relativen Deskriptoren, die hier verwendet werden, können entsprechend interpretiert werden.
  • Die vorliegende Erfindung betrifft allgemein Compute-In-Memory (CIM). Ein Beispiel für CIM-Anwendungen sind Multiply-Accumulate-Operationen (MAC-Operationen). Für die künstliche Intelligenz (KI) von Computern werden Deep-Learning-Methoden verwendet, wobei ein Rechensystem als ein neuronales Netzwerk organisiert sein kann. Ein neuronales Netzwerk bezeichnet eine Mehrzahl von miteinander verbundenen Verarbeitungsknoten, die zum Beispiel eine Analyse von Daten ermöglichen. Neuronale Netzwerke berechnen „Gewichte“ zum Durchführen einer Berechnung an neuen Eingangsdaten. Neuronale Netzwerke verwenden mehrere Schichten von Rechenknoten, wobei tiefere Schichten Berechnungen aufgrund von Ergebnissen von Berechnungen durchführen, die von höheren Schichten durchgeführt worden sind.
  • Beim Machine Learning (ML) werden Computeralgorithmen verwendet, die sich automatisch durch Erfahrung und durch Verwenden von Daten verbessern können. Dies wird als ein Teil der künstlichen Intelligenz angesehen. Mit Machine-Learning-Algorithmen wird ein Modell aufgrund von Beispieldaten erzeugt, die als „Trainingsdaten“ bekannt sind, um Vorhersagen oder Entscheidungen zu treffen, ohne dass diese Algorithmen explizit dafür programmiert sind.
  • Neuronale Netzwerke können eine Mehrzahl von miteinander verbundenen Verarbeitungsknoten umfassen, die eine Datenanalyse zum Vergleichen einer Eingabe mit diesen „trainierten“ Daten ermöglichen. Trainierte Daten beziehen sich auf eine computergestützte Analyse von Eigenschaften bekannter Daten, um Modelle zur Verwendung zum Vergleichen von Eingangsdaten zu entwickeln. Ein Beispiel für eine Anwendung von KI und Datentraining ist bei der Objekterkennung zu finden, bei der ein System die Eigenschaften von zahlreichen (zum Beispiel mehreren Tausend) Bildern analysiert, um Muster zu bestimmen, die zum Durchführen einer statistischen Analyse verwendet werden können, um ein Eingangsobjekt zu identifizieren.
  • Wie vorstehend dargelegt worden ist, berechnen neuronale Netzwerke Gewichte, um eine Berechnung an Eingangsdaten durchzuführen. Neuronale Netzwerke verwenden mehrere Schichten von Rechenknoten, wobei tiefere Schichten Berechnungen aufgrund von Ergebnissen von Berechnungen durchführen, die von höheren Schichten durchgeführt worden sind. Machine Learning stützt sich zurzeit auf die Berechnung von Punktprodukten und absoluten Differenzen von Vektoren, die normalerweise mit MAC-Operationen berechnet werden, die an Parametern, Eingangsdaten und Gewichten ausgeführt werden. Für die Berechnung von großen und tiefen neuronalen Netzwerken werden normalerweise so viele Datenelemente verwendet, dass es nicht praktisch ist, sie in einem Prozessor-Cache zu speichern, und daher werden sie meistens in einem Speicher gespeichert.
  • Somit ist Machine Learning mit der Berechnung und dem Vergleich von zahlreichen unterschiedlichen Datenelementen sehr rechenintensiv. Die Berechnung von Operationen in einem Prozessor ist um Größenordnungen schneller als die Übertragung von Daten zwischen dem Prozessor und Hauptspeicherressourcen. Aufgrund der Speichergrößen, die zum Speichern der Daten benötigt werden, ist ein Abspeichern aller Daten näher an dem Prozessor in Caches für die große Mehrheit von praktischen Systemen unerschwinglich. Somit wird die Übertragung von Daten zu einem Engpass für KI-Berechnungen. Wenn die Datensätze größer werden, können die Zeit und die Energie, die ein Rechensystem zum Verschieben von Daten aufwendet, am Ende ein Vielfaches der Zeit und der Energie betragen, die zum eigentlichen Ausführen von Operationen verwendet werden.
  • CIM-Schaltungen führen daher Operationen lokal in einem Speicher aus, ohne Daten an einen Zentralrechner senden zu müssen. Dadurch kann die Datenmenge reduziert werden, die zwischen dem Speicher und dem Zentralrechner übertragen wird, was einen höheren Durchsatz und eine höhere Leistung ermöglicht. Durch die Reduzierung der Datenverschiebung wird auch der Energieverbrauch der gesamten Datenverschiebung in der Rechenvorrichtung gesenkt.
  • Diese CIM-Vorrichtungen können Folgendes aufweisen: ein Speicherarray mit Speicherzellen, die so konfiguriert sind, dass sie Gewichtssignale speichern; und einen Eingangstreiber, der Eingangssignale bereitstellt. Die CIM-Vorrichtung ist so konfiguriert, dass sie eine logische Operation an gewählten Gewichtssignalen und den Eingangssignalen ausführt, wobei zum Beispiel das gewählte Gewichtssignal mit dem Eingangssignal multipliziert werden kann. Eine Multiply-Accumulate-Schaltung führt MAC-Operationen aus, wobei jede MAC-Operation ein Produkt aus zwei Zahlen berechnet und dieses Produkt zu einem Akkumulator (oder Addierer) addiert. Bei einigen Ausführungsformen kann eine Verarbeitungsvorrichtung oder eine dedizierte MAC-Einheit oder -Vorrichtung eine computergestützte MAC-Hardware-Logik enthalten, die einen Multiplizierer aufweist, der in einer kombinatorischen Logik implementiert ist, an die sich ein Addierer und ein Akkumulator anschließen, die das Ergebnis speichern. Die Ausgabe des Akkumulators kann zu einem Eingang des Addierer zurückgeführt werden, sodass die Ausgabe des Multiplizierers zu dem Akkumulator addiert wird. Beispielhafte Verarbeitungsvorrichtungen sind unter anderem ein Mikroprozessor, ein Digitalsignalprozessor, eine anwendungsspezifische integrierte Schaltung und ein Universalschaltkreis.
  • Einige Gewichtspeicheranordnungen für CIM können aufgrund der Verwendung von großen Speicherzellen eine begrenzte Gewichtspeicherdichte haben, was auch zu einem begrenzten Schreibdurchsatz führen kann. Bei einigen offenbarten Ausführungsformen wird ein Ein-Transistor-ein-Kondensator(iT-iC)-basierter Gewichtsspeicher für CIM verwendet, was die Gewichtspeicherdichte durch Verwenden einer Speicherzelle mit kleiner Fläche sowie den Schreibdurchsatz der Gewichtspeicheranordnung erhöhen kann. Einige Beispiele sind außerdem eine „Multi-Select“-Gewichtspeicheranordnung, die ein Auswählen unter einer Mehrzahl von Speicherarraygruppen erleichtert, sodass unterschiedliche Operationen (z. B. Lesen oder Schreiben) an ausgewählten Speicherarraygruppen ausgeführt werden können. Außerdem können diese unterschiedlichen Operationen gleichzeitig an den ausgewählten Speicherarraygruppen ausgeführt werden. Diese selektive Gewichtspeicheranordnung erleichtert ein Multitasking und erhöht den Schreibdurchsatz der Gewichtspeicheranordnung.
  • Zum Beispiel können die Speicherarraygruppen eine erste und eine zweite selektive Gruppe umfassen, wobei die erste Gruppe geradzahlige Spalten des Arrays enthält und die zweite Gruppe ungeradzahlige Spalten des Arrays enthält. CIM-Gewichtswerte können als Reaktion auf ein Gruppenaktivierungssignal selektiv in die erste (geradzahlige) Gruppe und/oder in die zweite (ungeradzahlige) Gruppe geschrieben werden. Außerdem können, als Reaktion auf das Gruppenaktivierungssignal, CIM-Gewichtswerte selektiv in die erste (geradzahlige) Gruppe oder in die zweite (ungeradzahlige) Gruppe geschrieben werden, während CIM-Gewichtswerte selektiv aus der jeweils anderen der ersten (geradzahligen) Gruppe oder der zweiten (ungeradzahligen) Gruppe gelesen werden können. Die Anzahl von Speicherarraygruppen ist nicht auf zwei Gruppen beschränkt, und bei anderen Ausführungsformen können mehr als zwei Speicherarraygruppen verwendet werden.
  • 1 zeigt eine CIM-Vorrichtung 10 gemäß einigen offenbarten Ausführungsformen. Die CIM-Vorrichtung 10 weist ein CIM-Speicherarray 100 mit mehreren Speicherzellen auf, die so konfiguriert sind, dass sie CIM-Gewichtssignale speichern. Das Speicherarray 100 und zugehörige Komponenten und Schaltungen können zwischen einen Stromanschluss, der zum Empfangen einer VDD-Spannung konfiguriert ist, und einen Erdanschluss geschaltet werden. Wie später näher dargelegt wird, sind die Speicherzellen in einem Array von Zeilen und Spalten angeordnet, die eine Mehrzahl von Speicherarraygruppen 110 enthält. Eine Zeilenwählschaltung 102 und eine Spaltenwählschaltung 104 sind mit dem Speicherarray 100 verbunden und sind so konfiguriert, dass sie die Speicherzellen in gewünschten Zeilen und Spalten des Arrays für Lese- und Schreiboperationen auswählen.
  • In dem in 1 gezeigten Beispiel enthält das Speicherarray 100 eine erste Speicherarraygruppe 110-1, eine zweite Speicherarraygruppe 110-2 und so weiter bis zu einer Speicherarraygruppe 110-n. Eine Steuerschaltung 120 ist mit Bitleitungen verbunden und ist so konfiguriert, dass sie als Reaktion auf ein Gruppenaktivierungssignal die erste Gruppe von Speicherzellen oder die zweite Gruppe von Speicherzellen auswählt. Bei der dargestellten Ausführungsform umfassen die Steuerschaltungen 120 Steuerschaltungen 120-1,120-2... 120-n, die jeweils mit den Speicherarraygruppen 110-1, 110-2 ... 110-n verbunden sind.
  • Ein Eingangsanschluss ist so konfiguriert, dass er ein CIM-Eingangssignal IN empfängt, und eine Multiplikationsschaltung 130 ist so konfiguriert, dass sie die gewählten Gewichtssignale, die in dem Speicherarray 100 gespeichert sind, mit den Eingangssignalen IN multipliziert, um eine Mehrzahl von Teilprodukten P zu erzeugen. Bei der dargestellten Ausführungsform enthält die Multiplikationsschaltung 130 Multiplikationsschaltungen 130-1, 130-2 ... 130-n. Die Teilprodukte P werden an eine (einzelne) I/O-Addierschaltung 140 ausgegeben, die so konfiguriert ist, dass sie die Teilprodukte P addiert, um eine CIM-Ausgabe zu erzeugen.
  • 2 zeigt weitere Aspekte eines Beispiels für das Speicherarray 100. Wie vorstehend in Verbindung mit 1 dargelegt worden ist, weist das CIM-Speicherarray 100 eine Mehrzahl von Speicherzellen 200 auf, die in Zeilen und Spalten angeordnet sind. Jede Zeile des Speicherarrays 100 hat eine entsprechende Wortleitung WL. In dem dargestellten Beispiel hat das Array 100 N Zeilen. Dementsprechend werden die in 2 gezeigten Wortleitungen als Wortleitungen WL_o bis WL_N-1 bezeichnet. Jede Speicherzelle 200 ist mit der Wortleitung WL ihrer entsprechenden Zeile verbunden. Jede Spalte des Arrays 100 hat entsprechende Bitleitungen BL/BLB. In dem dargestellten Beispiel hat das Array 100 Y Spalten. Dementsprechend werden die in 2 gezeigten Bitleitungen als Bitleitungen BL[o] bis BL[Y-1] und BLB[o] bis BLB[Y-1] bezeichnet. Jede Speicherzelle 200 ist mit ihrer entsprechenden Bitleitung BL/BLB verbunden. Die Wortleitungen WL und die Bitleitungen BL/BLB können eine Leiterbahn oder eine Leitung sein, die aus einem leitfähigen Material hergestellt ist, wie zum Beispiel einem Metall oder silizidiertem/polycidiertem Polysilizium.
  • Leseverstärker 122 und Steuerschaltungen 120 sind mit den Bitleitungen BL/BLB jeder Spalte des Arrays 100 verbunden. Multiplexer (MUX) 124 sind mit Ausgängen der Leseverstärker 122 verbunden und geben als Reaktion auf ein Gewichtsauswahlsignal W_SEL die gewünschten Gewichtssignale, die in den Speicherarray 100 gespeichert sind, an die Multiplikationsschaltungen 130 aus. In dem in 2 gezeigten Beispiel ist das Speicherarray 100 in zwei Speicherarraygruppen 110-1 und 110-2 angeordnet, wobei die erste Gruppe 110-1 die geradzahligen Spalten (d. h., geradzahlige Bitleitungen BL[o]/BLB[o] ... BL[Y-2]/BLB[Y-2])) enthält und die zweite Gruppe 110-2 die ungeradzahligen Spalten (d. h., die ungeradzahligen Bitleitungen BL[i]/BLB[i] ... BL[Y-1]/BLB[Y-1]) enthält. Wie später näher dargelegt wird, sind die Steuerschaltungen 120 so konfiguriert, dass sie die erste Gruppe 110-1 von Speicherzellen oder die zweite Gruppe 110-2 von Speicherzellen als Reaktion auf ein Gruppenaktivierungssignal GROUP_EN auswählen.
  • Die CIM-Gewichtssignale werden in dem Speicherarray 100 gespeichert. Jede Zelle 200 in dem Array 100 speichert ein einzelnes Datenbit (d. h., eine logische Eins oder Null). In dem dargestellten Beispiel sind die Gewichtszellen 1T-1C-Speicherzellen, in denen das einzelne Datenbit als eine Ladung in einem Kondensator gespeichert wird. Bei anderen Ausführungsformen können auch andere Speicherzellen als 1T-1C-Speicherzellen verwendet werden.
  • 3 zeigt ein Beispiel für die 1T-1C-Speicherzelle 200 des in 2 gezeigten Speicherarrays 100. Die Speicherzelle 200 weist einen Transistor, wie etwa einen MOS-Transistor 202, und einen Speicherkondensator 204 auf. Der Transistor 202 arbeitet als ein Schalter, der zwischen dem Speicherkondensator 204 und der Bitleitung BL (oder BLB) angeordnet ist, wobei ein erster Source/Drain-Anschluss (S/D-Anschluss) des Transistors 202 mit der Bitleitung BL/BLB verbunden ist und ein zweiter S/D-Anschluss des Transistors 202 mit einem ersten Anschluss des Kondensators 204 verbunden ist. Ein zweiter Anschluss des Kondensators 204 ist mit einem Spannungsanschluss verbunden, der so konfiguriert ist, dass er einen Spannungspegel von ½VDD empfängt. In einigen Beispielen beträgt der VDD-Spannungspegel 1,0 V, aber bei anderen Ausführungsformen können zum Beispiel in Abhängigkeit von der speziellen Prozesstechnologie andere VDD-Spannungspegel verwendet werden. Die Speicherzelle 200 kann eine einzelne binäre Information als eine gespeicherte elektrische Ladung in dem Kondensator 204 speichern.
  • Ein Gate-Anschluss des Transistors 202 ist mit einer Wortleitung WL verbunden. Wie in 2 gezeigt ist, ist jede der Wortleitungen WL mit einer Mehrzahl von Speicherzellen 200 verbunden, wobei jede Zeile des Arrays 100 eine entsprechende Wortleitung WL enthält. Bei einigen Implementierungen kann der Gate-Anschluss des Transistors 202 ein verlängertes Segment aus demselben Material (z. B. Metall oder Polysilizium) sein, das zum Herstellen der Wortleitung WL verwendet wird.
  • Wie in 2 gezeigt ist, enthält jede Spalte des Speicherarrays 100 zwei Bitleitungen, d. h. BL/BLB. Somit enthält die erste Spalte des Speicherarrays 100 die Bitleitungen BL[o] und BLB[o], die zweite Spalte des Speicherarray 100 enthält BL[i] und BLB[1], und so weiter bis zu derY-ten Spalte, die BL[Y-1] und BLB[Y-1] enthält. Jede Bitleitung BL/BLB ist mit jeder zweiten Speicherzelle 200 in einer gegebenen Spalte verbunden. Somit ist eine erste Speicherzelle 200-1, die in der Spalte ganz links in dem Speicherarray 100 gezeigt ist, mit der Bitleitung BL[o] verbunden, eine zweite Speicherzelle 200-2 ist mit der Bitleitung BLB[o] verbunden, eine dritte Speicherzelle 200-3 ist mit der Bitleitung B[o] verbunden, eine vierte Speicherzelle 200-4 ist mit der Bitleitung BLB[o] verbunden, und so weiter.
  • Jede Spalte des Arrays 100 enthält einen Leseverstärker 122, der mit den Bitleitungen BL/BLB seiner jeweiligen Spalte verbunden ist. Die Leseverstärker 122 umfassen ein Paar querverbundene Inverter zwischen den Bitleitungen BL/BLB, wobei der erste Inverter mit einer Eingabe von der Bitleitung BL und einer Ausgabe an die Bitleitungsschiene BLB verbunden ist. Der zweite Inverter empfängt die Eingabe von der entsprechenden Bitleitungsschiene BLB mit ihrer Ausgabe für die Bitleitung BL. Dies führt zu einer positiven Rückkopplung, die sich stabilisiert, wenn eine der Bitleitungen BL/BLB vollständig auf ihrem höchsten Spannungspegel ist und die andere Bitleitung BL/BLB auf ihrem niedrigstmöglichen Spannungspegel ist.
  • Im Allgemeinen werden für eine Leseoperation die Leseverstärker 122 effektiv deaktiviert oder von den jeweiligen Bitleitungen BL/BLB getrennt. In einigen Beispielen werden die Leseverstärker 122 von den Steuerschaltungen 120 als Reaktion auf das Gruppenaktivierungssignal GROUP EN gesteuert. Die Bitleitungen werden auf einen Spannungspegel zwischen dem Logikpegel High (d. h., logisch 1) und dem Logikpegel Low (d. h., logisch 0) vorgeladen. In dem dargestellten Beispiel kann der Spannungspegel logisch 0 0 V sein, während der Spannungspegel logisch 1 der VDD-Spannungspegel sein kann. Dementsprechend ist der Spannungspegel zum Vorladen der Bitleitung ½VDD.
  • Es werden eine gewünschte Wortleitung und eine gewünschte Bitleitung gewählt, und die Wortleitung WL für die gewählte Zeile wird dann auf High gebracht (wenn der Transistor 202 der Speicherzelle 200 ein NMOS-Transistor ist), um den Transistor 202 einzuschalten und den Speicherkondensator 204 der Speicherzelle 200 mit seiner Bitleitung BL/BLB zu verbinden. Dadurch wird Ladung von der Speicherzelle 200 zu der angeschlossenen Bitleitung BL/BLB übertragen, wenn der gespeicherte Wert 1 ist, oder Ladung wird von der angeschlossenen Bitleitung BL/BLB zu der Speicherzelle 200 übertragen, wenn der gespeicherte Wert 0 ist.
  • Herkömmliche Speichermatrizen können sehr lange Bitleitungen haben, was dazu führt, dass die Bitleitungen eine hohe Kapazität haben. Außerdem können 1T-1C-Speicherzellen dieser herkömmlichen Matrizen zwischen VDD und Erde statt wie bei den erläuterten Ausführungsformen zwischen VDD und ½VDD geschaltet werden. Durch Verbinden des Speicherkondensators 204 mit ½VDD (statt mit Erde) wird ein Spannungshub des Speicherkondensators 204 von VDD auf ½VDD reduziert. Dies führt weiterhin zu einem kleineren Zugriffsstrom als bei einem vollen Erde-VDD-Spannungshub. In einigen Beispielen beträgt der VDD-Spannungspegel 1,0 V, aber bei anderen Ausführungsformen können zum Beispiel in Abhängigkeit von der speziellen Prozesstechnologie andere VDD-Spannungspegel verwendet werden.
  • Für Leseoperationen wird ein Lesesignal Vsig wie folgt definiert: V s i g = 1 2 V D D × C S C S + C B L .
    Figure DE102022100200A1_0001
  • Für das hierin offenbarte CIM- Speicherarray können Bitleitungen verkürzt werden, um Zellenarray-Zugriffszeiten zu optimieren. Die Bitleitungslänge kann zum Beispiel von der Größe des Speicherarrays (d. h., 8, 16, 256 ... Zeilen) abhängen, und sie kann für unterschiedliche Gewichtsdichte- und/oder Energiebedarfe optimiert werden. Wenn die Bitleitungslänge kurzgehalten wird, ist die Bitleitungskapazität CBL vernachlässigbar und dementsprechend ist der Pegel des Lesesignals Vsig hoch (fast 1/2VDD), was zu kurzen Lese- und Zugriffszeiten führt.
  • Der entsprechende Leseverstärker 122 wird über die Steuerschaltungen 120 als Reaktion auf das Gruppenaktivierungssignal GROUP EN gewählt, und das Differenzsignal von dem gewählten BL/BLB-Paar wird mit dem Leseverstärker 122 gelesen und an den entsprechenden MUX 124 ausgegeben. Das Ausgangssignal des Leseverstärkers 122 wird für die Multiplikationsschaltungen 130 bereitgestellt, wo das CIM-Eingangssignal IN mit dem CIM-Gewichtssignal kombiniert wird.
  • Für Schreiboperationen werden eine Wortleitung und eine Bitleitung aufgrund einer Adresse gewählt, die mit der Zeilenwählschaltung 102 und der Spaltenwählschaltung 104 empfangen wird. Die Wortleitung WL einer gewünschten Zeile wird aktiviert, und der Leseverstärker 122 wird von der Steuerschaltung 120 deaktiviert. Dann wird die logische 0 oder 1 für eine gewählte Spalte dadurch geschrieben, dass die entsprechende Bitleitung BL/BLB in den gewünschten hohen oder niedrigen Spannungszustand gebracht wird, sodass die zugehörige Bitleitung BL/BLB veranlasst wird, den Speicherkondensator 204 der Speicherzelle 200 auf den gewünschten Wert zu laden oder zu entladen.
  • Wie vorstehend dargelegt worden ist, werden Gewichtsdaten, die aus den Speicherzellen 200 gelesen werden, mit den MUXs 124 an die Multiplikationsschaltungen 130 ausgegeben, sodass die CIM-Gewichtssignale mit dem Eingangssignal IN multipliziert werden. Die Multiplikationsschaltungen 130 sind so konfiguriert, dass sie das Eingangssignal IN mit den Gewichtssignalen W, die aus dem Array 100 gelesen werden, multiplizieren. 4 zeigt ein Beispiel für eine Multiplikationsschaltung 130, die ein NOR-Gate 132 aufweist, das das Gewichtssignal W von dem Speicherarray 100 zusammen mit einem invertierten Eingangssignal INB empfängt, um ein Produkt P aus dem Gewichtssignal W und dem Eingangssignal IN auszugeben. 5 zeigt ein weiteres Beispiel, bei dem eine Multiplikationsschaltung 130 ein UND-Gate 134 aufweist, das das Gewichtssignal W von dem Speicherarray 100 zusammen mit dem Eingangssignal IN von dem Array 100 empfängt, um ein Produkt P aus dem Gewichtssignal W und dem Eingangssignal IN auszugeben. Die Produktausgabe der Multiplikationsschaltung 130 wird für eine einzelne I/O-Addierschaltung 140 bereitgestellt.
  • In einigen Beispielen ist die Multiplikationsschaltung 130 so konfiguriert, dass sie eine bitserielle Multiplikation des Eingangssignals IN mit dem Gewichtssignal W von einem höchstwertigen Bit des Eingangssignals bis zu einem niedrigstwertigen Bit des Eingangssignals ausführt, sodass eine Mehrzahl von Teilprodukten entsteht. Andere Konfigurationen der Multiplikationsschaltung 130 liegen ebenfalls innerhalb des Schutzumfangs der Erfindung. 6 zeigt ein Beispiel, bei dem ein 1-Bit-CIM-Eingangssignal IN mit einem X-Bit-CIM-Gewichtssignal W[X-1:0] (wobei X eine positive ganze Zahl ist) multipliziert wird. Die Teilprodukte werden an einen Akkumulator der einzelnen I/O-Addierschaltung 140 ausgegeben.
  • Ein Beispiel für eine solche Implementierung ist in 7 gezeigt, die das Eingangssignal IN[M-1:0] und das Gewichtssignal W[X-1:0] darstellt. Wie in 7 gezeigt ist, wird während eines ersten Zyklus ein Eingangssignal IN[o] mit dem Gewichtssignal W[X-1:0] multipliziert, um ein erstes Teilprodukt 310 zu erzeugen; während eines zweiten Zyklus wird ein Eingangssignal IN[1] mit dem Gewichtssignal W[X-1:0] multipliziert, um ein zweites Teilprodukt 312 zu erzeugen; und so weiter bis zu einem M-ten Zyklus, in dem ein Eingangssignal IN[M-i] mit dem Gewichtssignal W[X-1:0] multipliziert wird, um ein M-tes Teilprodukt 314 zu erzeugen. Die Teilprodukte 310 bis 314 werden dann mit dem Akkumulator der einzelnen I/O-Addierschaltung 140 addiert oder akkumuliert.
  • Wie vorstehend dargelegt worden ist, werden in offenbarten Beispielen mehrere Speicherarraygruppen bereitgestellt, die unabhängig wählbar sind, sodass Multitasking-Operationen möglich sind, um einen erhöhten Schreibdurchsatz des Gewichtsspeicherarrays bereitzustellen. Das in 2 gezeigte Beispiel weist eine erste Speicherarraygruppe 110-1, die die geradzahligen Spalten dem Speicherarray 100 enthält, und eine zweite Speicherarraygruppe 110-2 auf, die die ungeradzahligen Spalten des Speicherarrays 100 enthält.
  • 8 zeigt eine Spalte der geradzahligen Gruppe 110-1 und eine Spalte der ungeradzahligen Gruppe 110-2. In 8 ist nur eine Spalte für jede der Arraygruppen 110-1 und 110-2 dargestellt, aber eine tatsächliche Implementierung hätte mehrere Spalten für jede der Arraygruppen 110-1 und 110-2. Die gewünschte Speicherarraygruppe 110-1 wird als Reaktion auf das Signal GROUP_EN gewählt, das mit der Steuerschaltung 120 empfangen wird. Bei der in 8 gezeigten Ausführungsform wird ein Ein-Bit-Signal GROUP_EN (0,1) zum Wählen zwischen den zwei Speicherarraygruppen 110-1 und 110-2 verwendet. Die gewünschten CIM-Gewichtsdaten können zum Beispiel aufgrund des Signals GROUP_EN in die Speicherzellen 200 der geradzahligen Gruppe 110-1 und/oder der ungeradzahligen Gruppe 110-2 geschrieben werden. Außerdem ermöglicht diese Anordnung Multitasking-Operationen, wie etwa ein Schreiben von Gewichtsdaten in die geradzahlige Gruppe 110-1, während Daten aus der ungeradzahligen Gruppe 110-2 gelesen werden. Zum Beispiel kann eine gewünschte Wortleitung, wie etwa WL_o, aktiviert werden, und Daten können bei derselben Bitleitungs- und Wortleitungs-Versorgungsspannung aus der geradzahligen Gruppe 110-1 gelesen werden und in die ungeradzahlige Gruppe 110-2 geschrieben werden.
  • 9 zeigt eine weitere Ausführungsform mit vier Speicherarraygruppen 110-1, 110-2, 110-3 und 110-4. In 9 ist nur eine Spalte für jede der Arraygruppen dargestellt, aber eine tatsächliche Implementierung hätte mehrere Spalten für jede der Arraygruppen 110-1, 110-2,110-3 und 110-4. Bei vier Speicherarraygruppen wird ein Zwei-Bit-Signal GROUP_EN [1:0] zum Auswählen unter den vier Speicherarraygruppen verwendet.
  • Wie bei dem Beispiel von 8 werden durch das Bereitstellen von mehreren Arraygruppen Multitasking-Operationen erleichtert, und der Schreibdurchsatz des CIM-Gewichtsspeicherarrays wird erhöht. Zum Beispiel können bei einigen Ausführungsformen vier Operationen gleichzeitig für die vier Arraygruppen 110-1, 110-2, 110-3 und 110-4 ausgeführt werden, wie etwa eine Leseoperation für eine Gruppe und Schreiboperationen für die anderen drei Gruppen. Zum Beispiel können Daten aus der ersten Gruppe 110-1 gelesen werden, während Daten in die zweite, die dritte und die vierte Gruppe 110-2, 110-3 und 110-4 geschrieben werden, indem die gewünschte Wortleitung und die gewünschten Spalten des Arrays 100 ausgewählt werden und die entsprechenden Leseverstärker 122 mit der Steuerschaltung 120 aktiviert werden. Wenn mehrere CIM-Gewichtsdaten-Schreiboperationen gleichzeitig ausgeführt werden, kann der Schreibdurchsatz für das Speicherarray weiter erhöht werden, und die CIM-Effizienz kann verbessert werden. Bei weiteren Ausführungsformen können mehr als zwei oder vier Speicherarraygruppen bereitgestellt werden.
  • 10 zeigt ein Beispiel für ein CIM-Verfahren gemäß offenbarten Ausführungsformen. Das Verfahren von 10 umfasst einen Schritt 310, in dem ein Speicherarray, wie etwa das in 2 gezeigte Array 100, bereitgestellt wird. Wie vorstehend dargelegt worden ist, weist das Speicherarray eine Mehrzahl von Speicherzellen 200 auf, die in Zeilen und Spalten angeordnet sind, wobei das Array 100 eine erste Gruppe 110-1 von Speicherzellen und eine zweite Gruppe 110-2 von Speicherzellen enthält. Wie in einem Schritt 312 angegeben ist, wird eine Mehrzahl von Wortleitungen WL bereitgestellt, wobei jede Zeile des Arrays 100 eine entsprechende Wortleitung WL enthält und jede Speicherzelle 200 einer Zeile des Speicherarrays 100 mit der entsprechenden Wortleitung WL verbunden ist. In einem Schritt 314 wird eine Mehrzahl von Bitleitungen bereitgestellt, wobei jede Spalte des Arrays 100 eine entsprechende Bitleitung BL/BLB enthält und jede Speicherzelle 200 einer Spalte des Arrays 100 mit der entsprechenden Bitleitung BL/BLB verbunden ist. In einem Schritt 316 wird ein Gruppenaktivierungssignal GROUP_EN empfangen. In einem Schritt 318 wird als Reaktion auf das Gruppenaktivierungssignal eine erste Operation (wie etwa eine Leseoperation) an der ersten Gruppe von Speicherzellen ausgeführt, und in einem Schritt 320 wird als Reaktion auf das Gruppenaktivierungssignal eine zweite Operation (wie etwa eine Schreiboperation) an der zweiten Gruppe von Speicherzellen ausgeführt. In einigen Beispielen werden der erste Schritt 318 und der zweite Schritt 320 gleichzeitig oder im Wesentlichen gleichzeitig ausgeführt. Außerdem werden bei einigen Ausführungsformen der erste Schritt 318 und der zweite Schritt 320 an den Speicherzellen 200 in derselben gewählten Wortleitung WL ausgeführt. CIM-Gewichtsdaten, die aus den Speicherzellen 200 gelesen werden, können dann von der Multiplikationsschaltung mit den CIM-Eingangssignalen multipliziert werden.
  • Gemäß Aspekten, die hier offenbart sind, werden Beschränkungen bei herkömmlichen Gewichtspeicheranordnungen für CIM, wie etwa die begrenzte Gewichtspeicherdichte und der begrenzte Schreibdurchsatz, in Angriff genommen. Unter anderem umfassen offenbarte Ausführungsformen einen 1T-1C-basierten Gewichtsspeicher für CIM, der die Gewichtspeicherdichte durch Verwenden einer Speicherzelle mit kleiner Fläche erhöhen kann und außerdem den Schreibdurchsatz des Gewichtsspeicherarrays durch Verwenden von Multitasking für das Speicherarray erhöhen kann.
  • Offenbarte Ausführungsformen umfassen somit eine Speichervorrichtung für CIM mit einem Speicherarray, die eine Mehrzahl von Speicherzellen enthält, die in einem Array von Zeilen und Spalten angeordnet sind. Die Speicherzellen weisen eine erste Gruppe von Speicherzellen und eine zweite Gruppe von Speicherzellen auf. Jede Zeile des Arrays enthält eine entsprechende Wortleitung, wobei jede Speicherzelle einer Zeile des Arrays mit der entsprechenden Wortleitung verbunden ist. Jede Spalte des Arrays enthält eine entsprechende Bitleitung, wobei jede Speicherzelle einer Spalte des Arrays mit der entsprechenden Bitleitung verbunden ist. Eine Steuerschaltung ist so konfiguriert, dass sie als Reaktion auf ein Gruppenaktivierungssignal die erste Gruppe von Speicherzellen oder die zweite Gruppe von Speicherzellen auswählt.
  • Gemäß weiteren Aspekten weist eine CIM-Vorrichtung eine Mehrzahl von Speicherzellen auf, die so konfiguriert sind, dass sie Gewichtssignale speichern. Die Speicherzellen sind in einem Array von Zeilen und Spalten angeordnet und weisen eine erste Gruppe von Speicherzellen und eine zweite Gruppe von Speicherzellen auf. Jede Zeile des Arrays enthält eine entsprechende Wortleitung, wobei jede Speicherzelle mit einer entsprechenden Wortleitung verbunden ist. Jede Spalte des Arrays enthält eine entsprechende Bitleitung, wobei jede Speicherzelle mit der entsprechenden Bitleitung verbunden ist. Ein Leseverstärker ist mit den Bitleitungen verbunden und ist so konfiguriert, dass er Signale der Bitleitungen für Leseoperationen verstärkt. Eine Steuerschaltung ist mit den Bitleitungen verbunden und ist so konfiguriert, dass sie als Reaktion auf ein Gruppenaktivierungssignal die erste Gruppe von Speicherzellen oder die zweite Gruppe von Speicherzellen auswählt. Ein Eingangsanschluss ist so konfiguriert, dass er ein Eingangssignal empfängt, und eine Multiplikationsschaltung ist so konfiguriert, dass sie die Gewichtssignale mit dem Eingangssignal multipliziert, um eine Mehrzahl von Teilprodukten zu erzeugen.
  • Gemäß noch weiteren offenbarten Aspekten umfasst ein CIM-Verfahren ein Bereitstellen eines Speicherarrays mit mehreren Speicherzellen, die in einem Array von Zeilen und Spalten angeordnet sind. Die Speicherzellen umfassen eine erste Gruppe von Speicherzellen und eine zweite Gruppe von Speicherzellen. Es wird eine Mehrzahl von Wortleitungen bereitgestellt, wobei jede Speicherzelle einer Zeile des Arrays mit einer entsprechenden Wortleitung verbunden ist. Es wird eine Mehrzahl von Bitleitungen bereitgestellt, wobei jede Speicherzelle einer Spalte des Arrays mit einer entsprechenden Bitleitung verbunden ist. Ein Gruppenaktivierungssignal wird empfangen, und als Reaktion auf das Gruppenaktivierungssignal werden eine erste Operation an der ersten Gruppe von Speicherzellen und eine zweite Operation an der zweiten Gruppe von Speicherzellen ausgeführt.
  • In der vorliegenden Erfindung sind verschiedene Ausführungsformen beschrieben worden, sodass Fachleute die Aspekte der vorliegenden Erfindung besser verstehen können. Fachleuten dürfte klar sein, dass sie die vorliegende Erfindung ohne Weiteres als eine Grundlage zum Gestalten oder Modifizieren anderer Verfahren und Strukturen zum Erreichen der gleichen Ziele und/oder zum Erzielen der gleichen Vorzüge wie bei den hier vorgestellten Ausführungsformen verwenden können. Fachleute dürften ebenfalls erkennen, dass solche äquivalenten Auslegungen nicht von dem Grundgedanken und Schutzumfang der vorliegenden Erfindung abweichen und dass sie hier verschiedene Änderungen, Ersetzungen und Abwandlungen vornehmen können, ohne von dem Grundgedanken und Schutzumfang der vorliegenden Erfindung abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 63/191635 [0001]

Claims (20)

  1. Speichervorrichtung für Compute-In-Memory, CIM, die Folgendes aufweist: ein Speicherarray mit mehreren Speicherzellen, die in einem Array von Zeilen und Spalten angeordnet sind, wobei die Speicherzellen eine erste Gruppe von Speicherzellen und eine zweite Gruppe von Speicherzellen aufweisen; mehrere Wortleitungen, wobei jede Zeile des Arrays eine jeweilige Wortleitung aufweist, wobei jede Speicherzelle einer Zeile des Arrays mit der jeweiligen Wortleitung verbunden ist; mehrere Bitleitungen, wobei jede Spalte des Arrays eine jeweilige Bitleitung aufweist, wobei jede Speicherzelle einer Spalte des Arrays mit der jeweiligen Bitleitung verbunden ist; und eine Steuerschaltung, die eingerichtet ist, als Reaktion auf ein Gruppenaktivierungssignal die erste Gruppe von Speicherzellen und/oder die zweite Gruppe von Speicherzellen auszuwählen.
  2. Speichervorrichtung nach Anspruch 1, ferner aufweisend: einen ersten Leseverstärker, der mit den Bitleitungen der ersten Gruppe von Speicherzellen verbunden ist; und einen zweiten Leseverstärker, der mit den Bitleitungen der zweiten Gruppe von Speicherzellen verbunden ist.
  3. Speichervorrichtung nach Anspruch 2, ferner aufweisend einen Multiplexer, MUX, der mit dem ersten Leseverstärker und dem zweiten Leseverstärker verbunden ist.
  4. Speichervorrichtung nach einem der vorhergehenden Ansprüche, wobei jede der Speicherzellen einen Transistor und einen Kondensator aufweist, um eine Ein-Transistor-ein-Kondensator-Speicherzelle, 1T-1C-Speicherzelle, zu bilden.
  5. Speichervorrichtung nach Anspruch 4, wobei der Transistor der 1T-1C-Speicherzelle einen Gate-Anschluss aufweist, der mit einer zugehörigen Wortleitung verbunden ist.
  6. Speichervorrichtung nach Anspruch 4 oder 5, wobei der Transistor der 1T-1C-Speicherzelle Folgendes aufweist: einen ersten Source/Drain-Anschluss, S/D-Anschluss, der mit einer zugehörigen Bitleitung verbunden ist; und einen zweiten S/D-Anschluss, der mit einem ersten Anschluss des Kondensators der 1T-1C-Speicherzelle verbunden ist.
  7. Speichervorrichtung nach einem der Ansprüche 4 bis 6, wobei das Speicherarray einen Stromeingangsanschluss aufweist, der eingerichtet ist, eine VDD-Spannung zu empfangen, und wobei der Kondensator der 1T-1C-Speicherzelle einen zweiten Anschluss aufweist, der eingerichtet ist, eine halbe VDD-Spannung zu empfangen.
  8. Speichervorrichtung nach einem der vorhergehenden Ansprüche, wobei die Speicherzellen ferner eine dritte Gruppe von Speicherzellen und eine vierte Gruppe von Speicherzellen aufweisen.
  9. Speichervorrichtung nach Anspruch 8, wobei die Steuerschaltung eingerichtet ist, als Reaktion auf ein Ein-Bit-Gruppenaktivierungssignal die erste Gruppe und die dritte Gruppe von Speicherzellen oder die zweite Gruppe und die vierte Gruppe von Speicherzellen auszuwählen.
  10. Speichervorrichtung nach Anspruch 8, wobei die Steuerschaltung eingerichtet ist, als Reaktion auf ein Zwei-Bit-Gruppenaktivierungssignal die erste Gruppe, die zweite Gruppe, die dritte Gruppe oder die vierte Gruppe von Speicherzellen auszuwählen.
  11. Speichervorrichtung nach einem der vorhergehenden Ansprüche, wobei die Steuerschaltung Folgendes aufweist: eine erste Steuerschaltung, die mit den Bitleitungen der ersten Spalte verbunden ist; und eine zweite Steuerschaltung, die mit den Bitleitungen der zweiten Spalte verbunden ist.
  12. Compute-In-Memory-Vorrichtung, CIM-Vorrichtung, aufweisend: mehrere Speicherzellen, die eingerichtet sind, Gewichtssignale zu speichern, wobei die Speicherzellen in einem Array von Zeilen und Spalten angeordnet sind und eine erste Gruppe von Speicherzellen und eine zweite Gruppe von Speicherzellen umfassen; mehrere Wortleitungen, wobei jede Zeile des Arrays eine jeweilige Wortleitung aufweist, wobei jede Speicherzelle mit einer jeweiligen Wortleitung verbunden ist; mehrere Bitleitungen, wobei jede Spalte des Arrays eine jeweilige Bitleitung aufweist, wobei jede Speicherzelle mit der jeweiligen Bitleitung verbunden ist; einen Leseverstärker, der mit den Bitleitungen verbunden ist und eingerichtet ist, Signale der Bitleitungen für Leseoperationen zu verstärken; eine Steuerschaltung, die mit den Bitleitungen verbunden ist und eingerichtet ist, als Reaktion auf ein Gruppenaktivierungssignal die erste Gruppe von Speicherzellen oder die zweite Gruppe von Speicherzellen auszuwählen; einen Eingangsanschluss, der eingerichtet ist, ein CIM-Eingangssignal zu empfangen; und eine Multiplikationsschaltung, die eingerichtet ist, die Gewichtssignale mit dem CIM-Eingangssignal zu multiplizieren, um mehrere Teilprodukte zu erzeugen.
  13. CIM-Vorrichtung nach Anspruch 12, ferner aufweisend einen Multiplexer, MUX, der mit dem Leseverstärker verbunden ist.
  14. CIM-Vorrichtung nach Anspruch 12 oder 13, wobei jede der Speicherzellen einen Transistor und einen Kondensator aufweist, um eine Ein-Transistor-ein-Kondensator-Speicherzelle, 1T-1C-Speicherzelle, zu bilden.
  15. CIM-Vorrichtung nach einem der Ansprüche 12 bis 14, wobei die Speicherzellen ferner eine dritte Gruppe von Speicherzellen und eine vierte Gruppe von Speicherzellen umfassen.
  16. CIM-Vorrichtung nach einem der Ansprüche 12 bis 15, ferner aufweisend eine einzelne I/O-Addiererbaumschaltung, die eingerichtet ist, die mehreren Teilprodukte zu addieren.
  17. Verfahren umfassend: Bereitstellen eines Speicherarrays mit mehreren Speicherzellen, die in einem Array von Zeilen und Spalten angeordnet sind, wobei die Speicherzellen eine erste Gruppe von Speicherzellen und eine zweite Gruppe von Speicherzellen umfassen; Bereitstellen von mehreren Wortleitungen, wobei jede Zeile des Arrays eine jeweilige Wortleitung aufweist, wobei jede Speicherzelle einer Zeile des Arrays mit der jeweiligen Wortleitung verbunden ist; Bereitstellen von mehreren Bitleitungen, wobei jede Spalte des Arrays eine jeweilige Bitleitung aufweist, wobei jede Speicherzelle einer Spalte des Arrays mit der jeweiligen Bitleitung verbunden ist; Empfangen eines Gruppenaktivierungssignals; Ausführen einer ersten Operation an der ersten Gruppe von Speicherzellen als Reaktion auf das Gruppenaktivierungssignal; und Ausführen einer zweiten Operation an der zweiten Gruppe von Speicherzellen als Reaktion auf das Gruppenaktivierungssignal.
  18. Verfahren nach Anspruch 17, wobei die erste Operation eine Leseoperation ist und die zweite Operation eine Schreiboperation ist.
  19. Verfahren nach Anspruch 17 oder 18, wobei die erste Operation und die zweite Operation gleichzeitig ausgeführt werden.
  20. Verfahren nach einem der Ansprüche 17 bis 19, ferner umfassend: Schreiben von CIM-Gewichtssignalen in die Speicherzellen; Lesen der CIM-Gewichtssignale aus den Speicherzellen; Empfangen eines CIM-Eingangssignals; und Multiplizieren des CIM-Eingangssignals mit den CIM-Gewichtssignalen mittels einer Multiplikationsschaltung.
DE102022100200.4A 2021-05-21 2022-01-05 Compute-In-Memory-Speicherarray, CIM-Speicherarray Pending DE102022100200A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163191635P 2021-05-21 2021-05-21
US63/191,635 2021-05-21
US17/561,106 2021-12-23
US17/561,106 US11996137B2 (en) 2021-05-21 2021-12-23 Compute in memory (CIM) memory array

Publications (1)

Publication Number Publication Date
DE102022100200A1 true DE102022100200A1 (de) 2022-11-24

Family

ID=83405312

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022100200.4A Pending DE102022100200A1 (de) 2021-05-21 2022-01-05 Compute-In-Memory-Speicherarray, CIM-Speicherarray

Country Status (5)

Country Link
US (2) US11996137B2 (de)
KR (1) KR20220157868A (de)
CN (1) CN115148234A (de)
DE (1) DE102022100200A1 (de)
TW (1) TWI815312B (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115344528A (zh) * 2021-05-13 2022-11-15 联咏科技股份有限公司 存储器内计算宏装置及电子装置
CN116386687B (zh) * 2023-04-07 2024-03-19 北京大学 一种平衡电压降影响的存储器阵列
CN118248193B (zh) * 2024-05-27 2024-07-30 安徽大学 基于参考电路动态匹配的高可靠性存内计算电路、芯片

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6208575B1 (en) * 1999-02-13 2001-03-27 Robert J. Proebsting Dynamic memory array bit line sense amplifier enabled to drive toward, but stopped before substantially reaching, a source of voltage
JP4547313B2 (ja) * 2005-08-01 2010-09-22 株式会社日立製作所 半導体記憶装置
KR100854497B1 (ko) * 2006-07-10 2008-08-26 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
JP4951786B2 (ja) * 2007-05-10 2012-06-13 ルネサスエレクトロニクス株式会社 半導体記憶装置
US7848131B2 (en) * 2008-10-19 2010-12-07 Juhan Kim High speed ferroelectric random access memory
CN105096998B (zh) * 2014-05-08 2017-10-20 智原科技股份有限公司 运用于存储器编译器的存储器生成方法与生成的存储器
US9396795B1 (en) * 2014-12-30 2016-07-19 The Regents Of The University Of Michigan Storage device supporting logical operations, methods and storage medium
US11934480B2 (en) * 2018-12-18 2024-03-19 Macronix International Co., Ltd. NAND block architecture for in-memory multiply-and-accumulate operations
US11132176B2 (en) * 2019-03-20 2021-09-28 Macronix International Co., Ltd. Non-volatile computing method in flash memory
CN110262773B (zh) * 2019-04-28 2020-08-04 阿里巴巴集团控股有限公司 一种计算机数据处理方法及装置
US11145339B2 (en) * 2019-05-31 2021-10-12 Taiwan Semiconductor Manufacturing Company, Ltd. Device and method for computing-in-memory

Also Published As

Publication number Publication date
TW202309737A (zh) 2023-03-01
CN115148234A (zh) 2022-10-04
US20240347101A1 (en) 2024-10-17
TWI815312B (zh) 2023-09-11
US20220375508A1 (en) 2022-11-24
KR20220157868A (ko) 2022-11-29
US11996137B2 (en) 2024-05-28

Similar Documents

Publication Publication Date Title
DE112018004223B4 (de) Trainieren künstlicher neuronaler Netze
DE102022100200A1 (de) Compute-In-Memory-Speicherarray, CIM-Speicherarray
DE4137515C2 (de) Integrierte Halbleiterschaltungsvorrichtung
DE3841944C2 (de)
DE69520974T2 (de) Eine integrierte Halbleiterschaltung
DE102019116300A1 (de) Realisierung von binären neuronalen Netzen in Nand-Speicherarrays
DE202020102287U1 (de) Speicherzelle mit drei Ports und Array für In-Memory-Computing
DE102016015773B3 (de) Mehrfachlese- Speichervorrichtung
DE112019000226T5 (de) Neuromorpher chip zum aktualisieren präziser synaptischer gewichtswerte
DE102021120080A1 (de) Compute-in-memory
DE102022100920A1 (de) Compute-in-memory-akkumulator
DE112019000437T5 (de) Architektur einer resistiven verarbeitungseinheit mit voneinander getrennter gewichtungsaktualisierungs- und inferenzschaltung
DE102019116407A1 (de) Realisierung neuronaler netze mit ternären eingängen und binären gewichten in nand-speicherarrays
DE102021101727A1 (de) Sram-basierte zelle für in-memory-computing und hybride rechen-/speicherarchitektur
DE3886938T2 (de) Reprogrammierbare logische Sicherung für logische Anordnungen, basierend auf einer 6-Elementen-SRAM-Zelle.
DE102021107093A1 (de) Speicherinterne rechenschaltung und verfahren
DE69322436T2 (de) Halbleiterspeicheranordnung
DE69228522T2 (de) Lese-Schreibspeicher mit Prüfmodusdatenvergleich
DE112004001952B4 (de) Verfahren und Schaltungskonfiguration für Mehrfachladungsrückführung während Auffrischoperationen bei einer DRAM-Vorrichtung
DE102019200314A1 (de) Schreibunterstützung
DE69423822T2 (de) Cache-Etikettenspeicher
DE69833326T2 (de) Speicher mit verarbeitungsfunktion
DE102018128927A1 (de) Wortleitungsaktivierung für eine variable Verzögerung
DE102019119744A1 (de) Konfigurierbares präzises neuronales netz mit differentieller binärer, nichtflüchtiger speicherzellenstruktur
DE102019134370A1 (de) Adiabatisches glühschema und system für edge-computing

Legal Events

Date Code Title Description
R012 Request for examination validly filed