DE102018131032A1 - Speichervorrichtung, die einen Berechnungs-Überspringmodus unterstützt - Google Patents

Speichervorrichtung, die einen Berechnungs-Überspringmodus unterstützt Download PDF

Info

Publication number
DE102018131032A1
DE102018131032A1 DE102018131032.3A DE102018131032A DE102018131032A1 DE 102018131032 A1 DE102018131032 A1 DE 102018131032A1 DE 102018131032 A DE102018131032 A DE 102018131032A DE 102018131032 A1 DE102018131032 A1 DE 102018131032A1
Authority
DE
Germany
Prior art keywords
data
index
storage device
dwi
memory
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
DE102018131032.3A
Other languages
English (en)
Inventor
Hyun-Sung Shin
Sung-Ho Park
Chan-kyung Kim
Yong-Sik Park
Sang-hoon Shin
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102018131032A1 publication Critical patent/DE102018131032A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • 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/4076Timing circuits
    • 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
    • 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
    • G11C7/1009Data masking during input/output
    • 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/406Management or control of the refreshing or charge-regeneration cycles
    • 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
    • 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/4097Bit-line organisation, e.g. bit-line layout, folded bit lines
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)
  • Human Computer Interaction (AREA)

Abstract

Eine Speichervorrichtung weist eine Speicherzellanordnung (480) auf, welche in einem Halbleiter-Die gebildet ist, wobei die Speicherzellanordnung (480) eine Mehrzahl von Speicherzellen zum Speichern von Daten und eine Berechnungsschaltung, welche in dem Halbleiter-Die gebildet ist, aufweist. Die Berechnungsschaltung führt Berechnungen basierend auf Sendedaten (DA) und internen Daten (DWi) durch und lässt die Berechnungen hinsichtlich ungültiger Daten aus und führt die Berechnungen hinsichtlich gültiger Daten aus basierend auf Indexdaten (ID) in einem Berechnungs-Überspringmodus, in dem die Sendedaten (DA) von außerhalb des Halbleiter-Die vorgesehen werden, die internen Daten (DWi) aus der Speicherzellanordnung (480) gelesen werden, und die Indexdaten (ID) anzeigen, ob die internen Daten (DWi) die gültigen Daten oder die ungültigen Daten sind. Der Leistungsverbrauch wird durch ein Auslassen der Berechnungen und der Leseoperation hinsichtlich der ungültigen Daten durch den Berechnungs-Überspringmodus basierend auf den Indexdaten (ID) verringert.

Description

  • QUERVERWEIS AUF EINE VERWANDTE ANMELDUNG
  • Diese nichtvorläufige U.S.-Anmeldung beansprucht unter 35 USC § 119 die Priorität der koreanischen Patentanmeldung Nr. 10-2018-0020422, welche am 21. Februar 2018 beim Koreanischen Amt für Geistiges Eigentum (KIPO) eingereicht wurde, deren Offenbarung durch Bezugnahme in ihrer Gesamtheit hierin eingebunden ist.
  • HINTERGRUND
  • Technisches Gebiet
  • Beispielhafte Ausführungsformen beziehen sich allgemein auf integrierte Halbleiterschaltungen. Beispielsweise beziehen sich wenigstens einige beispielhafte Ausführungsformen auf eine Speichervorrichtung, welche einen Berechnungs-Überspringmodus unterstützt, und/oder ein Verfahren zum Betreiben einer Speichervorrichtung.
  • Diskussion des Standes der Technik
  • Eine Speicherbreite und eine Latenz sind Leistungsfähigkeits-Engpässe in vielen Verarbeitungssystemen. Eine Speicherkapazität kann durch die Nutzung einer gestapelten Speichervorrichtung, in welcher eine Mehrzahl von Halbleitervorrichtungen in einem Package eines Speicherchips gestapelt sind, erhöht werden. Die gestapelten Halbleiter-Dies können elektrisch durch die Verwendung von Silizium-Durchkontaktierungen oder Substrat-Durchkontaktierungen (TSVs) verbunden werden. Solch eine Stapeltechnologie kann die Speicherkapazität erhöhen und ebenso Bandbreiten- und Latenz-Nachteile unterdrücken. Jeder Zugriff einer externen Vorrichtung auf die gestapelte Speichervorrichtung involviert eine Datenkommunikation zwischen den gestapelten Halbleiter-Dies. In diesem Fall können Inter-Vorrichtungs-Bandbreiten- und Inter-Vorrichtungs-Latenz-Nachteile zweimal für jeden Zugriff auftreten. Demzufolge können die Inter-Vorrichtungs-Bandbreite und die Inter-Vorrichtungs-Latenz einen signifikanten Einfluss auf eine Verarbeitungseffizienz und einen Leistungsverbrauch des Systems haben, wenn ein Task der externen Vorrichtung mehrfache Zugriffe auf die gestapelte Speichervorrichtung benötigt.
  • KURZFASSUNG
  • Einige beispielhafte Ausführungsformen können eine Speichervorrichtung und/oder ein Verfahren zum Betreiben einer Speichervorrichtung vorsehen, welche in der Lage sind, eine Verarbeitung-im-Speicher (PIM) effizient durchzuführen.
  • Gemäß beispielhaften Ausführungsformen weist eine Speichervorrichtung eine Speicherzellenanordnung auf, welche mit einem Halbleiter-Die verbunden ist, wobei die Speicherzellenanordnung eine Mehrzahl von Speicherzellen aufweist, welche konfiguriert sind, um Daten zu speichern; und eine Verarbeitungsschaltung bzw. Verarbeitungsschaltkreise, welche dem Halbleiter-Die zugeordnet sind, wobei die Verarbeitungsschaltung konfiguriert ist, um Berechnungen auf Sendedaten und internen Daten in einem Berechnungs-Überspringmodus basierend darauf selektiv durchzuführen, ob ein Indexdatum anzeigt, dass das interne Datum bzw. die internen Daten ein ungültiges Datum bzw. Daten oder ein gültiges Datum bzw. gültige Daten sind, wobei die Sendedaten von außerhalb des Halbleiter-Die vorgesehen sind, wobei die internen Daten von der Speicherzellenanordnung gelesen werden.
  • Gemäß beispielhaften Ausführungsformen weist eine Speichervorrichtung eine Mehrzahl von Halbleiter-Speicher-Dies auf, welche in einer vertikalen Richtung gestapelt sind; Silizium-Durchkontaktierungen, welche elektrisch die Mehrzahl von Speicherhalbleiter-Dies verbinden; eine Mehrzahl von integrierten Speicherschaltungen (ICs), welche jeweiligen einen der Mehrzahl von Speicherhalbleiter-Dies zugeordnet sind, wobei die Mehrzahl von Speicher-ICs konfiguriert ist, um Daten zu speichern; und eine Verarbeitungsschaltung, welche einem oder mehreren Berechnungshalbleiter-Dies aus der Mehrzahl von Speicherhalbleiter-Dies zugeordnet ist, wobei die Verarbeitungsschaltung konfiguriert ist, um selektiv Berechnungen basierend auf Sendedaten und internen Daten in einem Berechnungs-Überspringmodus durchzuführen, basierend darauf, dass ob ein Indexdatum anzeigt, dass die internen Daten ungültige Daten oder gültige Daten sind, wobei die Sendedaten gemeinsam für die Berechnungshalbleiter-Dies durch die Silizium-Durchkontaktierungen vorgesehen sind, wobei die internen Daten jeweils aus der Mehrzahl von integrierten Speicherschaltungen gelesen werden.
  • Gemäß beispielhaften Ausführungsformen gibt es ein Verfahren zum Betreiben einer Speichervorrichtung, wobei die Speichervorrichtung eine Halbleiter-Die aufweist, welches eine Speicherzellenanordnung und eine Verarbeitungsschaltung, welche dazu zugeordnet ist, hat. In einigen beispielhaften Ausführungsformen weist das Verfahren ein Empfangen von einem Indexdatum in einem Berechnungs-Überspringmodus auf, welche anzeigen, ob interne Daten gültige Daten oder ungültige Daten sind; und ein selektives Durchführen mittels der Verarbeitungsschaltung von Berechnungen auf Sendedaten und den internen Daten in dem Berechnungs-Überspringmodus basierend darauf, ob das Indexdatum anzeigt, dass die internen Daten die ungültigen Daten oder die gültigen Daten sind, wobei die Sendedaten von außerhalb des Halbleiter-Die vorgesehen sind, wobei die internen Daten aus der Speicherzellenanordnung gelesen werden.
  • Die Speichervorrichtung und das Verfahren zum Betreiben der Speichervorrichtung gemäß beispielhaften Ausführungsformen kann einen Leistungsverbrauch durch ein Auslassen der Berechnungen und der Leseoperationen hinsichtlich der ungültigen Daten durch den Berechnungs-Überspringmodus basierend auf den Indexdaten bzw. dem Indexdatum verringern.
  • Figurenliste
  • Beispielhafte Ausführungsformen der vorliegenden Offenbarung werden deutlicher aus der folgenden detaillierten Beschreibung zusammengenommen mit den beigefügten Zeichnungen verstanden werden.
    • 1 ist ein Flussdiagramm, welches ein Verfahren zum Betreiben einer Speichervorrichtung gemäß beispielhaften Ausführungsformen veranschaulicht.
    • 2 ist ein Blockschaltbild, welches ein Speichersystem veranschaulicht, welches eine Speichervorrichtung gemäß beispielhaften Ausführungsformen aufweist.
    • 3 ist ein Diagramm, welches eine beispielhafte Ausführungsform einer Speichervorrichtung veranschaulicht, welche in dem System der 2 enthalten ist.
    • 4 ist ein Blockschaltbild, welches eine Speichervorrichtung gemäß beispielhaften Ausführungsformen veranschaulicht.
    • 5 ist ein Diagramm, welches eine beispielhafte Ausführungsform einer Erzeugungseinheit veranschaulicht, welche in dem Indexdatenerzeuger in der Speichervorrichtung der 4 enthalten ist.
    • 6A und 6B sind Diagramme, welche beispielhafte Ausführungsformen eines Indexspeichers veranschaulichen, welcher in der Erzeugungseinheit der 5 enthalten ist.
    • 7A und 7B sind Diagramme zum Beschreiben von Indexdaten gemäß beispielhaften Ausführungsformen.
    • 8 ist ein Zeitdiagramm, welches eine beispielhafte Schreiboperation einer Speichervorrichtung gemäß beispielhaften Ausführungsformen veranschaulicht.
    • 9 ist ein Blockschaltbild, welches eine Speichervorrichtung gemäß beispielhaften Ausführungsformen veranschaulicht.
    • 10 ist ein Diagramm, welches eine beispielhafte Ausführungsform einer Berechnungseinheit veranschaulicht, welche in der Berechnungsschaltung in der Speichervorrichtung der 9 enthalten ist.
    • 11 ist ein Diagramm, welches eine beispielhafte Anordnung eines Berechners, welcher in der Berechnungseinheit der 10 enthalten ist, veranschaulicht.
    • 12 ist ein Diagramm, welches eine beispielhafte Ausführungsform eines Berechners, welcher in der Berechnungseinheit der 10 enthalten ist, veranschaulicht.
    • 13A und 13B sind Zeitdiagramme, welche eine beispielhafte Operation eines Berechnungs-Überspringmodus in einer Speichervorrichtung gemäß beispielhaften Ausführungsformen veranschaulichen.
    • 14 ist ein Zeitdiagramm, welches eine beispielhafte Operation eines normalen Berechnungsmodus in einer Speichervorrichtung gemäß beispielhaften Ausführungsformen veranschaulicht.
    • 15 ist ein Diagramm, welches eine beispielhafte Ausführungsform zum Ausgeben von Berechnungsergebnisdaten veranschaulicht.
    • 16 ist ein Diagramm, welches eine Matrixberechnung unter Verwendung einer Berechnungsschaltung gemäß beispielhaften Ausführungsformen veranschaulicht.
    • 17 ist eine perspektivische Explosionsansicht eines Systems, welches eine gestapelte Speichervorrichtung gemäß beispielhaften Ausführungsformen aufweist.
    • 18 ist ein Diagramm, welches eine beispielhafte Hoch-Bandbreiten-Speicher (HBM)-Organisation veranschaulicht.
    • 19 und 20 sind Diagramme, welche Packaging-Strukturen einer gestapelten Speichervorrichtung gemäß beispielhaften Ausführungsformen veranschaulichen.
    • 21 ist ein Blockschaltbild, welches ein mobiles System gemäß beispielhaften Ausführungsformen veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • Verschiedene beispielhafte Ausführungsformen werden vollständiger hierin nachstehend unter Bezugnahme auf die beigefügten Zeichnungen, in welchen einige beispielhafte Ausführungsformen gezeigt sind, beschrieben werden. In den Zeichnungen beziehen sich gleiche Bezugszeichen durchgehend auf gleiche Elemente. Die wiederholten Beschreibungen können ausgelassen werden.
  • 1 ist ein Flussdiagramm, welches ein Verfahren zum Betreiben einer Speichervorrichtung gemäß beispielhaften Ausführungsformen veranschaulicht.
  • Bezugnehmend auf 1 kann in Operation S100 eine Berechnungsschaltung Berechnungen basierend auf Sendedaten und internen Daten durchführen. Die Berechnungsschaltung kann in einem Halbleiter-Die gebildet sein, in welchem eine Speicherzellenanordnung gebildet ist. Die Sendedaten können von außerhalb des Halbleiter-Die vorgesehen sein, und die internen Daten können aus der Speicherzellenanordnung gelesen werden.
  • In Operation S200 sind in einem Berechnungs-Überspringmodus Indexdaten bzw. ein Indexdatum, welche anzeigen, ob die internen Daten gültige Daten oder ungültige Daten sind, in einem Berechnungs-Überspringmodus vorgesehen.
  • In Operation S300 werden die Berechnungen hinsichtlich der ungültigen Daten ausgelassen und die Berechnungen hinsichtlich der gültigen Daten werden basierend auf den Indexdaten in dem Berechnungs-Überspringmodus durchgeführt.
  • Als solches kann das Verfahren zum Betreiben einer gestapelten Speichervorrichtung gemäß beispielhaften Ausführungsformen den Leistungsverbrauch durch ein Auslassen der Berechnungen und der Leseoperation hinsichtlich der ungültigen Daten durch den Berechnungs-Überspringmodus basierend auf den Indexdaten verringern.
  • 2 ist ein Blockschaltbild, welches ein Speichersystem veranschaulicht, welches eine Speichervorrichtung gemäß beispielhaften Ausführungsformen aufweist.
  • Bezugnehmend auf 2 kann ein Speichersystem 10 einen Speichercontroller 20 und eine Halbleiterspeichervorrichtung 30 aufweisen.
  • Der Speichercontroller 20 kann den Gesamtbetrieb des Speichersystems 10 steuern. Der Speichercontroller 20 kann den Gesamtdatenaustausch zwischen einem externen Host und der Halbleiterspeichervorrichtung 30 steuern. Beispielsweise kann der Speichercontroller 20 Daten in die Halbleiterspeichervorrichtung 30 schreiben oder Daten aus der Halbleiterspeichervorrichtung 30 in Antwort auf eine Anforderung von dem Host lesen. Zusätzlich kann der Speichercontroller 20 Operationsbefehle zu der Halbleiterspeichervorrichtung 30 zum Steuern der Halbleiterspeichervorrichtung 30 ausgeben.
  • In einigen beispielhaften Ausführungsformen kann die Halbleiterspeichervorrichtung 30 eine Speichervorrichtung sein, welche dynamische Speicherzellen aufweist, wie beispielsweise ein dynamischer Direktzugriffsspeicher (DRAM), ein Doppeldatenraten-4 (DDR4)-synchroner DRAM (SDRAM), ein Niedrigleistungs-DDR4 (LPDDR4)-SDRAM oder ein LPDDR5 SDRAM.
  • Der Speichercontroller 20 kann ein Taktsignal CLK, einen Befehl CMD und eine Adresse (Signal) ADDR zu Halbleiterspeichervorrichtung 30 übertragen und Daten DQ mit der Halbleiterspeichervorrichtung 30 austauschen. Zusätzlich kann der Speichercontroller 20 ein Modussignal MD vorsehen, welches einen Berechnungs-Überspringmodus oder einen normalen Berechnungsmodus anzeigt, wie untenstehend für die Halbleiterspeichervorrichtung 30 beschrieben werden wird. Das Modussignal MD kann als ein Steuersignal vorgesehen sein oder kann durch einen Modusregister-Schreibbefehl zum Einstellen eines Modusregisters in der Halbleiterspeichervorrichtung 30 vorgesehen sein.
  • Die Halbleiterspeichervorrichtung 30 kann eine Speicherzellenanordnung MC 40, eine Berechnungsschaltung CAL 100 und einen Indexdatenerzeuger IDG 200 aufweisen.
  • Die Speicherzellenanordnung 40 kann eine Mehrzahl von Speicherzellen zum Speichern von Daten aufweisen. Die Speicherzellen können in eine Mehrzahl von Speicherbänken gruppiert sein und jede Speicherbank kann eine Mehrzahl von Datenblöcken aufweisen.
  • Die Berechnungsschaltung 100 kann in einem Halbleiter-Die gebildet werden, in welchem die Speicherzellenanordnung 40 gebildet ist. Die Berechnungsschaltung 100 kann Berechnungen basierend auf Sendedaten und internen Daten durchführen, wobei die Sendedaten von außerhalb des Halbleiter-Die vorgesehen sind, und die internen Daten aus der Speicherzellenanordnung gelesen werden. Die Berechnungsschaltung 100 kann die Berechnungen hinsichtlich ungültiger Daten auslassen und die Berechnungen hinsichtlich gültiger Daten basierend auf Indexdaten bzw. einem Indexdatum in einem Berechnungs-Überspringmodus durchführen, wobei die Indexdaten anzeigt, ob die internen Daten gültige Daten oder ungültige Daten sind.
  • In einigen beispielhaften Ausführungsformen kann die Berechnungsschaltung 100 ein Überspring-Aktivierungssignal SEN erzeugen, um die selektive Auslassung der Berechnungen zu steuern. Beispielhafte Ausführungsformen der Berechnungsschaltung 100 werden untenstehend unter Bezugnahme auf die 9 bis 16 beschrieben werden.
  • Der Indexdatenerzeuger 200 kann die Indexdaten ID basierend auf Schreibdaten, welche in der Speicherzellenanordnung 40 gespeichert sind, erzeugen. Beispielhafte Ausführungsformen des Indexdatenerzeugers 200 werden untenstehend unter Bezugnahme auf die 4 bis 6B beschrieben werden.
  • In einigen beispielhaften Ausführungsformen können die Indexdaten ID, welche durch den Indexdatenerzeuger 200 erzeugt werden, in der Speicherzellenanordnung 40 während einer Schreiboperation zum Speichern der Schreibdaten in der Speicherzellenanordnung 40 gespeichert werden. Die Indexdaten ID, welche in der Speicherzellenanordnung 40 gespeichert sind, können von der Speicherzellenanordnung 40 ausgelesen werden und für die Berechnungsschaltung 100 in dem Berechnungs-Überspringmodus vorgesehen werden.
  • 3 ist ein Diagramm, welches eine beispielhafte Ausführungsform einer Speichervorrichtung veranschaulicht, welche in dem System der 2 enthalten ist.
  • Obwohl ein DRAM als ein Beispiel der Speichervorrichtung, welche in den Speicherhalbleiter-Dies unter Bezugnahme auf 3 gebildet ist, beschrieben ist, kann die Speichervorrichtung eine beliebige einer Vielzahl von Speicherzellarchitekturen sein, einschließlich jedoch nicht beschränkt auf flüchtige Speicherarchitekturen wie beispielsweise DRAM, TRAM und SRAM oder nichtflüchtige Speicherarchitekturen wie beispielsweise ROM, Flashspeicher, FRAM, MRAM und dergleichen.
  • Bezugnehmend auf 3 weist eine Speichervorrichtung 400 eine Steuerlogik 410, ein Adressregister 420, eine Banksteuerlogik 430, einen Zeilenadress-Multiplexer 440, ein Spaltenadress-Latch 450, einen Zeilendekoder 460, einen Spaltendekoder 470, eine Speicherzellenanordnung 480, eine Berechnungsschaltung 100, eine Eingangs-/Ausgangs(I/O)-Gating-Schaltung 490, einen Dateneingangs-/Ausgangs(I/O)-Puffer 495, einen Auffrischzähler 445 und einen Indexdatenerzeuger 200 auf.
  • Die Speicherzellenanordnung 480 kann eine Mehrzahl von Bankanordnungen 480a~480h aufweisen. Der Zeilendekoder 460 kann eine Mehrzahl von Bankzeilendekodern 460a~460h aufweisen, welche jeweils mit den Bankanordnungen 480a~480h gekoppelt sind, der Spaltendekoder 470 kann eine Mehrzahl von Bankspaltendekodern 470a~470h aufweisen, welche jeweils mit den Bankanordnungen 480a~480h gekoppelt sind.
  • Die Berechnungsschaltung 100 kann eine Mehrzahl von Berechnungsblöcken CB 100a~100h aufweisen, welche jeweils mit den Bankanordnungen 480a~480h gekoppelt sind. 3 veranschaulicht ein nichtbeschränkendes Beispiel, dass die Berechnungsschaltung 100 zwischen der Speicherzellenanordnung 480 und der Eingangs-/Ausgangs-Gating-Schaltung 490 angeordnet ist, die Eingangs-Ausgangs-Gating-Schaltung 490 kann jedoch zwischen der Speicherzellenanordnung 480 und der Berechnungsschaltung 100 angeordnet sein.
  • Jeder der Berechnungsblöcke 100a~100h kann eine Mehrzahl von Berechnungseinheiten (nicht gezeigt) aufweisen, welche die gemeinsamen Sendedaten und die jeweiligen internen Daten von den Bankanordnungen 480a~480h empfangen.
  • Der Indexdatenerzeuger 200 kann eine Indexdaten-ID basierend auf Schreibdaten WRD, welche in der Speicherzellenanordnung 480 während einer Schreiboperation gespeichert werden, erzeugen.
  • Das Adressregister 420 kann eine Adresse ADDR, welche eine Bankadresse BANK_ADDR, eine Zeilenadresse ROW_ADDR und eine Spaltenadresse COL_ADDR aufweist, von dem Speichercontroller empfangen. Das Adressregister 420 kann die empfangene Bankadresse BANK_ADDR für die Banksteuerlogik 430 vorsehen, kann die empfangene Zeilenadresse ROW ADDR für den Zeilenadress-Multiplexer 440 vorsehen und kann die empfangene Spaltenadresse COL_ADDR für das Spaltenadress-Latch 450 vorsehen.
  • Die Banksteuerlogik 430 kann Banksteuersignale in Antwort auf die Bankadresse BANK_ADDR erzeugen. Einer der Bankzeilendekoder 460a~460h, welcher der Bankadresse BANK_ADDR entspricht, kann in Antwort auf die Banksteuersignale aktiviert werden, und einer der Bankspaltendekoder 470a~470h, welcher der Bankadresse BANK_ADDR entspricht, kann in Antwort auf die Banksteuersignale aktiviert werden.
  • Der Zeilenadress-Multiplexer 440 kann die Zeilenadresse ROW ADDR von dem Adressregister 420 empfangen und kann eine Auffrisch-Zeilenadresse REF_ADDR von dem Auffrischzähler 445 empfangen. Der Zeilenadress-Multiplexer 440 kann die Zeilenadresse ROW_ADDR oder die Auffrisch-Zeilenadresse REF_ADDR als Zeilenadresse RA selektiv ausgeben. Die Zeilenadresse RA, welche von dem Zeilenadress-Multiplexer 440 ausgegeben wird, kann an die Bankzeilendekoder 460a~460h angelegt werden.
  • Der aktivierte eine der Bankzeilendekoder 460a~460h kann die Zeilenadresse RA, welche von dem Zeilenadress-Multiplexer 440 ausgegeben wird, dekodieren, und kann eine Wortleitung, welche der Zeilenadresse RA entspricht, aktivieren. Beispielsweise kann der aktivierte Bankzeilendekoder eine Wortleitungs-Treiberspannung an die Wortleitung anlegen, welche der Zeilenadresse RA entspricht.
  • Das Spaltenadress-Latch 450 kann die Spaltenadresse COL_ADDR von dem Adressregister 420 empfangen und kann die empfangene Spaltenadresse COL_ADDR vorübergehend speichern. In einigen beispielhaften Ausführungsformen kann in einem Burst-Modus das Spaltenadress-Latch 450 Spaltenadressen erzeugen, welche von der empfangenen Spaltenadresse COL_ADDR inkrementieren. Das Spaltenadress-Latch 450 kann die vorübergehend gespeicherte oder erzeugte Spaltenadresse an die Bankspaltendekoder 470a~470h anlegen.
  • Der aktivierte eine der Bankspaltendekoder 470a~470h kann die Spaltenadresse COL_ADDR, welche von dem Spaltenadress-Latch 450 ausgegeben wird, dekodieren und kann die Eingangs-/Ausgangs-Gating-Schaltung 490 steuern, um Daten auszugeben, welche der Spaltenadresse COL_ADDR entsprechen. Die I/O-Gating-Schaltung 490 kann eine Schaltung zum Gating von Eingangsdaten und Ausgangsdaten aufweisen. Die I/O-Gating-Schaltung 490 kann ferner Lesedaten-Latches zum Speichern von Daten aufweisen, welche von den Bankanordnungen 480a~480h ausgegeben werden, und Schreibtreiber zum Schreiben von Daten zu den Bankanordnungen 480a~480h.
  • Daten, welche von einer Bankanordnung der Bankanordnungen 480a~480h zu lesen sind, können durch einen der Bankleseverstärker, welche mit der einen Bankanordnung aus welcher die Daten zu lesen sind, gekoppelt ist, abgetastet werden, und können in den Lesedaten-Latches gespeichert werden. Die Daten, welche in den Lesedaten-Latches gespeichert sind, können für den Speichercontroller über den Daten-I/O-Puffer 495 vorgesehen werden. Daten DQ, welche in eine Bankanordnung der Bankanordnungen 480a~480h zu schreiben sind, können für den Daten-I/O-Puffer 495 von dem Speichercontroller vorgesehen werden. Der Schreibtreiber kann die Daten DQ in eine Bankanordnung der Bankanordnungen 480a~480h schreiben.
  • Die Steuerlogik 410 kann Operationen der Speichervorrichtung 400 steuern. Beispielsweise kann die Steuerlogik 410 Steuersignale für die Speichervorrichtung 400 erzeugen, um eine Schreiboperation oder eine Leseoperation durchzuführen. Die Steuerlogik 410 kann einen Befehlsdekoder 411, welcher einen Befehl CMD, welcher von dem Speichercontroller empfangen wird, dekodiert, und einen Modusregistersatz 412 aufweisen, welcher einen Operationsmodus der Speichervorrichtung 400 einstellt. Die Steuerlogik 410 kann die Speichervorrichtung 400 steuern, um selektiv in einem Berechnungs-Überspringmodus oder in einem normalen Berechnungsmodus in Antwort auf ein Modussignal MD zu arbeiten.
  • 4 ist ein Blockschaltbild, welches eine Speichervorrichtung gemäß beispielhaften Ausführungsformen veranschaulicht.
  • 4 ist zum Beschreiben einer Schreiboperation und demnach werden nur Komponenten für die Schreiboperation veranschaulicht und andere Komponenten werden in 4 ausgelassen. Eine Konfiguration, welche der einen Speicherbank entspricht, ist in 4 für die Zweckmäßigkeit der Veranschaulichung veranschaulicht.
  • Bezugnehmend auf 4 kann eine Speichervorrichtung 50 eine Mehrzahl von Datenblöcken DB1~DBn, eine Eingangs-/Ausgangs-Gating-Schaltung 52 und einen Indexdatenerzeuger 200 aufweisen. 4 veranschaulicht eine Konfiguration eines ersten Datenblocks DB1 als ein Beispiel, und die anderen Datenblöcke DB2~DBn können dieselbe Konfiguration haben wie der erste Datenblock DB1. Jeder Datenblock kann eine Mehrzahl von Unterspeicherzellenanordnungen SARR aufweisen und jede Unterspeicherzellenanordnung SARR kann eine Mehrzahl von Speicherzellen aufweisen. In einer Schreiboperation können die Daten, welche von außerhalb vorgesehen sind, in den Speicherzellen nacheinander folgend über die globalen Eingangs-/Ausgangs-Leitungen GIO und die lokalen Eingangs-/Ausgangs-Leitungen LIO gespeichert werden. Die hierarchische Struktur des Datenblocks kann verschiedentlich implementiert sein.
  • Die Eingangs-/Ausgangs-Gating-Schaltung 52 kann die lokalen Eingangs-/Ausgangs-Leitungen, welche einer Spaltenadresse entsprechen, für die Schreibdaten WRD1WRDn basierend auf einem Spaltenauswahlsignal CSL auswählen. Das Spaltenauswahlsignal CSL kann von dem Spaltendekoder 470 vorgesehen sein, wie unter Bezugnahme auf 3 beschrieben ist. Die Eingangs-/Ausgangs-Gating-Schaltung 52 kann eine Mehrzahl von Umschaltschaltungen MUX1MUXn aufweisen, welche der Mehrzahl von Datenblöcken DB1~DBn jeweils entsprechen.
  • Der Indexdatenerzeuger 200 kann die Indexdaten ID1~IDn basierend auf den Schreibdaten WRD1WRDn erzeugen, welche in den Datenblöcken DB1~DBn jeweils gespeichert sind. Die Indexdaten ID1~IDn können unterschiedliche Werte haben, abhängig von den Schreibdaten WRD1~WRDn.
  • Der Indexdatenerzeuger 200 kann eine Mehrzahl von Erzeugungseinheiten GU1~GUn, welche der Mehrzahl von Datenblöcken DB1~DBn entsprechen, aufweisen. Jede Erzeugungseinheit GU1 (i = 1~n) kann die jeweiligen Indexdaten IDi basierend auf den jeweiligen Schreibdaten WRDi erzeugen, welche in dem entsprechenden Datenblock DBi gespeichert sind. In anderen Worten gesagt, kann die erste Erzeugungseinheit GU1 die ersten Indexdaten IDI basierend auf den ersten Schreibdaten WRD1 erzeugen, welche in dem ersten Datenblock DB1 gespeichert sind, die zweite Erzeugungseinheit GU2 kann die zweiten Indexdaten ID2 basierend auf den zweiten Schreibdaten WRD2, welche in dem zweiten Datenblock DB2 gespeichert sind, erzeugen, und auf diesem Wege kann die n-te Erzeugungseinheit GUn die n-ten Indexdaten IDn basierend auf den n-ten Schreibdaten WRDn erzeugen, welche in dem n-ten Datenblock DBn gespeichert sind. Die Indexdaten ID1~IDn, welche durch den Indexdatenerzeuger 200 erzeugt werden, können zusammen mit den Schreibdaten WRD1~WRDn in den Datenblöcken DB1~DBn der Speicherzellenanordnung während der Schreiboperation gespeichert werden.
  • 5 ist ein Diagramm, welches eine beispielhafte Ausführungsform einer Erzeugungseinheit veranschaulicht, welche in dem Indexdatenerzeuger in der Speichervorrichtung der 4 enthalten ist.
  • Bezugnehmend auf 5 kann eine Erzeugungseinheit 210 ein Logikgatter LG 220 und einen Indexspeicher IREG 230 aufweisen. Das Logikgatter 220 kann eine Logikoperation auf den jeweiligen Schreibdaten WRDi durchführen und der Indexspeicher 230 kann die jeweiligen Indexdaten IDi basierend auf einem Ausgangssignal LO des Logikgatters 220 speichern.
  • Die jeweiligen Schreibdaten IDi können N Datenbits B0~BN-1 aufweisen und das Logikgatter 2220 kann das Ausgangssignal LO durch Durchführen der Logikoperation auf den Datenbits B0~Bn-1 der jeweiligen Schreibdaten WRDi erzeugen. In einigen beispielhaften Ausführungsformen kann das Logikgatter 220 mit einem ODER-Logikgatter implementiert sein. In diesem Fall kann das Ausgangssignal LO einen ersten Wert (beispielsweise „0“) haben, welcher anzeigt, dass die jeweiligen Schreibdaten WRDi die ungültigen Daten sind, wenn alle Bits B0~Bn-1 der jeweiligen Schreibdaten WRDi einen Wert von 0 haben, und das Ausgangssignal kann einen zweiten Wert (beispielsweise „1“) haben, welcher anzeigt, dass die jeweiligen Schreibdaten WRDi die gültigen Daten sind, wenn wenigstens ein Bit unter allen Bits B0~Bn-1 der jeweiligen Schreibdaten WRDi einen Wert von 1 hat.
  • Das Logikgatter 220 kann die Logikoperation nacheinander folgend hinsichtlich der jeweiligen Schreibdaten WRDi, welche einer Mehrzahl von Spaltenadressen entsprechen, durchführen, und der Indexspeicher 230 kann eine Mehrzahl von Indexbits der jeweiligen Indexdaten IDi nacheinander folgend basierend auf dem Ausgangssignal LO des Logikgatters 220 speichern.
  • 6A und 6B sind Diagramme, welche beispielhafte Ausführungsformen eines Indexspeichers veranschaulichen, welcher in der Erzeugungseinheit der 5 enthalten ist.
  • Bezugnehmend auf 5 und 6A kann ein Indexspeicher 231 nacheinander folgend Werte des Ausgangssignals LO des Logikgates 220 als eine Mehrzahl der Indexbits I0~I7 der Indexdaten IDi basierend auf einem Zeigersignal PT speichern. Die Mehrzahl von Indexbits I0~I7 kann einer Mehrzahl von Spaltenadressen entsprechen und jedes der Indexbits I0~I7 kann anzeigen, ob die internen Daten, welche von einer entsprechenden Spaltenadresse gelesen werden, die gültigen Daten oder die ungültigen Daten sind. Der Indexspeicher 231 kann die gespeicherten Indexbits I0~I7 als die Indexdaten IDi in einer Form eines parallelen Signals in Antwort auf ein Ausgangs-Aktivierungssignal OEN ausgeben.
  • Bezugnehmend auf 5 und 6B kann ein Indexspeicher 232 mit einem Schieberegister implementiert sein, welches konfiguriert ist, um eine Verschiebeoperation in Synchronisation mit einem Taktsignal CLK durchzuführen, um nacheinander folgend Werte des Ausgangssignals LO des Logikgatters 220 als eine Mehrzahl von Indexbits 10-17 der Indexdaten IDi zu speichern. Zusätzlich kann der Indexspeicher 232 eine Verschiebeoperation in Synchronisation mit dem Taktsignal CLK durchführen, um die gespeicherten Indexbits 10-17 als die Indexdaten IDi in einer Form eines seriellen Signals auszugeben. In einigen beispielhaften Ausführungsformen kann der Indexspeicher 232 die gespeicherten Indexbits 10-17 als die Indexdaten IDi in einer Form eines parallelen Signals in Antwort auf ein Ausgangs-Aktivierungssignal OEN, wie unter Bezugnahme auf 6A beschrieben, ausgeben.
  • 7A und 7B sind Diagramme zum Beschreiben von Indexdaten gemäß beispielhaften Ausführungsformen.
  • 7A veranschaulicht ein Beispiel von ersten Schreibdaten WRD1, welche in einem ersten Datenblock DB1 gespeichert sind, und ersten Indexdaten IDI, welche den ersten Schreibdaten WRD1 entsprechen, und 7B veranschaulicht ein Beispiel von zweiten Schreibdaten WRD2, welche in einem zweiten Datenblock DB2 gespeichert sind, und zweiten Indexdaten ID2, welche den zweiten Schreibdaten WRD2 entsprechen.
  • Bezugnehmend auf 7A können die ersten Schreibdaten WRD1 erste bis achte Spaltendaten D0D7 aufweisen, welche an ersten bis achten Spaltenadressen CA0~CA7 jeweils gespeichert sind. Jede der ersten bis achten Spaltendaten D0~D7 können erste bis achte Bits B0~B7 aufweisen.
  • Im Fall der ersten Schreibdaten WRD1 weisen die ersten und fünften Spaltendaten D0 und D4 wenigstens ein Bit auf, welches einen Wert von „1“ hat, und alle Bits der anderen Spaltendaten D1, D2, D3, D5, D6 und D7 haben einen Wert von „0“. Demzufolge können die ersten Indexdaten ID1, wie in 7A veranschaulicht, unter Verwendung des Logikgatters 220 und des Indexspeichers 230, wie unter Bezugnahme auf 5 beschrieben, erzeugt werden. Das erste und das fünfte Indexbit 10 und 14 der ersten Indexdaten ID1 haben den Wert von „1“ und die anderen Bits 11, 12, 13, 15, 16 und 17 der ersten Indexdaten ID1 haben den Wert von „0“.
  • Die Spaltendaten D0∼D7 können an den Spaltenadressen CA0~CA7 des ersten Datenblocks DB1 gespeichert werden, und die ersten Indexdaten ID1 können an einer Basisspaltenadresse CAb des ersten Datenblocks DB1 gespeichert werden.
  • Bezugnehmend auf 7B können die zweiten Schreibdaten WRD2 erste bis achte Spaltendaten D0D7 aufweisen, welche an ersten bis achten Spaltenadressen CA0~CA7 jeweils gespeichert werden. Jede der ersten bis achten Spaltendaten D0~D7 können erste bis achte Bits B0~B7 aufweisen.
  • Im Fall der zweiten Schreibdaten WRD2 weisen die zweiten, vierten und siebten Spaltendaten D1, D3 und D6 wenigstens ein Bit auf, welches einen Wert von „1“ hat, und alle Bits der anderen Spaltendaten D0, D2, D4, D5 und D7 haben einen Wert von „0“. Demzufolge können die zweiten Indexdaten ID2, wie in 7B veranschaulicht, unter Verwendung des Logikgatters 220 und des Indexspeichers 230 wie unter Bezugnahme auf 5 beschrieben erzeugt werden. Das zweite, vierte und siebte Indexbit 11, 13 und 16 der zweiten Indexdaten ID2 haben den Wert von „1“ und die anderen Bits 10, 12, 14, 15 und 17 der zweiten Indexdaten ID2 haben den Wert von „0“.
  • Die Spaltendaten D0D7 können an den Spaltenadressen CA0~CA7 des zweiten Datenblocks DB2 gespeichert werden, und die zweiten Indexdaten ID2 können an einer Basisspaltenadresse CAb des zweiten Datenblocks DB2 gespeichert werden.
  • Obwohl Beispiele veranschaulichen, dass die jeweiligen Schreibdaten die acht Spaltendaten, welche den acht Spaltenadressen entsprechen, aufweisen und die jeweiligen Spaltendaten die acht Bits aufweisen, kann die Anzahl der Spaltendaten in den jeweiligen Schreibdaten, und die Anzahl von Bits in den jeweiligen Spaltendaten verschiedentlich bestimmt werden.
  • Die Abbildungsrelation zwischen den Spaltenadressen CA0~CA7 und der entsprechenden Basis-Spaltenadresse CAb kann verschiedentlich bestimmt werden. Beispielsweise kann die Basis-Spaltenadresse einen Wert von „k“ haben, und die erste bis achte Spaltenadresse CA0~CA7 können nacheinander folgend ansteigende Wert von „k+1“ bis „k+8“ haben.
  • 8 ist ein Zeitdiagramm, welches eine beispielhafte Schreiboperation einer Speichervorrichtung gemäß beispielhaften Ausführungsformen veranschaulicht.
  • 8 zeigt, dass Zeitpunkte t1~t10 ansteigenden Flanken eines Taktsignals CLK entsprechen, was zur Zweckmäßigkeit der Veranschaulichung ist, und beispielhafte Ausführungsformen sind nicht darauf beschränkt.
  • Bezugnehmend auf 8 kann ein Spaltenadresssignal COL_ADDR eine erste bis achte Spaltenadresse CA0~CA7 nacheinander folgend repräsentieren und demnach können erste bis achte Spaltendaten D0~D7, welche in jeweiligen Schreibdaten WRDi enthalten sind, an der ersten bis achten Spaltenadresse CA0~CA7 des entsprechenden Datenblocks DBi während einer ersten bis achten Zeitperiode TP1TP8 gespeichert werden. Das Spaltenadresssignal COL_ADDR kann eine Basis-Spaltenadresse CAb während einer neunten Zeitperiode TP9 repräsentieren, nachdem die jeweiligen Schreibdaten WRDi gespeichert sind, und demnach können die jeweiligen Indexdaten IDi an der Basis-Spaltenadresse CAb des entsprechenden Datenblocks DBi gespeichert werden.
  • 9 ist ein Blockschaltbild, welches eine Speichervorrichtung gemäß beispielhaften Ausführungsformen veranschaulicht.
  • 9 ist zum Beschreiben einer Berechnungsoperation und demnach sind nur Komponenten für die Berechnungsoperation veranschaulicht und andere Komponenten sind in 9 ausgelassen. Eine Konfiguration, welche einer Speicherbank entspricht, ist in 9 zur Zweckmäßigkeit der Veranschaulichung veranschaulicht.
  • Bezugnehmend auf 9 kann eine Speichervorrichtung eine Mehrzahl von Datenblöcken DB1~DBn, eine Eingangs-/Ausgangs-Gating-Schaltung 62 und einen Berechnungsblock 300 aufweisen. 9 veranschaulicht eine Konfiguration eines ersten Datenblocks DB1 als ein Beispiel und die anderen Datenblöcke DB2~DBn können dieselbe Konfiguration haben wie der erste Datenblock DB1. Jeder Datenblock kann eine Mehrzahl von Unterspeicherzellenanordnungen SARR aufweisen, und jede Unterspeicherzellenanordnung SARR kann eine Mehrzahl von Speicherzellen aufweisen. In einer Berechnungsoperation können die internen Daten DW1~DWn, welche von den Datenblöcken DB1~DBn ausgelesen werden, für den Berechnungsblock 300 nacheinander folgend über die lokalen Eingangs-/Ausgangs-Leitungen LIO und die globalen Eingangs-/AusgangsLeitungen GIO vorgesehen werden. Die hierarchische Struktur des Datenblocks kann verschiedentlich implementiert sein.
  • Die Eingangs-/Ausgangs-Gating-Schaltung 62 kann die lokalen Eingangs-/Ausgangs-Leitungen, welche einer Spaltenadresse entsprechen, für die internen Daten DW1~DWn basierend auf einem Spaltenauswahlsignal CSL auswählen. Das Spaltenauswahlsignal CSL kann von dem Spaltendekoder 470 wie unter Bezugnahme auf 3 beschrieben vorgesehen werden. Die Eingangs-/Ausgangs-Gating-Schaltung 62 kann eine Mehrzahl von Umschaltschaltungen MUX1MUXn aufweisen, welche jeweils der Mehrzahl von Datenblöcken DB1~DBn entsprechen.
  • Der Berechnungsblock 300 kann eine Mehrzahl von Berechnungseinheiten CU1~CUn aufweisen, welche der Mehrzahl von Datenblöcken DB1~DBn entsprechen. 9 veranschaulicht, dass jede Berechnungseinheit jedem Datenblock als ein Beispiel zugeordnet ist, und jede Berechnungseinheit kann pro zwei oder mehr Datenblöcken angeordnet sein. Jede der Berechnungseinheiten CU1~CUn kann die gemeinsamen Sendedaten DA und die jeweiligen internen Daten DW1~DWn, welche von jedem der Datenblöcke DB1~DBn gelesen werden, empfangen. Die Berechnungseinheiten CU1~CUn können die Berechnungen basierend auf den Sendedaten DA und den jeweiligen internen Daten DW1~DWn durchführen, um jeweils Berechnungsergebnisdaten DR1~DRn vorzusehen.
  • Wie untenstehend beschrieben werden wird, können die Berechnungseinheiten CU1~CUn ein Mehrzahl von Überspring-Aktivierungssignalen SEN1~SENn unabhängig basierend auf den jeweiligen Indexdaten ID1~IDn in dem Berechnungs-Überspringmodus erzeugen. Die Überspring-Aktivierungssignale SEN1~SENn können für die entsprechenden Umschaltschaltungen MUX1MUXn der Eingangs-/Ausgangs-Gating-Schaltung 62 vorgesehen werden. Jede der Umschaltschaltungen MUX1~MUXn kann die gültigen Daten von dem entsprechenden Datenblock ausgeben, wenn das entsprechende Überspring-Aktivierungssignal aktiviert ist und die ungültigen Daten von dem entsprechenden Datenblock blockieren, wenn das entsprechende Überspring-Aktivierungssignal deaktiviert ist.
  • 10 ist ein Diagramm, welches eine beispielhafte Ausführungsform einer Berechnungseinheit veranschaulicht, welche in der Berechnungsschaltung in der Speichervorrichtung der 9 enthalten ist.
  • Bezugnehmend auf 10 kann eine Berechnungseinheit 310 einen Überspring-Controller SKC 320 und einen Berechner MAC 330 aufweisen.
  • Der Überspring-Controller 320 kann ein entsprechendes Überspring-Aktivierungssignal SENi basierend auf jeweiligen Indexdaten IDi, welche den jeweiligen internen Daten DWi entsprechen, erzeugen. Wie untenstehend unter Bezugnahme auf 13A und 13B beschrieben werden wird, kann der Überspring-Controller 320 die jeweiligen Indexdaten IDi in Antwort auf eine Aktivierung eines Index-Aktivierungssignals IEN empfangen.
  • Der Berechner 330 kann die Berechnungen basierend auf den Sendedaten DA und den jeweiligen internen Daten DWi durchführen und die ungültigen Daten der jeweiligen internen Daten DWi basierend auf dem jeweiligen Überspring-Aktivierungssignal SENi in dem Berechnungs-Überspringmodus auslassen.
  • Wie untenstehend unter Bezugnahme auf 13A und 13B beschrieben werden wird, kann, basierend auf den jeweiligen Indexdaten IDi in dem Berechnungs-Überspringmodus der Überspring-Controller 320 das jeweilige Überspring-Aktivierungssignal SENi aktivieren, wenn die jeweiligen internen Daten DWi von den Spaltenadressen gelesen werden, welche den gültigen Daten entsprechen, und er deaktiviert das jeweilige Überspring-Aktivierungssignal SENi, wenn die jeweiligen internen Daten DWi von der Spaltenadresse gelesen sind, welche den ungültigen Daten entspricht. Der Berechner 330 kann in der Lage sein, die Berechnungen basierend auf den Sendedaten DA und den gültigen Daten durchzuführen, wenn das jeweilige Überspring-Aktivierungssignal SENi aktiviert ist, und der Berechner 330 kann deaktiviert werden, wenn das jeweilige Überspring-Aktivierungssignal SENi deaktiviert ist.
  • Wie untenstehend unter Bezugnahme auf 14 beschrieben werden wird, kann der Überspring-Controller 320 das jeweilige Überspring-Aktivierungssignal SENi unabhängig von den jeweiligen Indexdaten IDi in einem normalen Berechnungsmodus aktivieren.
  • 11 ist ein Diagramm, welches eine beispielhafte Anordnung eines Berechners, welcher in der Berechnungseinheit der 10 enthalten ist, veranschaulicht.
  • Bezugnehmend auf 11 kann ein Berechner MAC erste Eingangsanschlüsse aufweisen, welche mit ersten Knoten N1 verbunden sind, welche die jeweiligen internen Daten DWi[N-1:0] empfangen, und zweite Eingangsanschlüsse, welche mit zweiten Knoten N2 verbunden sind, welche die Sendedaten DA[N-1:0] empfangen. Die ersten Knoten N1 sind mit Ausgangsanschlüssen eines Eingangs-/Ausgangs-Leseverstärkers IOSA verbunden, welcher Signale auf globalen Eingangs-/Ausgangs-Leitungen GIO und GIOB verstärkt, um verstärkte Signale auszugeben, und die zweiten Knoten N2 sind mit Eingangsanschlüssen eines Eingangs-/Ausgangs-Treibers IODRV verbunden, welcher die globalen Eingangs-/Ausgangs-Leitungen GIO und GIOB treibt bzw. betreibt.
  • Während einer normalen Leseoperation ist der Berechner MAC deaktiviert und der Eingangs-/Ausgangs-Leseverstärker IOSA verstärkt die Lesedaten, welche durch die globalen Eingangs-/Ausgangsleitungen GIO und GIOB vorgesehen werden, um die verstärkten Signale für außerhalb vorzusehen. Während einer normalen Schreiboperation ist der Berechner MAC deaktiviert und der Eingangs-/Ausgangs-Treiber IODRV treibt die globalen Eingangs-/Ausgangs-Leitungen GIO und GIOB basierend auf den Schreibdaten, welche von außerhalb vorgesehen werden. Während eines Berechnungsmodus ist der Berechner MAC aktiviert, um die Sendedaten DA[N-1:0] und die jeweiligen internen Daten DWi[N-1:0] zu empfangen. In diesem Fall ist der Eingangs-/Ausgangs-Leseverstärker IOSA aktiviert, um die jeweiligen internen Daten DWi[N-1:0] auszugeben, und der Eingangs-/Ausgangs-Treiber IODRV ist deaktiviert, um zu verhindern, dass die Sendedaten DA[N-1:0] für die internen Speicherzellen vorgesehen werden.
  • In einigen beispielhaften Ausführungsformen können, wie in 11 veranschaulicht ist, die Ausgangsanschlüsse des Berechners MAC, welche jeweilige Berechnungsergebnisdaten DRi vorsehen, mit den ersten Knoten N1 verbunden sein, d.h. den Ausgangsanschlüssen der Eingangs-/Ausgangs-Leseverstärker IOSA. Demnach können die jeweiligen Berechnungsergebnisdaten DRi für außerhalb durch den normalen Lesepfad vorgesehen werden. Der Eingangs-/Ausgangs-Leseverstärker IOSA ist deaktiviert, während die Berechnungseinheit CU die jeweiligen Berechnungsergebnisdaten DRi vorsieht. In anderen beispielhaften Ausführungsformen können die Ausgangsanschlüsse des Berechners MAC nicht mit den ersten Knoten N1 verbunden sein, und die jeweiligen Berechnungsergebnisdaten DRi können durch einen zusätzlichen Datenpfad unterschiedlich von dem normalen Lesepfad vorgesehen werden. In noch anderen beispielhaften Ausführungsformen können die Ausgangsknoten des Berechners MAC mit den zweiten Knoten N2 verbunden sein, um die jeweiligen Berechnungsergebnisdaten DRi in den Speicherzellen durch den normalen Schreibpfad zu speichern.
  • 11 veranschaulicht ein globales Differential-Leitungspaar GIO und GIOB zur Zweckmäßigkeit der Veranschaulichung, jeder Berechner MAC aber kann mit N globalen Leitungspaaren verbunden sein, um N-Bit-Sendedaten DA[N-1:0] und N-Bit jeweilige interne Daten DWi[N-1:0] zu empfangen. Beispielsweise kann N gleich 8, 16 oder 21 sein, abhängig von Betriebsmodi der gestapelten Speichervorrichtung.
  • 12 ist ein Diagramm, welches eine beispielhafte Ausführungsform eines Berechners, welcher in der Berechnungseinheit der 10 enthalten ist, veranschaulicht.
  • Bezugnehmend auf 12 kann jeder Berechner 500 eine Multiplikationsschaltung 520 und eine Sammelschaltung 540 aufweisen. Die Multiplikationsschaltung 520 kann Puffer 521 und 522 und einen Multiplizierer 523 aufweisen, welcher konfiguriert ist, um die Sendedaten DA[N-1:0] und die jeweiligen internen Daten DWi[N-1:0] zu multiplizieren. Die Sammelschaltung 540 kann einen Addierer 541 und einen Puffer 542 aufweisen, um Ausgaben der Multiplikationsschaltung 520 anzusammeln, um die jeweiligen Berechnungsergebnisdaten DRi vorzusehen. Die Sammelschaltung 540 kann in Antwort auf ein Reset-Signal RST initialisiert werden und die jeweiligen Berechnungsergebnisdaten DRi in Antwort auf ein Ausgangs-Aktivierungssignal OUTEN ausgeben. Unter Verwendung des Berechners 500 kann, wie in 11 veranschaulicht ist, eine Matrix-Berechnung effizient durchgeführt werden, wie unter Bezugnahme auf 16 beschrieben werden wird.
  • Der Berechner 500 kann selektiv in Antwort auf das jeweilige Überspring-Aktivierungssignal SENi aktiviert werden. Der Berechner 500 kann aktiviert werden, um die Berechnungen basierend auf den Sendedaten DA und den jeweiligen internen Daten DWi[N-1:0], welche den gültigen Daten entsprechen, durchzuführen, wenn das jeweilige Überspring-Aktivierungssignal SENi aktiviert ist bzw. wird, und der Berechner 500 kann deaktiviert sein bzw. werden, wenn das jeweilige Überspring-Aktivierungssignal SENi deaktiviert ist bzw. wird.
  • 13A und 13B sind Zeitdiagramme, welche eine beispielhafte Operation eines Berechnungs-Überspringmodus in einer Speichervorrichtung gemäß beispielhaften Ausführungsformen veranschaulichen, und 14 ist ein Zeitdiagramm, welches eine beispielhafte Operation eines normalen Berechnungsmodus in einer Speichervorrichtung gemäß beispielhaften Ausführungsformen veranschaulicht.
  • 13A, 13B und 14 zeigen, dass Zeitpunkte t1~t10 ansteigenden Flanken eines Taktsignals CLK entsprechen, was für die Zweckmäßigkeit der Veranschaulichung ist, und beispielhafte Ausführungsformen sind nicht darauf beschränkt. Beispielsweise kann ein logisch hoher Pegel H eines Modussignals MD den Berechnungs-Überspringmodus repräsentieren, und ein logisch niedriger Pegel L des Modussignals MD kann den normalen Berechnungsmodus repräsentieren.
  • 13A veranschaulicht eine Überspring-Berechnungsoperation des ersten Datenblocks DB1 basierend auf den ersten internen Daten identisch mit den ersten Schreibdaten WDR1, wie in 7A veranschaulicht, und 13A veranschaulicht eine Überspring-Berechnungsoperation des zweiten Datenblocks DB2 basierend auf den zweiten internen Daten identisch zu den zweiten Schreibdaten WDR2, wie in 7B veranschaulicht.
  • Bezugnehmend auf 13A kann das Spaltenadresssignal COL_ADDR nacheinander folgend eine Basis-Spaltenadresse CAb und eine erste bis achte Spaltenadresse CA0~CA7 repräsentieren. Ein Index-Aktivierungssignals IEN kann während einer ersten Zeitperiode TP1 aktiviert werden, und der Überspring-Controller 320 in 10 kann die ersten Indexdaten ID 1 in Antwort auf die Aktivierung des Index-Aktivierungssignals IEN empfangen. Der Überspring-Controller 320 kann das erste Überspring-Aktivierungssignal SEN1 basierend auf den ersten Indexdaten ID1 erzeugen, wie in 7A veranschaulicht ist, derart, dass das erste Überspring-Aktivierungssignal SEN1 während einer zweiten und sechsten Zeitperiode TP2 und TP6 aktiviert sein kann. Basierend auf dem ersten Überspring-Aktivierungssignal SEN1 können nur die ersten und fünften Spaltendaten D0 und D4 durch die globalen Eingangs-/Ausgangs-Leitungen GIO von dem ersten Datenblock DB1 ausgegeben werden, und die anderen Spaltendaten D1, D2, D3, D5, D6 und D7 können nicht ausgegeben werden. Zusätzlich können die ersten Berechnungsergebnisdaten DR1 Werte VL0, VL11 und VL12 haben, welche zu den Zeitpunkten t2 und t6 wie in 13A veranschaulicht, aktualisiert werden, da der Berechner 330 in 10 die Berechnungen hinsichtlich nur der ersten und fünften Spaltendaten D0 und D4 durchführt.
  • Bezugnehmend auf 13B kann das Spaltenadresssignal COL_ADDR nacheinander folgend eine Basis-Spaltenadresse CAb und eine erste bis achte Spaltenadresse CA0~CA7 repräsentieren. Ein Index-Aktivierungssignals IEN kann während einer ersten Zeitperiode TP1 aktiviert werden, und der Überspring-Controller 320 in 10 kann die zweiten Indexdaten ID2 in Antwort auf die Aktivierung des Index-Aktivierungssignals IEN empfangen. Der Überspring-Controller 320 kann das zweite Überspring-Aktivierungssignal SEN2 basierend auf den zweiten Indexdaten ID2, wie in 7B veranschaulicht, erzeugen derart, dass das zweite Überspring-Aktivierungssignal SEN2 während einer dritten, fünften und achten Zeitperiode TP3, TP5 und TP8 aktiviert sein kann. Basierend auf dem zweiten Überspring-Aktivierungssignal SEN2 können nur die zweiten, vierten und siebten Spaltendaten D1, D3 und D6 durch die globalen Eingangs-/AusgangsLeitungen GIO von dem zweiten Datenblock DB2 ausgegeben werden, und die anderen Spaltendaten D0, D2, D4, D5 und D7 können nicht ausgegeben werden. Zusätzlich können die zweiten Berechnungsergebnisdaten DR2 Werte VL0, VL21, VL22 und VL23 haben, welche zu den Zeitpunkten t3, t5 und t8 wie in 13B veranschaulicht, aktualisiert werden, da der Berechner 330 in 10 die Berechnungen hinsichtlich nur der zweiten, vierten und siebten Spaltendaten D1, D3 und D6 durchführt.
  • Bezugnehmend auf 14 kann das Spaltenadresssignal COL_ADDR nacheinander folgend eine erste bis achte Spaltenadresse CA0~CA7 repräsentieren. Ein Index-Aktivierungssignal IEN kann in dem logisch niedrigen Pegel L deaktiviert werden und das jeweilige Überspring-Aktivierungssignal SENi kann in dem logisch hohen Pegel H immer in dem normalen Berechnungsmodus aktiviert sein. Basierend auf dem aktivierten jeweiligen Überspring-Aktivierungssignal SENi können alle der ersten bis achten Spaltendaten D0~D7 nacheinander folgend von dem jeweiligen Datenblock DBi durch die globalen Eingangs-/Ausgangs-Leitungen GIO ausgegeben werden. Die jeweiligen Berechnungsergebnisdaten DRi können Werte VL0~VL7 haben, welche nacheinander folgend zu den Zeitpunkten t2~t8 wie in 14 veranschaulicht, aktualisiert werden, da der Berechner 330 in 10 die Berechnungen hinsichtlich aller der ersten bis achten Spaltendaten D0~D7 durchführt.
  • 15 ist ein Diagramm, welches eine beispielhafte Ausführungsform zum Ausgeben von Berechnungsergebnisdaten veranschaulicht.
  • 15 veranschaulicht ein Ausgeben der Berechnungsergebnisdaten, welche einem Kanal CHANNEL-0 entsprechen. Der eine Kanal CHANNEL-0 kann eine Mehrzahl von Speicherbänken BANK0~BANK15 aufweisen, und jede der Speicherbänke BANK0~BANK15 kann eine Mehrzahl von Berechnungseinheiten CU0~CU15 aufweisen. Die Speicherbänke BANK0~BANK15 können in zwei Pseudokanäle PSE-0 und PSE-1 unterteilt sein.
  • Jedes von Berechnungshalbleiter-Dies, in welchen die Berechnungseinheiten gebildet sind, kann ferner eine Mehrzahl von Bank-Addierern 610a~610p aufweisen. Jeder der Bank-Addierer 610a~610p kann Ausgaben der Berechnungseinheiten CU0~CU15 in jeder der Speicherbänke BANK0~BANK15 summieren, um jedes von Bank-Ergebnissignalen BR0~BR15 zu erzeugen. Die Bank-Ergebnissignale BR0~BR15 können gleichzeitig durch den Datenbus DBUS, welcher jedem Berechnungshalbleiter-Die entspricht, ausgegeben werden. Beispielsweise kann, wenn der Datenbus, welcher dem einen Berechnungshalbleiter-Die entspricht, eine Datenbreite von 128 Bits hat, und der eine Kanal CHANNEL-0 16 Speicherbänke BANK0~BANK15 aufweist, die Ausgabe jedes Bank-Addierers durch Datenpfade von 8 Bit oder einem Byte des Datenbusses DBUS ausgegeben werden. In anderen Worten gesagt kann das Bank-Ergebnissignal BR0 des ersten Bank-Addierers 610a durch die Datenpfade ausgegeben werden, welche dem ersten Byte BY0 des Datenbusses DBUS entsprechen, das Bank-Ergebnissignal BR1 des zweiten Bank-Addierers 610b kann durch die Datenpfade ausgegeben werden, welche dem zweiten Byte BY1 des Datenbusses DBUS entsprechen, und auf diesem Wege kann das Bank-Ergebnissignal BR15 des 16. Bank-Addierers 610p durch Datenpfade ausgegeben werden, welche dem sechzehnten Byte BY15 des Datenbusses DBUS entsprechen.
  • 16 ist ein Diagramm, welches eine Matrixberechnung unter Verwendung einer Berechnungsschaltung gemäß beispielhaften Ausführungsformen veranschaulicht.
  • 16 veranschaulicht eine Matrix-Vektor-Multiplikation, welche unter Verwendung von Berechnungseinheiten CU0-0 bis CU95-15 in einer gestapelten Speichervorrichtung gemäß beispielhaften Ausführungsformen durchgeführt wird. In 16 entsprechen die Berechnungseinheiten Cui-0 bis Cui-15 der i-ten Zeile (i = 1-95) der i-ten Speicherbank BANKi. Beispielsweise kann die Matrix-Vektor-Multiplikation ein 32-Bit-Modus sein, und jede Speicherbank kann sechzehn Berechnungseinheiten aufweisen. Es wird angenommen, dass jedes der vier Speicherhalbleiter-Dies zwei Kanäle aufweist, und jeder Kanal sechzehn Speicherbänke aufweist. In diesem Fall kann, wenn das eine Speicherhalbleiter-Die als das oben beschriebene Eingangs-/Ausgangs-Halbleiter-Die verwendet wird, und die anderen drei Speicherhalbleiter-Dies als die oben beschriebenen Berechnungs-Halbleiter-Dies verwendet werden, die Anzahl der Speicherbänke, welche in den Berechnungs-Halbleiter-Dies enthalten sind, 96 sein, d.h. 6 Kanäle * 16 Speicherbänke.
  • Der erste Satz der Sendedaten DA0~DA15 während der ersten Periode T1 und der zweite Satz der Sendedaten DA16DA31 werden nacheinander folgend für alle Berechnungseinheiten in allen Speicherbänken vorgesehen. Als solches können Aktivierungen nacheinander folgend gesendet werden. Ebenso werden der erste Satz der internen Daten DW0~DW95 während der ersten Periode T1 und der zweite Satz der internen Daten DW96~DW191 als Gewichtungen nacheinander folgend für die Berechnungseinheit vorgesehen. Die internen Daten entsprechen den Daten, die aus den jeweiligen Speicherbänken gelesen werden. Als solches können die Berechnungseinheiten Punkt-Produktoperationen basierend auf den Aktivierungen und den Gewichtungen, welche nacheinander folgend vorgesehen werden, durchführen. Die Berechnungseinheiten in derselben Speicherbank sehen Teilsummen derselben Ausgangsaktivierung vor. Demzufolge können, nachdem die Punkt-Produktoperationen vollendet sind, die Teilsummen wiederum durch die Bank-Addierer in 16 summiert werden, um die letztendlichen Ergebnisse als die Bankergebnissignale BR0~BR95 vorzusehen.
  • Die Matrix-Vektor-Multiplikation, wie sie in 16 veranschaulicht ist, kann einer 1*1-Konvolution oder einer vollständig verbundenen Schicht entsprechen. Im Falle von MLP und RNN entsprechen die Sendedaten oder die Sendeaktivierungen einer Unteranordnung einer eindimensionalen Eingangsaktivierung. Im Falle von CNN entspricht die Eingangsaktivierung einer 1*1-Unter-Spalte eines Eingangs-Aktivierungstensors.
  • 17 ist eine perspektivische Explosionsdarstellung eines Systems, welches eine gestapelte Speichervorrichtung gemäß beispielhaften Ausführungsformen aufweist.
  • Bezugnehmend auf 17 weist ein System 800 eine gestapelte Speichervorrichtung 1000 und eine Host-Vorrichtung 2000 auf.
  • Die gestapelte Speichervorrichtung 1000 kann ein Basis-Halbleiter-Die oder ein Logik-Halbleiter-Die 1010 aufweisen und eine Mehrzahl von Speicher-Halbleiter-Dies 1070 und 1080, welche mit dem Logik-Halbleiter-Die 1100 gestapelt sind. 17 veranschaulicht ein nichtbeschränkendes Beispiel eines Logik-Halbleiter-Die und zweier Speicher-Halbleiter-Dies. Zwei oder mehr Logik-Halbleiter-Dies und ein, drei oder mehr Speicher-Halbleiter-Dies können in der Stapelstruktur enthalten sein. Zusätzlich veranschaulicht 17 ein nichtbeschränkendes Beispiel darin, dass die Speicher-Halbleiter-Dies 1070 und 1080 mit dem Logik-Halbleiter-Die 1010 vertikal gestapelt sind. Wie untenstehend unter Bezugnahme auf 19 beschrieben werden wird, können die Speicher-Halbleiter-Dies 1070 und 1080 mit Ausnahme des Logik-Halbleiter-Die 1010 vertikal gestapelt sein, und das Logik-Halbleiter-Die 1010 kann mit den Speicher-Halbleiter-Dies 1070 und 1080 über einen Interposer bzw. eine Verdrahtungslage und/oder ein Basissubstrat elektrisch verbunden sein.
  • Das Logik-Halbleiter-Die 1010 kann eine Speicherschnittstelle MIF 1020 und eine Logik aufweisen, um auf integrierte Speicherschaltungen 1071 und 1081 zuzugreifen, welche in den Speicher-Halbleiter-Dies 1070 und 1080 gebildet sind. Solch eine Logik kann eine Steuerschaltung CTRL 1030, einen globalen Puffer GBF 1040 und eine Daten-Transformationslogik DTL 1050 aufweisen.
  • Die Speicherschnittstelle 1020 kann eine Kommunikation mit einer externen Vorrichtung, wie beispielsweise der Host-Vorrichtung 2000 über eine Verbindungsvorrichtung 12 durchführen. Die Steuerschaltung 1030 kann den Gesamtbetrieb der gestapelten Speichervorrichtung 1000 steuern. Die Daten-Transformationslogik 1050 kann Logikoperationen auf den Daten durchführen, welche mit dem Speicher-Halbleiter-Dies 1070 und 1080 ausgetauscht werden, oder Daten, welche durch die Speicherschnittstelle 1020 ausgetauscht werden. Beispielsweise kann die Daten-Transformationslogik Max-Pooling, einen Betrieb einer gleichgerichteten Lineareinheit (ReLU, engl. rectified linear unit), kanalmäßige Addition, etc. durchführen.
  • Die Speicher-Halbleiter-Dies 1070 und 1080 können jeweils die integrierten Speicherschaltungen 1071 und 1081 aufweisen. Wenigstens eines der Speicher-Halbleiter-Dies 1070 und 1080 kann ein Berechnungs-Halbleiter-Die 1080 sein, welches eine Berechnungsschaltung 100 aufweist. Wie untenstehend beschrieben werden wird, kann die Berechnungsschaltung 100 ein oder mehrere Berechnungsblöcke aufweisen, und jeder der Berechnungsblöcke kann ein oder mehrere Berechnungseinheiten aufweisen. Jede der Berechnungseinheiten kann jede von Berechnungen basierend auf Sendedaten und internen Daten durchführen, um Berechnungsergebnisdaten vorzusehen. Die Sendedaten können gemeinsam für die Berechnungs-Halbleiter-Dies durch die Silizium-Durchkontaktierungen TSV vorgesehen werden, und die internen Daten können aus der integrierten Speicherschaltung des entsprechenden Berechnungs-Halbleiter-Die gelesen werden.
  • Die Host-Vorrichtung 2000 kann eine Host-Schnittstelle HIF 2110 und Prozessorkerne CR1 2120 und CR2 2130 aufweisen. Die Host-Schnittstelle 2120 kann eine Kommunikation mit einer externen Vorrichtung wie beispielsweise der gestapelten Speichervorrichtung 1000 durch die Verbindungsvorrichtung 12 durchführen.
  • 18 ist ein Diagramm, welches eine Hochbandbreitenspeicher (HBM)-Organisation veranschaulicht.
  • Bezugnehmend auf 18 kann ein HBM 1001 einen Stapel von mehreren DRAM-Halbleiter-Dies 1100, 1200, 1300 und 1400 aufweisen. Der HBM der Stapelstruktur kann durch eine Mehrzahl von unabhängigen Schnittstellen, welche Kanäle genannt werden, optimiert sein. Jeder DRAM-Stapel kann bis zu acht Kanäle in Übereinstimmung mit den HBM-Standards unterstützen. 3 zeigt einen beispielhaften Stapel, welcher vier DRAM-Halbleiter-Dies 1100, 1200, 1300 und 1400 enthält, und jedes DRAM-Halbleiter-Die unterstützt zwei Kanäle CHANNEL0 und CHANNEL1. Beispielsweise kann, wie in 4 veranschaulicht ist, das vierte Speicher-Halbleiter-Die 1400 zwei integrierte Speicherschaltungen 1401 und 1402 aufweisen, welche den zwei Kanälen entsprechen.
  • Das vierte Speicher-Halbleiter-Die 1400 beispielsweise kann dem BerechnungsHalbleiter-Die entsprechen, welches die Berechnungseinheiten aufweist. Jede der integrierten Speicherschaltungen 1401 und 1402 kann eine Mehrzahl von Speicherbänken MB aufweisen, und jede Speicherbank MB kann einen Berechnungsblock CB 300 aufweisen. Wie obenstehend beschrieben ist, kann eine Berechnungsschaltung 100 eine Mehrzahl von Berechnungsblöcken 300 aufweisen, und jeder Berechnungsblock 300 kann eine Mehrzahl von Berechnungseinheiten CU aufweisen. Als solches können die Berechnungseinheiten verteilt in den Speicherbänken 300 des Berechnungs-Halbleiter-Die angeordnet sein.
  • Jeder Kanal sieht Zugriff auf einen unabhängigen Satz von DRAM-Bänken vor. Anforderungen von einem Kanal können nicht auf Daten zugreifen, welche einem unterschiedlichen Kanal zugeteilt sind. Kanäle sind unabhängig getaktet und müssen nicht synchron sein. Jedes der Speicher-Halbleiter-Dies 1100, 1200, 1300 und 1400 des HBM 1001 kann auf das andere Speicher-Halbleiter-Die zum Übertragen der Sendedaten und/oder der Berechnungsergebnisdaten zugreifen.
  • Der HBM 1001 kann ferner ein Schnittstellen-Die 1010 oder ein Logik-Halbleiter-Die aufweisen, welches an einem Boden der Stapelstruktur angeordnet ist, um ein Signal-Routing und andere Funktionen vorzusehen. Einige Funktionen für die DRAM-Halbleiter-Dies 1100, 1200, 1300 und 1400 können in dem Schnittstellen-Die 1010 implementiert sein.
  • 19 und 20 sind Diagramme, welche Packaging-Strukturen einer gestapelten Speichervorrichtung gemäß beispielhaften Ausführungsformen veranschaulichen.
  • Bezugnehmend auf 19 kann ein Speicherchip 2001 einen Interposer ITP und eine gestapelte Speichervorrichtung, welche auf dem Interposer ITP gestapelt ist, aufweisen. Die gestapelte Speichervorrichtung kann ein Logik-Halbleiter-Die LSD und eine Mehrzahl von Speicher-Halbleiter-Dies MSD1∼MSD4 aufweisen.
  • Bezugnehmend auf 20 kann ein Speicherchip 2002 ein Basissubstrat BSUB und eine gestapelte Speichervorrichtung, welche auf dem Basissubstrat BSUB gestapelt ist, aufweisen. Die gestapelte Speichervorrichtung kann ein Logik-Halbleiter-Die LSD und eine Mehrzahl von Speicher-Halbleiter-Dies MSD1~MSD4 aufweisen.
  • 19 veranschaulicht eine Struktur, in welcher die Speicher-Halbleiter-Dies MSD1∼MSD4 mit Ausnahme des Logik-Halbleiter-Die LSD vertikal gestapelt sind, und das Logik-Halbleiter-Die LSD elektrisch mit den Speicher-Halbleiter-Dies MSD1~MSD4 über den Interposer ITP oder das Basissubstrat verbunden ist. Im Gegensatz hierzu veranschaulicht 20 eine Struktur, in welcher das Logik-Halbleiter-Die LSD vertikal mit den Speicher-Halbleiter-Dies MSD1~MSD4 gestapelt ist.
  • Wie obenstehend beschrieben ist, kann wenigstens eines der Speicher-Halbleiter-Dies MSD1∼MSD4 das Berechnungs-Halbleiter-Die sein, welches die Berechnungsschaltung CAL aufweisen. Die Berechnungsschaltungen CAL können eine Mehrzahl von Berechnungseinheiten aufweisen, welche die Berechnungen basierend auf den gemeinsamen Sendedaten und den jeweiligen internen Daten durchführen.
  • Das Basissubstrat BSUB kann dasselbe sein wie der Interposer ITP oder den Interposer ITP aufweisen. Das Basissubstrat BSUB kann eine bedruckte bzw. gedruckte Leiterplatte (PCB) sein. Externe Verbindungselemente wie beispielsweise leitfähige Erhebungen BMP können auf einer unteren Oberfläche des Basissubstrats BSUB gebildet sein, und interne Verbindungselemente wie beispielsweise leitfähige Erhebungen können auf einer oberen Oberfläche des Basissubstrat BSUB gebildet sein. In der beispielhaften Ausführungsform der 19 können das Logik-Halbleiter-Die LSD und die Speicher-Halbleiter-Dies MSD1MSD4 elektrisch durch die Silizium-Durchkontaktierungen verbunden sein. Die gestapelten Halbleiter-Dies LSD und MSD1MSD4 können unter Verwendung von Harz RSN eingehaust sein.
  • 21 ist ein Blockschaltbild, welches ein mobiles System gemäß beispielhaften Ausführungsformen veranschaulicht.
  • Bezugnehmend auf 21 weist ein mobiles System 3000 einen Anwendungsprozessor 3100, eine Konnektivitätseinheit 3200, eine flüchtige Speichervorrichtung VM 3300, eine nichtflüchtige Speichervorrichtung NVM 3400, eine Nutzerschnittstelle 3500 und eine Leistungsversorgung 3600, welche über einen Bus verbunden ist, auf.
  • Der Anwendungsprozessor 3100 kann Anwendungen wie beispielsweise einen Webbrowser, eine Spieleanwendung, einen Videoabspieler etc. ausführen. Die Konnektivitätseinheit 3200 kann eine verdrahtete oder drahtlose Kommunikation mit einer externen Vorrichtung durchführen. Die flüchtige Speichervorrichtung 3300 kann Daten, welche durch den Anwendungsprozessor 3100 verarbeitet sind, speichern, oder kann als ein Arbeitsspeicher arbeiten. Beispielsweise kann die flüchtige Speichervorrichtung 3300 ein DRAM sein wie beispielsweise ein synchroner dynamischer Doppeldatenraten-Direktzugriffsspeicher (DDRSDRAM), ein Niedrigleistungs-DDR (LPDDR)-SDRAM, ein Graphik-DDR (GDDR)-SDRAM, ein Rambus-DRAM (RDRAM) etc. sein. Die nichtflüchtige Speichervorrichtung 3400 kann ein Boot-Abbild zum Booten des mobilen Systems 3000 und andere Daten speichern. Die Nutzerschnittstelle 3500 kann wenigstens eine Eingabevorrichtung wie beispielsweise eine Tastatur, einen Touchscreen etc. aufweisen, und wenigstens eine Ausgabevorrichtung wie beispielsweise einen Lautsprecher, eine Anzeigevorrichtung etc. Die Leistungsversorgung 3600 kann eine Leistungsversorgungsspannung zu dem mobilen System 3000 zuführen. In einer beispielhaften Ausführungsform der erfinderischen Konzepte kann das mobile System 3000 ferner einen Kamerabildprozessor (CIS) und/oder eine Speichervorrichtung wie beispielsweise eine Speicherkarte, ein Festkörperlaufwerk (SSD), eine Festplatte (HDD), einen Compaktdisk-nur-Lesespeicher (CD-ROM) etc. aufweisen.
  • Die flüchtige Speichervorrichtung 3300 und/oder die nichtflüchtige Speichervorrichtung 3400 können in einer gestapelten Struktur implementiert sein wie unter Bezugnahme auf die 17 bis 20 beschrieben ist. Die gestapelte Struktur kann eine Mehrzahl von Speicher-Halbleiter-Dies aufweisen, welche durch die Silizium-Durchkontaktierungen verbunden sind, und oben beschriebene Berechnungseinheiten sind in wenigstens einem der Speicher-Halbleiter-Dies gebildet.
  • Wie obenstehend beschrieben ist, können die Speichervorrichtung und das Verfahren zum Betreiben der Speichervorrichtung gemäß beispielhaften Ausführungsformen Datenmengen verringern, welche zwischen der gestapelten Speichervorrichtung, dem Logik-Halbleiter-Die und der externen Vorrichtung ausgetauscht werden, um eine Datenverarbeitungszeit und einen Leistungsverbrauch zu verringern durch ein paralleles Durchführen einer speicherintensiven oder datenintensiven Datenverarbeitung durch die Mehrzahl von Berechnungseinheiten, welche in dem Speicher-Halbleiter-Die enthalten ist.
  • Zusätzlich können die Speichervorrichtung und das Verfahren zum Betreiben der Speichervorrichtung gemäß beispielhaften Ausführungsformen einen Leistungsverbrauch durch ein Auslassen der Berechnungen und der Leseoperation hinsichtlich der ungültigen Daten durch den Berechnungs-Überspringmodus basierend auf den Indexdaten verringern.
  • Beispielhafte Ausführungsformen der vorliegenden erfinderischen Konzepte können auf beliebige Vorrichtungen und Systeme, die eine Speichervorrichtung aufweisen, angewandt werden. Beispielsweise können beispielhafte Ausführungsformen der vorliegenden erfinderischen Konzepte auf Systeme wie beispielsweise ein Mobiltelefon, ein Smartphone, einen persönlichen digitalen Assistenten (PDA), einen tragbaren Multimedia-Abspieler (PMP), eine Digitalkamera, einen Personal Computer (PC), einen Server-Computer, eine Workstation, einen Laptop-Computer, einen digitalen Fernseher, eine Set-Top-Box, eine tragbare Spielekonsole, ein Navigationssystem etc. angewandt werden.
  • Gemäß einer oder mehreren beispielhaften Ausführungsformen können die Einheiten und/oder Vorrichtungen, welche obenstehend Elemente der Halbleiterspeichervorrichtung 30 wie beispielsweise den Indexdatenerzeuger (IDG) 200 und die Berechnungsschaltung (CAL) 100 und Unterelemente davon wie beispielsweise die Erzeugungseinheit 210 und die Berechnungseinheit 310 jeweils aufweisend beschrieben wurden, unter Verwendung von Hardware, einer Kombination von Hardware und Software oder einem nichtvergänglichen Speichermedium, welches Software speichert, welche ausführbar ist, um die Funktionen derselben durchzuführen, implementiert werden.
  • Hardware kann implementiert werden unter Verwendung von Verarbeitungsschaltungen wie beispielsweise, jedoch nicht beschränkt auf einen oder mehrere Prozessoren, eine oder mehrere zentrale Verarbeitungseinheit(en) (CPUs), einen oder mehrere Controller, eine oder mehrere arithmetische Logikeinheiten (ALUs), einen oder mehrere digitale Signalprozessoren (DSPs), einen oder mehrere Mikrocomputer, ein oder mehrere Field Programmable Gate Arrays (FPGAs), ein oder mehrere Ein-Chip-Systeme (SoCs), eine oder mehrere programmierbare Logikeinheiten (PLUs), einen oder mehrere Mikroprozessoren, eine oder mehrere anwendungsspezifische integrierte Schaltungen (ASICs) oder eine beliebige andere Vorrichtung oder Vorrichtungen, welche in der Lage sind, in einer definierten Art und Weise auf Befehle zu antworten und diese auszuführen.
  • Software kann ein Computerprogramm, Programmcode, Befehle oder einige Kombinationen davon für ein unabhängiges oder gemeinsames Befehlen oder Konfigurieren einer Hardwarevorrichtung, um wie erwünscht zu arbeiten, aufweisen. Das Computerprogramm und/oder Programmcode können programm- oder computerlesbare Befehle, Softwarekomponenten, Softwaremodule, Datendateien, Datenstrukturen etc. aufweisen, welche in der Lage sind, durch ein oder mehrere Hardwarevorrichtungen implementiert zu werden wie beispielsweise ein oder mehrere Hardwarevorrichtungen, welche obenstehend erwähnt sind. Beispiele von Programmcode weisen sowohl Maschinencode, der durch einen Compiler erzeugt wird und Programmcode höherer Ebenen auf, welcher unter Verwendung eines Interpreters ausgeführt wird.
  • Beispielsweise kann, wenn eine Hardwarevorrichtung eine Computerverarbeitungsvorrichtung (beispielsweise ein oder mehrere Prozessoren, CPUs, Controller, ALUs, DSPs, Mikrocomputer, Mikroprozessoren etc.) ist, die Computerverarbeitungsvorrichtung konfiguriert sein, um Programmcode durch ein Durchführen arithmetischer, logischer und Eingangs-/Ausgangs-Operationen bzw. Eingabe-/Ausgabe-Operationen gemäß dem Programmcode auszuführen. Sobald der Programmcode in eine Computerverarbeitungsvorrichtung geladen ist, kann die Computerverarbeitungsvorrichtung programmiert werden, um den Programmcode durchzuführen, wodurch die Computerverarbeitungsvorrichtung in eine Spezialzweck-Computerverarbeitungsvorrichtung umgewandelt wird. In einem spezifischeren Beispiel wird, wenn der Programmcode in einen Prozessor geladen ist, der Prozessor programmiert, um den Programmcode und Operationen, welche dazu entsprechen, durchzuführen, wodurch der Prozessor in einen Spezialzweck-Prozessor umgewandelt wird. In einem anderen Beispiel kann die Hardwarevorrichtung eine integrierte Schaltung sein, welche kundenspezifisch in eine Spezialzweck-Verarbeitungsschaltung (beispielsweise einen ASIC) angepasst ist.
  • Eine Hardwarevorrichtung, wie beispielsweise eine Computerverarbeitungsvorrichtung kann ein Betriebssystem (OS) und ein oder mehrere Softwareanwendungen, welche das OS betreiben, betreiben. Die Computerverarbeitungsvorrichtung kann ebenso auf Daten zugreifen, diese speichern, manipulieren, verarbeiten und erzeugen in Antwort auf die Ausführung der Software. Zur Einfachheit können ein oder mehrere beispielhafte Ausführungsformen beispielhaft als eine Computerverarbeitungsvorrichtung dargestellt sein; ein Fachmann jedoch wird anerkennen, dass eine Hardwarevorrichtung mehrere Verarbeitungselemente und mehrere Typen von Verarbeitungselementen aufweisen kann. Beispielsweise kann eine Hardwarevorrichtung mehrere Prozessoren oder einen Prozessor und einen Controller aufweisen. Zusätzlich sind andere Verarbeitungskonfigurationen möglich, wie beispielsweise parallele Prozessoren.
  • Software und/oder Daten können permanent oder vorübergehendausgeführt sein in einen beliebigen Typ von Speichermedien einschließen jedoch nicht beschränkt auf eine beliebige Maschine, Komponente, physikalische oder virtuelle Ausstattung oder Computerspeichermedium oder Vorrichtung welche8s) in der Lage ist, Befehle oder Daten vorzusehen für oder interpretiert zu werden durch eine Hardwarevorrichtung. Die Software kann ebenso über netzwerkgekoppelte Computersysteme verteilt sein, so dass die Software in einer verteilten Art und Weise gespeichert und ausgeführt wird. Insbesondere können Software und Daten durch ein oder mehrere computerlesbare Aufzeichnungsmedien gespeichert werden, einschließlich materieller oder nicht-vergänglicher computerlesbarer Speichermedien, wie hierin diskutiert.
  • Speichermedien können ebenso ein oder mehrere Speichervorrichtungen zu Einheiten und/oder Vorrichtungen gemäß einer oder mehreren beispielhaften Ausführungsformen aufweisen. Die eine oder die mehreren Speichervorrichtungen können materielle oder nichtvergängliche computerlesbare Speichermedien sein wie beispielsweise Direktzugriffsspeicher (RAM), Nur-Lese-Speicher (ROM), eine permanente Massenspeichervorrichtung (wie beispielsweise ein Diskettenlaufwerk) und/oder ein beliebiger anderer ähnlicher Datenspeichermechanismus, welcher in der Lage ist, Daten zu speichern und aufzuzeichnen. Die eine oder die mehreren Speichervorrichtungen können konfiguriert sein, um Computerprogramme, Programmcode, Befehle oder einige Kombinationen davon für ein oder mehrere Betriebssysteme und/oder zum Implementieren der beispielhaften Ausführungsformen, welche hierin beschrieben sind, zu speichern. Die Computerprogramme, Programmcode, Befehle oder einige Kombinationen davon können ebenso von einem separaten computerlesbaren Speichermedium in die eine oder mehreren Speichervorrichtungen und/oder eine oder mehrere Computerverarbeitungsvorrichtungen unter Verwendung eines Laufwerkmechanismus geladen werden. Solch ein separates computerlesbares Speichermedium kann ein Universal Serial Bus (USB-Flash-Laufwerk), einen Speicherstick, ein Blue-Ray/DVD/CD-ROM-Laufwerk, eine Speicherkarte und/oder andere ähnliche computerlesbare Speichermedien aufweisen. Die Computerprogramme, der Programmcode, die Befehle oder einige Kombinationen davon können in die eine oder mehreren Speichervorrichtungen und/oder die eine oder die mehreren Computerverarbeitungsvorrichtungen von einer entfernten Datenspeichervorrichtung über eine Netzwerkschnittstelle geladen werden, eher als über ein computerlesbares Speichermedium. Zusätzlich können die Computerprogramme, der Programmcode, die Befehle oder einige Kombinationen davon in den einen oder die mehreren Speichervorrichtungen und/oder den einen oder die mehreren Prozessoren von einem entfernten Berechnungssystem geladen werden, welches konfiguriert ist, um die Computerprogramme, den Programmcode, die Instruktionen oder einige Kombinationen davon über ein Netzwerk zu übertragen und/oder zu verteilen. Das entfernte Berechnungssystem kann die Computerprogramme, den Programmcode, die Befehle oder einige Kombinationen davon über eine verdrahtete Schnittstelle, eine Funkschnittstelle und/oder ein beliebiges anderes ähnliches Medium übertragen und/oder verteilen.
  • Die eine oder die mehreren Hardwarevorrichtungen, die Speichermedien, die Computerprogramme, der Programmcode, die Befehle oder einige Kombinationen davon können speziell entworfen und für die Zwecke der beispielhaften Ausführungsformen konstruiert sein, oder sie können bekannte Vorrichtungen sein, welche für die Zwecke von beispielhaften Ausführungsformen geändert und/oder modifiziert werden.
  • Das Voranstehende ist veranschaulichend für beispielhafte Ausführungsformen und darf nicht als beschränkend dafür betrachtet werden. Obwohl einige beispielhafte Ausführungsformen beschrieben wurden, werden Fachleute leicht anerkennen, dass viele Modifikationen in den beispielhaften Ausführungsformen möglich sind, ohne materiell von den vorliegenden erfinderischen Konzepten abzuweichen.

Claims (15)

  1. Speichervorrichtung, die Folgendes aufweist: eine Speicherzellenanordnung (40, 480), welche einem Halbleiter-Die zugeordnet ist, wobei die Speicherzellenanordnung (40, 480) eine Mehrzahl von Speicherzellen aufweist, welche konfiguriert sind, um Daten zu speichern; und eine Verarbeitungsschaltung, welche dem Halbleiter-Die zugeordnet ist, wobei die Verarbeitungsschaltung konfiguriert ist, um selektiv Berechnungen auf Sendedaten (DA) und internen Daten (DWi) in einem Berechnungs-Überspringmodus durchzuführen basierend darauf, ob ein Indexdatum (ID) anzeigt, dass die internen Daten (DWi) ungültige Daten oder gültige Daten sind, wobei die Sendedaten (DA) von außerhalb des Halbleiter-Die vorgesehen sind, wobei die internen Daten (DWi) aus der Speicherzellenanordnung (40, 480) gelesen werden.
  2. Speichervorrichtung nach Anspruch 1, wobei in dem Berechnungs-Überspringmodus die Speichervorrichtung konfiguriert ist, um die gültigen Daten von der Speicherzellenanordnung (40, 480) auszugeben, und um die ungültigen Daten von der Speicherzellenanordnung (40, 480) nicht auszugeben.
  3. Speichervorrichtung nach Anspruch 1, wobei in einem normalen Berechnungsmodus die Verarbeitungsschaltung konfiguriert ist, um die Berechnungen sowohl auf den gültigen Daten als auch den ungültigen Daten unabhängig von den Indexdaten (ID) durchzuführen.
  4. Speichervorrichtung nach Anspruch 1, wobei die Indexdaten (ID) eine Mehrzahl von Indexbits (I0~I7) aufweisen, welche einer Mehrzahl von Spaltenadressen entsprechen, und die Mehrzahl von Indexbits (I0~I7) anzeigt, ob die internen Daten (DWi), welche von einer entsprechenden Spaltenadresse gelesen werden, die gültigen Daten oder die ungültigen Daten sind.
  5. Speichervorrichtung nach Anspruch 4, wobei jeweilige eine der Mehrzahl von Indexbits (I0~I7) einen ersten Wert haben, welcher anzeigt, dass die internen Daten (DWi) die ungültigen Daten sind, wenn alle Bits der internen Daten (DWi), welche von der entsprechenden Spaltenadresse gelesen werden, einen Wert von 0 haben, und jeweilige eine der Mehrzahl von Indexbits (I0~I7) einen zweiten Wert haben, welcher anzeigt, dass die internen Daten (DWi) die gültigen Daten sind, wenn wenigstens ein Bit der internen Daten (DWi), welche von der entsprechenden Spaltenadresse gelesen werden, einen Wert von 1 hat.
  6. Speichervorrichtung nach Anspruch 1, wobei die Speicherzellenanordnung (40, 480) eine Mehrzahl von Datenblöcken (DB1~DBn) aufweist, und die Verarbeitungsschaltung konfiguriert ist, um die Sendedaten (DA) gemeinsam zu empfangen und um die internen Daten (DWi), welche von einem entsprechenden einen der Mehrzahl von Datenblöcken (DB 1~DBn) gelesen werden, zu empfangen.
  7. Speichervorrichtung nach Anspruch 6, wobei die Verarbeitungsschaltung konfiguriert ist, um jeweilige Überspring-Aktivierungssignale (SENi) basierend auf den Indexdaten (ID), welche den internen Daten (DWi) entsprechen, zu erzeugen, und die Berechnungen basierend auf den Sendedaten (DA) und den internen Daten (DWi) durchzuführen derart, dass die Verarbeitungsschaltung konfiguriert ist, um die ungültigen Daten der internen Daten (DWi) basierend auf dem jeweiligen Überspring-Aktivierungssignal (SENi) in dem Berechnungs-Überspringmodus auszulassen.
  8. Speichervorrichtung nach Anspruch 7, wobei basierend auf den Indexdaten (ID) in dem Berechnungs-Überspringmodus die Verarbeitungsschaltung konfiguriert ist, um das jeweilige Überspring-Aktivierungssignal (SENi) in Antwort auf die internen Daten (DWi), welche den gültigen Daten entsprechen, zu aktivieren, und das jeweilige Überspring-Aktivierungssignal (SENi) in Antwort auf die internen Daten (DWi), welche den ungültigen Daten entsprechen, zu deaktivieren.
  9. Speichervorrichtung nach Anspruch 8, wobei die Verarbeitungsschaltung konfiguriert ist, um die Berechnungen basierend auf den Sendedaten (DA) und den gültigen Daten in Antwort auf das jeweilige Überspring-Aktivierungssignal (SENi), welches aktiviert ist, durchzuführen, die Berechnungen in Antwort auf das jeweilige Überspring-Aktivierungssignal (SENi), welches deaktiviert ist, auszulassen.
  10. Speichervorrichtung nach Anspruch 8, ferner aufweisend: eine Eingangs-/Ausgangs-Gating-Schaltung (52, 62, 490), welche konfiguriert ist, um einen Dateneingang zu und einen Ausgang von der Speicherzellenanordnung (40, 480) derart anzusteuern, dass die Eingangs-/Ausgangs-Gating-Schaltung (52, 62, 490) die gültigen Daten von einem entsprechenden einen der Mehrzahl von Datenblöcken (DB1~DBn) in Antwort darauf, dass das jeweilige Überspring-Aktivierungssignal (SENi) aktiviert ist, augibt, und die ungültigen Daten von einem entsprechenden einen der Mehrzahl von Datenblöcken (DB1~DBn) in Antwort darauf, dass das jeweilige Überspring-Aktivierungssignal (SENi) deaktiviert ist, zu blockieren.
  11. Speichervorrichtung nach Anspruch 7, wobei die Verarbeitungsschaltung konfiguriert ist, um ein jeweiliges Bit der Indexdaten (ID) von einer Basis-Spaltenadresse (CAb) zu lesen, wobei die Basis-Spaltenadresse (CAb) auf die Spaltenadressen der jeweiligen internen Daten (DWi) abgebildet ist.
  12. Speichervorrichtung nach Anspruch 7, wobei die Verarbeitungsschaltung konfiguriert ist, um das jeweilige Überspring-Aktivierungssignal (SENi) unabhängig von den Indexdaten (ID) in einem normalen Berechnungsmodus zu aktivieren.
  13. Speichervorrichtung nach Anspruch 7, wobei die Verarbeitungsschaltung konfiguriert ist, um unabhängig eine Mehrzahl von Überspring-Aktivierungssignalen (SENi) basierend auf jeweiligen Bits der Indexdaten (ID) in dem Berechnungs-Überspringmodus zu erzeugen.
  14. Speichervorrichtung nach Anspruch 1, wobei die Verarbeitungsschaltung konfiguriert ist, um die Indexdaten (ID) basierend auf Schreibdaten, welche in der Speicherzellenanordnung (40, 480) gespeichert sind, zu erzeugen.
  15. Speichervorrichtung nach Anspruch 14, wobei die Speicherzellenanordnung (40, 480) eine Mehrzahl von Datenblöcken (DB1~DBn) aufweist, und die Verarbeitungsschaltung konfiguriert ist, um jeweilige Indexdaten (ID) basierend auf jeweiligen einen der Schreibdaten, welche in einem entsprechenden einen der Mehrzahl von Datenblöcken (DB1~DBn) gespeichert sind, zu erzeugen.
DE102018131032.3A 2018-02-21 2018-12-05 Speichervorrichtung, die einen Berechnungs-Überspringmodus unterstützt Pending DE102018131032A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180020422A KR102453542B1 (ko) 2018-02-21 2018-02-21 스킵 연산 모드를 지원하는 메모리 장치 및 그 동작 방법
KR10-2018-0020422 2018-02-21

Publications (1)

Publication Number Publication Date
DE102018131032A1 true DE102018131032A1 (de) 2019-08-22

Family

ID=67481932

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018131032.3A Pending DE102018131032A1 (de) 2018-02-21 2018-12-05 Speichervorrichtung, die einen Berechnungs-Überspringmodus unterstützt

Country Status (4)

Country Link
US (1) US11194579B2 (de)
KR (1) KR102453542B1 (de)
CN (1) CN110176260A (de)
DE (1) DE102018131032A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11094371B2 (en) * 2019-03-11 2021-08-17 Samsung Electronics Co., Ltd. Memory device for processing operation and method of operating the same
DE102020105628A1 (de) * 2019-03-11 2020-09-17 Samsung Electronics Co., Ltd. Verfahren zur Durchführung interner Verarbeitungsvorgänge mit vordefinierter Protokollschnittstelle einer Speichervorrichtung
CN111679785A (zh) 2019-03-11 2020-09-18 三星电子株式会社 用于处理操作的存储器装置及其操作方法、数据处理系统
US11537323B2 (en) * 2020-01-07 2022-12-27 SK Hynix Inc. Processing-in-memory (PIM) device
TW202141290A (zh) * 2020-01-07 2021-11-01 韓商愛思開海力士有限公司 記憶體中處理(pim)系統和pim系統的操作方法
US11422804B2 (en) 2020-01-07 2022-08-23 SK Hynix Inc. Processing-in-memory (PIM) device
KR20210092078A (ko) 2020-01-15 2021-07-23 삼성전자주식회사 병렬 연산 처리를 수행하는 메모리 장치 및 그 동작방법, 그리고 메모리 장치를 제어하는 메모리 컨트롤러의 동작방법
US11500575B2 (en) * 2020-09-23 2022-11-15 Micron Technology, Inc. Pattern generation for multi-channel memory array
CN114565075A (zh) * 2020-11-27 2022-05-31 安徽寒武纪信息科技有限公司 支援多种访问模式的设备、方法及可读存储介质
KR102447445B1 (ko) * 2021-03-08 2022-09-26 공재섭 행렬 연산의 효율적 병렬처리를 위한 연산 장치 및 이를 포함하는 메모리 장치
CN115469800A (zh) 2021-06-10 2022-12-13 三星电子株式会社 数据处理系统以及用于访问异构存储器系统的方法
KR102430982B1 (ko) * 2021-06-10 2022-08-11 삼성전자주식회사 프로세싱부를 포함하는 이종 메모리 시스템을 억세스하는 데이터 처리 시스템 및 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003088033A1 (en) 2002-04-09 2003-10-23 University Of Rochester Multiplier-based processor-in-memory architectures for image and graphics processing
US7080195B2 (en) * 2003-10-22 2006-07-18 Cisco Technology, Inc. Merging indications of matching items of multiple groups and possibly associated with skip conditions to identify winning entries of particular use for implementing access control lists
US7386685B2 (en) * 2005-03-29 2008-06-10 International Busniess Machines Corporation Method and apparatus for filtering snoop requests using multiple snoop caches
JP2007133986A (ja) * 2005-11-11 2007-05-31 Nec Electronics Corp 半導体記憶装置
US9606807B2 (en) 2009-06-04 2017-03-28 Micron Technology, Inc. Direct communication with a processor internal to a memory device
US8583898B2 (en) 2009-06-12 2013-11-12 Cray Inc. System and method for managing processor-in-memory (PIM) operations
US9251214B2 (en) 2010-04-08 2016-02-02 Microsoft Technology Licensing, Llc In-memory database system
US20120221785A1 (en) * 2011-02-28 2012-08-30 Jaewoong Chung Polymorphic Stacked DRAM Memory Architecture
JP6190150B2 (ja) * 2012-05-02 2017-08-30 株式会社半導体エネルギー研究所 記憶装置
US10067909B2 (en) 2014-06-25 2018-09-04 Sap Se Sparse linear algebra in column-oriented in-memory database
US9720663B2 (en) 2015-06-25 2017-08-01 Intel Corporation Methods, systems and apparatus to optimize sparse matrix applications
US10528613B2 (en) 2015-11-23 2020-01-07 Advanced Micro Devices, Inc. Method and apparatus for performing a parallel search operation
US10509726B2 (en) 2015-12-20 2019-12-17 Intel Corporation Instructions and logic for load-indices-and-prefetch-scatters operations

Also Published As

Publication number Publication date
KR102453542B1 (ko) 2022-10-12
CN110176260A (zh) 2019-08-27
US20190258487A1 (en) 2019-08-22
KR20190100632A (ko) 2019-08-29
US11194579B2 (en) 2021-12-07

Similar Documents

Publication Publication Date Title
DE102018131032A1 (de) Speichervorrichtung, die einen Berechnungs-Überspringmodus unterstützt
DE102018108702A1 (de) Gestapelte Speichervorrichtung, System mit derselben und verbundenes Verfahren
US11755206B2 (en) Bank to bank data transfer
DE102017112326B4 (de) Gestapelte Speichervorrichtung und Speicherchip mit demselben
DE102006062383B4 (de) Halbleiterspeicherelement und System für ein Halbleiterspeicherelement
US11416178B2 (en) Memory device performing parallel calculation processing, operating method thereof, and operating method of memory controller controlling the memory device
DE102018122491A1 (de) Halbleiterspeichervorrichtung und verfahren zum betreiben derselben
DE102013109327A1 (de) Speichervorrichtung zum Verringern eines Schreibfehlers, ein System mit derselben und Verfahren davon
DE102020106356A1 (de) Speichervorrichtung für eine Verarbeitungsoperation, dieselbe umfassendes Datenverarbeitungssystem und Verfahren zum Betreiben der Speichervorrichtung
DE102013101218A1 (de) Halbleiterspeichervorrichtung
DE102020118897A1 (de) Verfahren und Vorrichtung zum Reduzieren des Leistungsverbrauchs für dieAktualisierung von Speicherbauelementen auf einem Speichermodul
DE102018108554A1 (de) Verfahren zum Steuern einer On-Die-Terminierung und System, welches dasselbe durchführt
DE102012104474A1 (de) Speichervorrichtung
CN109785882B (zh) 具有虚拟体化架构的sram及包括其的系统和方法
KR20200108774A (ko) 순환 큐 기반의 명령어 메모리를 포함하는 메모리 장치 및 그 동작방법
DE102020211544A1 (de) Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben
US20240086345A1 (en) Memory device including processing circuit, and electronic device including system on chip and memory device
KR20200130113A (ko) 고대역폭 메모리 시스템
US20200293452A1 (en) Memory device and method including circular instruction memory queue
US11281397B2 (en) Stacked memory device performing function-in-memory (FIM) operation and method of operating the same
DE102017112353A1 (de) Speichervorrichtung zum Durchführen eines internen Prozesses und Betriebsverfahren dafür
US20230214124A1 (en) Memory device
US20240176487A1 (en) Bank to bank data transfer
US20210034286A1 (en) Memory system for data swap and operating method thereof
DE102020122118A1 (de) Vorrichtungen, systeme und verfahren zum speichern von vor-lese-daten, die einer modifizier-schreib-operation zugeordnet sind

Legal Events

Date Code Title Description
R012 Request for examination validly filed