DE102020106356A1 - Speichervorrichtung für eine Verarbeitungsoperation, dieselbe umfassendes Datenverarbeitungssystem und Verfahren zum Betreiben der Speichervorrichtung - Google Patents

Speichervorrichtung für eine Verarbeitungsoperation, dieselbe umfassendes Datenverarbeitungssystem und Verfahren zum Betreiben der Speichervorrichtung Download PDF

Info

Publication number
DE102020106356A1
DE102020106356A1 DE102020106356.3A DE102020106356A DE102020106356A1 DE 102020106356 A1 DE102020106356 A1 DE 102020106356A1 DE 102020106356 A DE102020106356 A DE 102020106356A DE 102020106356 A1 DE102020106356 A1 DE 102020106356A1
Authority
DE
Germany
Prior art keywords
memory
address
instruction
host
storage device
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
DE102020106356.3A
Other languages
English (en)
Inventor
Sukhan Lee
Shinhaeng KANG
Namsung KIM
Seongil O
Haksoo YU
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
Priority claimed from KR1020190161674A external-priority patent/KR20200108773A/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102020106356A1 publication Critical patent/DE102020106356A1/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/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Eine Speichervorrichtung beinhaltet Speicher mit einer Speicherbank, eine Prozessor-im-Speicher- (PIM-) Schaltung und eine Steuerlogik. Die PIM-Schaltung beinhaltet einen Befehlsspeicher, der zumindest eine von einem Host bereitgestellte Anweisung speichert. Die PIM-Schaltung ist konfiguriert, um eine Operation unter Verwendung von Daten die durch einen Host bereitgestellt werden, oder von Daten, die von der Speicherbank gelesen werden, zu verarbeiten und um zumindest eine durch den Host bereitgestellte Anweisung zu speichern. Die Steuerlogik ist konfiguriert, um einen/eine von dem Host empfangene/n Befehl/Adresse zu dekodieren, um ein Dekodierergebnis zu erzeugen, und um eine Steueroperation auszuführen, so dass, basierend auf dem Dekodierergebnis, i) eine Speicheroperation auf der Speicherbank ausgeführt wird und/oder ii) die PIM-Schaltung eine Verarbeitungsoperation ausführt. Ein Zählwert eines Programmzählers, der eine Position des Befehlsspeichers anweist, wird in Reaktion auf den/die Befehl/Adresse gesteuert, der/die anweist, die Verarbeitungsoperation auszuführen.

Description

  • Querverweise auf verwandte Anmeldungen
  • Die vorliegende Patentanmeldung beansprucht die Priorität der am 11. März 2019 beim US-Patent- und Markenamt eingereichten provisorischen US-Patentanmeldung Nr. 62/816,509 sowie die Priorität der am 6. Dezember 2019 beim Koreanischen Amt für Geistiges Eigentum eingereichten koreanischen Patentanmeldung Nr. 10-2019-0161674 , die hierin jeweils durch Bezugnahme vollinhaltlich mitoffenbart sind.
  • Hintergrund
  • Technisches Gebiet
  • Der der Erfindung zugrundeliegende Gedanke betrifft eine Speichervorrichtung, und insbesondere eine Speichervorrichtung zum Verarbeiten einer Operation, ein dieselbe umfassendes Datenverarbeitungssystem und ein Verfahren zum Betreiben der Speichervorrichtung.
  • Beschreibung des einschlägigen Stands der Technik
  • Eine Halbleiterspeichervorrichtung ist eine digitale elektronische Halbleitervorrichtung, die für einen digitalen Datenspeicher, wie z. B. einen Computerspeicher, verwendet wird. Eine Speicherkapazität und Geschwindigkeit von Halbleiterspeichervorrichtungen für Hochleistungsoperationen ist beständig am Zunehmen. Beispiele für Halbleiterspeichervorrichtungen beinhalten einen flüchtigen Speicher, wie z. B. einen dynamischen Direktzugriffsspeicher (DRAM), der Daten durch in einem Kondensator gespeicherte Ladungen erfasst.
  • Eine einen DRAM beinhaltende Speichervorrichtung kann zum Speichern von Daten verwendet werden, die die Basis des Betriebs von verschiedenen Arten von Operationen bilden, wie. z. B. neuronale Netzwerkoperationen oder arithmetische Operationen. Eine große Menge von Operationen kann durch eine Prozessor-im-Speicher- (PIM) Schaltung in der Speichervorrichtung effizient verarbeitet werden.
  • Kurzfassung
  • Zumindest eine Ausführungsform des Erfindungsgedanken stellt eine Speichervorrichtung vor, die eine Betriebseffizienz und -leistung verbessern kann, wenn Operationen unter Verwendung einer Prozessor-im-Speicher- (PIM-) Schaltung in der Speichervorrichtung, eines Datenverarbeitungssystems, das dieselbe beinhaltet, und einem Verfahren zum Betreiben der Speichervorrichtung verarbeitet werden.
  • Gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens ist eine Speichervorrichtung vorgesehen, die einen Speicher mit einer Speicherzellen beinhaltenden Speicherbank, eine Prozessor-im-Speicher (PIM-) Schaltung und eine Steuerlogik aufweist. Die PIM-Schaltung beinhaltet einen Befehlsspeicher, der zumindest eine von einem Host bereitgestellte Anweisung speichert. Die PIM-Schaltung ist so konfiguriert, dass sie eine Operation unter Verwendung von durch den Host bereitgestellten Daten oder von der Speicherbank gelesenen Daten verarbeitet und zumindest eine durch den Host bereitgestellte Anweisung speichert. Die Steuerlogik ist so konfiguriert, dass sie eine/n Befehl/Adresse dekodiert, der/die von dem Host empfangen werden, um ein Dekodierergebnis zu erzeugen, und eine Steueroperation ausführt, so dass, basierend auf dem Dekodierergebnis, eine i) Speicheroperation auf der Speicherbank ausgeführt wird und/oder ii) die PIM-Schaltung eine Verarbeitungsoperation ausführt. Ein Zählwert eines Programmzählers, der eine Position des Befehlsspeichers anweist, wird in Reaktion auf den/die Befehl/Adresse gesteuert, der/die anweist, die Verarbeitungsoperation auszuführen.
  • Gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens ist ein Verfahren zum Betreiben einer Speichervorrichtung bereitgestellt, die eine Mehrzahl von Speicherbänken beinhaltet. Das Verfahren beinhaltet folgende Schritte: Speichern einer Mehrzahl von von einem Host empfangenen Anweisungen, die einer Verarbeitungsoperation entsprechen; Dekodieren eines/einer Befehls/Adresse, der/die von dem Host empfangen wird, um zu bestimmen, ob die Adresse zu einem ersten Bereich und/oder zweiten Bereich gehört; Ausführen einer Speicheroperation, die dem/der empfangenen Befehl/Adresse entspricht, wenn bestimmt wird, dass die Adresse dem ersten Bereich entspricht; und Lesen einer angewiesenen Anweisung aus der Mehrzahl von Anweisungen und einer Prozessor-im-Speicher (PIM-) Schaltung, die in der Speichervorrichtung angeordnet ist, und Ausführen einer Verarbeitungsoperation, die dem Lesebefehl entspricht, wenn bestimmt wird, dass die Adresse zu dem zweiten Bereich gehört.
  • Gemäß einer beispielhaften Ausführungsform des Erfindungsgedanken ist ein einen Host beinhaltendes Datenverarbeitungssystem bereitgestellt. Der Host beinhaltet einen Adressdatenfeldspeicher und eine Speicherschnittstelle. Der Adressdatenfeldspeicher ist so konfiguriert, dass er eine Mehrzahl von Adressen speichert, die zu einem ersten Bereich zum Anweisen einer auszuführenden Speicheroperation auf einer Speichervorrichtung gehören, und eine Mehrzahl von Adressen, die zu einem zweiten Bereich zum Anweisen einer auszuführenden Verarbeitungsoperation unter Verwendung von Daten gehören, die von einer von Speicherbänken der Speichervorrichtung ausgewählten Speicherbank gelesen werden. Die Speicherschnittstelle ist so konfiguriert, dass sie anweist, dass die Speicheroperation ausgeführt wird, indem eine Adresse ausgegeben wird, die zu dem ersten Bereich gehört, und dass sie anweist, dass die Verarbeitungsoperation ausgeführt, wird, indem eine Adresse ausgegeben wird, die zu dem zweiten Bereich gehört.
  • Figurenliste
  • Ausführungsformen gemäß dem Erfindungsgedanken werden anhand der nachstehenden ausführlichen Beschreibung in Verbindung mit der beigefügten Zeichnung näher erläutert. Es zeigen:
    • 1 ein Blockdiagramm, das ein eine Speichervorrichtung beinhaltendes Datenverarbeitungssystem gemäß einer beispielhaften Ausführungsform des Erfindungsgedanken darstellt;
    • 2 ein Blockdiagramm, das ein Implementierungsbeispiel einer Prozessor-im-Speicher- (PIM-) Schaltung der Speichervorrichtung von 1 darstellt;
    • 3 ein Blockdiagramm, das ein eine Speichervorrichtung beinhaltendes Datenverarbeitungssystem gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens darstellt;
    • 4 ein Blockdiagramm, das ein Implementierungsbeispiel eines Datenverarbeitungssystems gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens darstellt;
    • 5 ein Blockdiagramm, das ein Beispiel darstellt, in dem eine Speichervorrichtung gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens einen Speicher mit hoher Bandbreite (HBM) beinhaltet;
    • 6 ein konzeptionelles Diagramm, das ein Operationsbeispiel eines Speichersystems gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens darstellt,
    • 7 sind Flussdiagramme, die ein Verfahren zum Betreiben einer Speicher- und 8 vorrichtung gemäß einer beispielhaften Ausführungsform des Erfindungsgedanken darstellen;
    • 9 ein Blockdiagramm, das ein Gesamtimplementierungsbeispiel für eine Speichervorrichtung gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens darstellt;
    • 10 ein Blockdiagramm, das ein Implementierungsbeispiel für ein in einem Host bereitgestelltes Adressdatenfeld darstellt;
    • 11 eine Ansicht, die ein Beispiel darstellt, in dem eine Speichervorrichtung gemäß beispielhaften Ausführungsformen des Erfindungsgedankens eine neuronale Netzoperation ausführt,
    • 12 ein Blockdiagramm, das ein Beispiel für einen Übertragungsweg von Informationen in einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens darstellt;
    • 13A Flussdiagramme, die ein Implementierungsbeispiel für eine durch eine und 13B Speichervorrichtung gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens ausgeführte Anweisung und ein Verfahren zum Betreiben einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens darstellen;
    • 14 ein Flussdiagramm, das ein Operationsbeispiel für eine eine Schleifenanweisung ausführende Speichervorrichtung gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens darstellt;
    • 15A Ansichten, die einen Basisblock und ein Operationsbeispiel für Anweisun- und 15B gen darstellen, die eine Schleife gemäß beispielhafter Ausführungsformen des Erfindungsgedankens ausführen;
    • 16A Ansichten, die ein Implementierungsbeispiel für eine Anweisung gemäß und 16B einer beispielhaften Ausführungsform des Erfindungsgedankens und ein und 17 Verfahren zum Durchführen einer Anweisung gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens darstellen; und
    • 18 ein Blockdiagramm, das ein Serversystem darstellt, das ein Datenerarbeitungssystem gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens beinhaltet.
  • Ausführliche Beschreibung der beispielhaften Ausführungsformen
  • Nachstehend erfolgt eine ausführliche Beschreibung der beispielhaften Ausführungsformen des Erfindungsgedankens unter Bezugnahme auf die beigefügte Zeichnung.
  • 1 ist ein Blockdiagramm, das ein eine Speichervorrichtung beinhaltendes Datenverarbeitungssystem 10 gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens darstellt.
  • Unter Bezugnahme auf 1 beinhaltet das Datenverarbeitungssystem 10 einen Speicher-Controller 100 (z. B. eine Steuerungsschaltung) und eine Speichervorrichtung 200. Der Speicher-Controller 100 kann eine Speicher-Schnittstelle 110 (z. B. eine Schnittstellenschaltung) und ein Adressdatenfeld 120 beinhalten und kann der Speichervorrichtung 200 durch die Speicherschnittstelle 110 verschiedene Signale bereitstellen und kann Speicheroperationen, wie z. B. Schreiben und Lesen, steuern. Das Adressdatenfeld 120 kann in einem Speicher oder einem Register des Speicher-Controllers 100 gespeichert sein. Der Speicher-Controller 100 kann der Speichervorrichtung 200 z. B. einen Befehl CMD und eine Adresse ADD bereitstellen, um auf Daten DATA der Speichervorrichtung 200 zuzugreifen. Der Befehl CMD kann einen Schreibbefehl WR, der anfordert, dass Daten geschrieben werden, und einen Lesebefehl RD beinhalten, der anfordert, dass Daten gelesen werden.
  • Der Speicher-Controller 100 kann auf die Speichervorrichtung 200 gemäß einer Anforderung (z. B. einer Nachricht oder einem Signal) von einem Host HOST (z. B. einer Host-Vorrichtung) zugreifen, und die Speicher-Schnittstelle 110 kann eine Schnittstelle mit der Speichervorrichtung 200 bereitstellen. Der Speicher-Controller 100 kann mit dem Host HOST durch Verwendung verschiedener Protokolle kommunizieren. Der Speicher-Controller 100 kann z. B. mit dem Host HOST durch Verwendung eines Schnittstellen-Protokolls kommunizieren, wie z. B. Peripheral-Component-Interconnect Express (PCI-E, Advanced-Technology-Attachment (ATA), Serial-ATA (SATA), Parallel-ATA (PATA) oder Serial-Attached-SCSI (SAS). Darüber hinaus kann ein jedes der verschiedenen Schnittstellenprotokolle, wie z. B. Universal-Serial-Bus (USB), Multi-Media-Card (MMC), Enhanced-Small-Disk-Interface (ESDI) und Integrated-Drive-Electronics (IDE) als ein Kommunikationsprotokoll zwischen dem Host HOST und dem Speicher-Controller 100 angewendet werden. Alternativ kann der Speicher-Controller 100 gemäß den beispielhaften Ausführungsformen mit dem Host HOST oder einer in dem Host HOST enthaltenen Komponente korrespondieren.
  • Die Speichervorrichtung 200 beinhaltet einen Speicher 210, eine Prozessor-im-Speicher- (PIM-) Schaltung 220 und eine Steuerlogik 230 (z. B. eine Logikschaltung). Die Steuerlogik 230 beinhaltet einen Befehlsdekodierer 231 (z. B. eine Dekodiererschaltung). Darüber hinaus beinhaltet der Speicher 210 eine Mehrzahl von Speicherbänken BANK 1 bis BANK N, und jede von den Speicherbänken BANK 1 bis BANK N kann eine Mehrzahl von Speicherzellen (oder ein Zellen-Array, das Speicherzellen beinhaltet) beinhalten. Eine Bank kann unterschiedlich definiert sein. Die Bank kann z. B. als eine Speicherzellen beinhaltende Komponente oder als eine Komponente definiert sein, die eine oder mehrere periphere Schaltungen zusammen mit den Speicherzellen beinhaltet.
  • Eine Bank, in der ein Datenzugriff ausgeführt werden soll, kann unter Verwendung der Adresse ADD ausgewählt werden, die von dem Speicher-Controller 100 empfangen wird. Darüber hinaus können Speicherzellen in der Bank ausgewählt werden. Darüber hinaus kann der Befehlsdekodierer 231 eine Dekodieroperation auf einem/r Befehl/Adresse CMD/ADD ausführen, der/die von dem Speicher-Controller 100 empfangen wird, um ein Dekodierergebnis zu erzeugen, und die Steuerlogik 230 kann eine interne Steueroperation auf der Speichervorrichtung 200 ausführen, so dass eine Speicheroperation gemäß dem Dekodierergebnis ausgeführt wird.
  • Die Speichervorrichtung 200 kann hingegen ein dynamischer Direktzugriffspeicher (DRAM) sein, wie z. B. ein Double-Data-Rate-Synchronous-Dynamic-Random-Access-Memory (DDR SDRAM), ein Low-Power-Double-Data-Rate- (LPDDR-) SDRAM, ein Graphics-Double-Data-Rate- (GDDR-) SDRAM oder ein Rambus-Dynamic-Random-Access-Memory (RDRAM). Die Ausführungsformen des Erfindungsgedankens sind jedoch nicht darauf beschränkt. Eine Speichervorrichtung 200A kann z. B. durch einen nichtflüchtigen Speicher implementiert sein, wie z. B. einen Flash-Memory, einen magnetischen RAM (MRAM), einen ferroelektrischen RAM (FeRAM), einen Phase-Change-RAM (PRAM) oder einen Resistive-RAM (ReRAM).
  • Darüber hinaus kann die Speichervorrichtung 200 einem Halbleiter-Chipelement oder einem Kanal in einer Speichervorrichtung entsprechen, die eine Mehrzahl von Kanälen mit unabhängigen Schnittstellen beinhaltet. Alternativ kann die Speichervorrichtung 200 einem Speichermodul entsprechen. Alternativ kann das Speichermodul eine Mehrzahl von Speicher-Chipelementen beinhalten, und die Speichervorrichtung 200 von 1 kann einem auf eine Modulplatine montierten Speicherchipelement entsprechen.
  • Nachstehend wird gemäß den beispielhaften Ausführungsformen des Erfindungsgedankens ein Beispiel beschrieben, in dem die PIM-Schaltung 220 der Speichervorrichtung 200 Operationen verarbeitet. Es können verschiedene Arten von Operationsverarbeitungsoperationen in der Speichervorrichtung 200 ausgeführt werden. In Bezug auf eine künstliche Intelligenz (AI) können z. B. zumindest Teile von neuronalen Netzwerkoperationen in der Speichervorrichtung 200 ausgeführt werden. Der Host HOST kann z. B. die Speichervorrichtung 200 durch den Speicher-Controller 100 steuern, so dass zumindest Teile der neuronalen Netzwerkoperationen durch die Speichervorrichtung 200 ausgeführt werden. Darüber hinaus wird in der nachstehenden Ausführungsform beschrieben, dass der Speicher-Controller 100 die Speichervorrichtung 200 steuert. Die Ausführungsformen des Erfindungsgedankens sind jedoch nicht darauf beschränkt. Der Speicher-Controller 100 kann einer in dem Host HOST beinhalteten Komponente entsprechen, wobei der Host HOST die Speichervorrichtung 200 steuert.
  • Der Speicher-Controller 100 kann eine oder mehrere Anweisungen Inst an die Speichervorrichtung 200 übertragen, um Operationen unter Verwendung von Daten zu verarbeiten. Die Speichervorrichtung 200 kann eine Mehrzahl von Anweisungen Inst empfangen und die empfangenen Anweisungen Inst darin speichern. Die PIM-Schaltung 220 kann z. B. ein oder mehrere Verarbeitungselemente 221 (z. B. Prozessoren oder Logikschaltungen) und einen Befehlsspeicher (nicht gezeigt) zum Speichern der Anweisungen Inst beinhalten. Wenn dann der/die Befehl/Adresse CMD/Add, die die zu verarbeitenden Operationen anweisen, von dem Speicher-Controller 100 empfangen werden, können die Verarbeitungselemente 221 eine Operation verarbeiten, die der Anweisung Inst entspricht, die von dem Befehlsspeicher gelesen wird.
  • Gemäß den beispielhaften Ausführungsformen des Erfindungsgedanken kann der Speicher-Controller 100 kann eine Mehrzahl von Anweisungen Inst an die Speichervorrichtung 200 übertragen, so dass eine Mehrzahl von Operationen seriell verarbeitet werden kann. Bevor die Operationen verarbeitet werden, kann z. B. ein Modus (z. B. ein Anweisungslademodus) zum Laden der Mehrzahl von Anweisungen Inst in den Befehlsspeicher (nicht gezeigt) ausgeführt werden. In dem Anweisungslademodus kann die Mehrzahl von Anweisungen Inst in den Befehlsspeicher der Speichervorrichtung 200 geladen werden.
  • Der Speicher-Controller 100 kann hingegen eine Steueroperation ausführen, so dass die Speichervorrichtung 200 die Operationen durch Verwendung von Befehlen verarbeitet, die auf eine normale Speicheroperation bezogen sind. Ein Bit-Wert einer Adresse ADD, die durch den Speicher-Controller 100 bereitgestellt wird, kann in eine Mehrzahl von Bereichen unterteilt sein. Gemäß dem Bit-Wert kann die Adresse ADD z. B. zu einem ersten Bereich gehören, der eine Speicheroperation anweist, oder einem zweiten Bereich, der zu verarbeitende Operationen anweist. Der Speicher-Controller 100 kann das Adressdatenfeld 120 verwalten. Die Adressdatenfeld 120 kann Adressen, die in den ersten Bereich gehören, und Adressen, die in den zweiten Bereich gehören, verwalten. Darüber hinaus können Informationen über die Adressen, die in dem Adressdatenfeld 120 beinhaltet sind, in einem vorgeschriebenen Speicher in dem Speicher-Controller 100 gespeichert sein.
  • Die Speichervorrichtung 200 kann eine Speicheroperation oder eine Operationsverarbeitungsoperation in Reaktion auf den/die Befehl/Adresse CMD/ADD von dem Speicher-Controller 100 selektiv ausführen. Die Speichervorrichtung 200 kann z. B. eine Operation in Reaktion auf einen Daten-Schreib- oder -Lesebefehl WR/RD von dem Speicher-Controller 100 verarbeiten.
  • Als ein Operationsbeispiel kann der Speicher-Controller 100 die Adresse ADD, die zu dem ersten Bereich gehört, an die Speichervorrichtung 200 zusammen mit einem Schreibbefehl WR und den Daten zum Schreiben oder einem Lesebefehl RD übertragen. In diesem Fall kann der Befehlsdekodierer 231 der Speichervorrichtung 200 eine Dekodieroperation auf dem/der empfangenen Befehl/Adresse CMD/ADD ausführen, und, wenn ein Wert der Adresse ADD zu dem ersten Bereich gehört, führt eine Speicheroperation zum Schreiben von Daten DATA in eine oder Lesen von Daten DATA aus einer durch die Adresse ADD angewiesene(n) Position von einer Speicherbank des Speichers 210 aus. Wenn hingegen der Wert der Adresse ADD, basierend auf einem Ergebnis des Dekodierens des/der Befehls/Adresse CMD/ADD, zu dem zweiten Bereich gehört, geht die PIM-Schaltung in einen Operationsverarbeitungsmodus über und verarbeitet eine Operation. Die Verarbeitungselemente 221 der PIM-Schaltung 220 können z. B. die Operation durch Verwendung der Daten DATA verarbeiten, die durch den Speicher-Controller 100 bereitgestellt werden, oder der Daten DATA, die von einer Speicherbank des Speichers 210 gelesen werden.
  • Darüber hinaus beinhaltet z. B. die Adresse ADD eine Mehrzahl von Bits und, gemäß einem Wert von zumindest einem Bit von einer spezifischen Position in der Mehrzahl von Bits, die Adresse ADD kann zu dem ersten Bereich oder dem zweiten Bereich gehören. Daneben können zumindest einige der verbliebenen Bits, ausschließlich des Bits in der spezifischen Position der Adresse ADD, Informationen (z. B. eine Zeilenadresse und eine Spaltenadresse) beinhalten, die die Position der Daten DATA anweisen. Als ein Operationsbeispiel kann die PIM-Schaltung 220 die Daten DATA durch die Informationen, die die Position in einer Speicherbank des Speichers 210 darstellen, von der Adresse ADD lesen, und kann eine Operation unter Verwendung der gelesenen Daten DATA verarbeiten.
  • Gemäß der vorstehend beschriebenen Ausführungsform des Erfindungsgedankens kann verhindert werden, dass eine Speicheroperationsanforderung von dem Speicher-Controller 100 mit der Operationsverarbeitungsoperation der Speichervorrichtung 200 kollidiert, da die Operation durch die PIM-Schaltung 220 der Speichervorrichtung 200 in Reaktion auf den/die Befehl/Adresse CMD/ADD von dem Speicher-Controller 100 unabhängig von einer Anforderung von dem Host HOST verarbeitet wird. Für die Speicheroperation oder die Operationsverarbeitung kann z. B. eine Zeile von einer Speicherbank des Speichers 210 aktiviert werden. Der Speicher-Controller 100 kann einen Bereitstellungszeitpunkt des/der Befehls/Adresse CMD/ADD für die Speicheroperation und die Operationsverarbeitung bestimmen. Darüber hinaus kann eine Position einer Bank, eine Position der aktivierten Zeile und eine Position einer Spalte, auf die zugegriffen wurde, durch den Speicher-Controller 100 bestimmt werden.
  • Darüber hinaus kann gemäß einer Ausführungsform des Erfindungsgedankens, wenn eine Transaktion für die Speicheroperation durch den Speicher-Controller 100 erzeugt wird, während die Speichervorrichtung 200 eine Operation verarbeitet, die Speicheroperation verzögert werden, bis eine Operationsverarbeitung abgeschlossen ist oder solange, wie für eine Unterbrechung einer Operationsverarbeitung benötigt wird. Gemäß den Ausführungsformen des Erfindungsgedankens kann jedoch verhindert werden, dass sich das Leistungsverhalten aufgrund der vorstehend beschriebenen Kollision verschlechtert, da der Speicher-Controller 100 oder der Host HOST, der den Speicher-Controller 100 beinhaltet, den Operationsverarbeitungszeitpunkt der Speichervorrichtung 200 steuern kann.
  • In der in 1 dargestellten Ausführungsform können hingegen die Verarbeitungselemente 221 verschiedene Anzahlen von Verarbeitungselementen beinhalten. Jedes der Verarbeitungselemente 221 kann z. B. angeordnet sein, um mit einer Bank oder nicht weniger als zwei Banken zu korrespondieren.
  • Eine Position von Daten DATA, auf denen die Operationsverarbeitung ausgeführt werden soll, kann hingegen durch verschiedene Verfahren angewiesen werden. Wie vorstehend beschrieben, können z. B. Informationen über eine Auswahl einer Bank in der durch den Befehl CMD für eine Operationsverarbeitung begleiteten Adresse ADD beinhaltet sein. Alternativ können Informationen über eine Bank, in der für eine Operation zu verwendende Daten DATA positioniert sind, in jeder Anweisung Inst beinhaltet sein. Alternativ kann die Speichervorrichtung 200 so implementiert sein, dass die Position der für eine Operationsverarbeitung zu verwendenden Daten basierend auf einer Kombination der Informationen, die in der Anweisung Inst gespeichert sind, und der Informationen, die in der Adresse ADD gespeichert sind, angewiesen wird.
  • 2 ist ein Blockdiagramm, das eine Implementierungsbeispiel einer Prozessor-im-Speicher- (PIM-) Schaltung der Speichervorrichtung 200 von 1 darstellt.
  • Unter Bezugnahme auf 1 und 2 beinhaltet die PIM-Schaltung 220 die Verarbeitungselemente 221, einen Verarbeitungs-Controller 222 (z. B. eine Steuerschaltung), einen Programmzähler 223 (z. B. eine Zählschaltung) und einen Befehlsspeicher 224. Die Verarbeitungselemente 221 können z. B. eine Mehrzahl von Verarbeitungselementen PE beinhalten, die mit einer Mehrzahl von Banken BANK 1 bis BANK N korrespondieren sollen, und können Operationen verarbeiten, die Anweisungen Inst entsprechen, die in den Befehlsspeicher 224 geladen sind. Darüber hinaus kann jedes von der Mehrzahl von Verarbeitungselementen PE ein Register (nicht gezeigt) beinhalten. Ein Operand, auf dem eine Operationsverarbeitung (oder eine Verarbeitungsoperation) ausgeführt werden soll, um ein Operationsverarbeitungsergebnis zu erzeugen, und/oder das Operationsverarbeitungsergebnis können vorübergehend in dem Register gespeichert werden.
  • Der Verarbeitungs-Controller 222 hingegen kann eine Gesamtoperation bezogen auf eine Operationsverarbeitung in der Speichervorrichtung 200 steuern. Der Verarbeitungs-Controller 222 kann eine in dem Befehlsspeicher 224 gespeicherte Anweisung Inst lesen, wenn ein/e Befehl/Adresse CMD/ADD, der/die eine zu verarbeitende Operation anweist, von dem Speicher-Controller 100 empfangen wird, und kann die Verarbeitungselemente PE so steuern, dass die Operation, die der Leseanweisung Inst entspricht, verarbeitet werden kann.
  • In einer beispielhaften Ausführungsform kann eine Mehrzahl von Anweisungen Inst 0 bis Inst n-1 in dem Befehlsspeicher 224 gespeichert oder nacheinander aus diesem gelesen werden. Als ein Operationsbeispiel kann der Programmzähler 223 anweisen, dass eine Anweisung aus dem Speicher 224 gelesen werden soll, indem eine Programmzähloperation ausgeführt wird. In Reaktion auf den/die Befehl/Adresse CMD/ADD, der/die anweist, dass die Operation von dem Speicher-Controller 100 verarbeitet werden soll, wird eine Anweisung in einer Position entsprechend einem aktuellen Zählwert des Programmzählers 223 gelesen, und ein Zählwert kann basierend auf der Programmzähloperation erhöht werden. Alternativ wird gemäß den verschiedenen Ausführungsformen, in Reaktion auf den/die Befehl/Adresse CMD/ADD, der/die anweist, dass die Operation verarbeitet werden soll, der aktuelle Zählwert des Programmzählers 223 erhöht, und eine Anweisung kann von einer Position entsprechend dem erhöhten Zählwert gelesen werden.
  • Beim Speichern der Mehrzahl von Anweisungen Inst 0 bis Inst n-1 in dem Befehlsspeicher 224 können verschiedene Verfahren angewendet werden. Zum Beispiel wird eine Adresse dem Befehlsspeicher 224 zugewiesen, und die zugewiesene Adresse kann durch den Speicher-Controller 100 in einem Befehlsladeprozess bereitgestellt werden. Der Speicher-Controller 100 kann z. B. der Speichervorrichtung 200 eine Adresse zusammen mit einer Anweisung bereitstellen, die eine Position innerhalb des Befehlsspeichers 224 anzeigt, um die Anweisung zu speichern. Daneben kann durch Anwenden eines auf einer kreisförmigen Warteschlange basierenden Speicherverfahrens eine Größe des Befehlsspeichers 224 durch Überschreiben einer Anweisung reduziert werden. Der Befehlsspeicher 224 kann z. B. eine feststehende Anzahl von Anweisungen speichern, und, wenn eine neue Anweisung über die feststehende Anzahl hinaus empfangen wird, kann die älteste Anweisung oder eine am längsten nicht verwendete Anweisung, die innerhalb des Befehlsspeichers 224 gespeichert ist, mit der neuen Anweisung überschrieben werden.
  • Der Verarbeitungs-Controller 222 kann wiederum eine Route von Daten DATA steuern, auf denen die Operationsverarbeitung basierend auf dem/der dekodierten Befehl/Adresse CMD/ADD ausgeführt werden soll. In der Speichervorrichtung 200 können z. B. Schaltungen (nicht gezeigt) zum Steuern einer Route von Daten DATA, die einer Speicherbank des Speichers 210 bereitgestellt werden oder von dieser gelesen werden, beinhaltet sein, und die Schaltungen können so gesteuert werden, dass die für eine Operation zu verwendenden Daten DATA den Verarbeitungselementen PE bereitgestellt werden. Gemäß den verschiedenen Ausführungsformen können Daten DATA von dem Host HOST basierend auf einer Steuerung des Verarbeitungs-Controllers 222 oder einer Steuerung der Steuerlogik 230 den Verarbeitungselementen PE bereitgestellt werden. Alternativ können die Daten DATA von einer durch die Adresse ADD von einer Speicherbank des Speichers 210 angewiesenen Position gelesen und den Verarbeitungselementen PE bereitgestellt werden.
  • Wie in der in 2 dargestellten Ausführungsform wird eine Mehrzahl von Anweisungen für Verarbeitungsoperationen vorzeitig geladen und, in Reaktion auf den/die Befehl/Adresse CMD/ADD, der/die anweist, dass eine Operation vom dem Host HOST verarbeitet werden soll, kann eine Operation entsprechend einer Leseanweisung verarbeitet werden. Daneben können Adresseninformationen (z. B. eine Zeilenadresse und eine Spaltenadresse) zum Anweisen von Daten DATA, die für eine Operationsverarbeitungsoperation verwendet werden, in dem/der Befehl/Adresse CMD/ADD beinhaltet sein, der/die anweist, dass die Operation von dem Host HOST verarbeitet werden soll. Das heißt, wenn die Speichervorrichtung 200 eine Operation unabhängig von einer Anfrage von dem Host HOST verarbeitet, müssen die Adressinformationen vorzeitig in der Speichervorrichtung 200 gespeichert werden, um die Operationen gemäß der Mehrzahl von Anweisungen zu verarbeiten. Gemäß zumindest einer Ausführungsform des Erfindungsgedankens kann jedoch eine Größe eines Speicherraums, der zum Verarbeiten einer Operation benötigt wird, geringer ausfallen, da die Adressinformationen zum Verarbeiten einer Operation nicht vorzeitig in der Speichervorrichtung 200 gespeichert werden müssen.
  • Gemäß den vorstehend beschriebenen Ausführungsformen können die Anweisungen Inst 0 bis Inst n-1, ungeachtet der Reihenfolge der Anweisungen Inst 0 bis Inst n-1, die durch den Host HOST bereitgestellt werden, im Befehlsspeicher 224 gespeichert werden. Wenn z. B. die Anweisungen Inst 0 bis Inst n-1 die gleiche Art von Operation verarbeiten, da ein Operand, auf dem die Operation verarbeitet werden soll, durch eine durch den Host HOST angewiesene Adresse angewiesen werden kann, ungeachtet der Reihenfolge der ausgeführten Anweisungen Inst 0 bis Inst n-1, kann eine durch den Host HOST angeforderte Operation verarbeitet werden, um ein Operationsergebnis zu erzeugen.
  • 3 ist ein Blockdiagramm, das ein eine Speichervorrichtung beinhaltendes Datenverarbeitungssystem 300 gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens darstellt. Wie in 3 dargestellt ist, beinhaltet das Datenverarbeitungssystem 300 einen Anwendungsprozessor 310 und eine Speichervorrichtung 320, und der Anwendungsprozessor 310 beinhaltet ein Speichersteuermodul 311, das mit der Speichervorrichtung 320 kommuniziert. Der Anwendungsprozessor 310 und die Speichervorrichtung 320 können z. B. ein Speichersystem konfigurieren.
  • Der Anwendungsprozessor 310 kann hingegen als der Host HOST von 1 fungieren und kann ein Adressdatenfeld 312 zum Verwalten von ersten Adressen bezogen auf die Speicheroperation und zweiten Adressen bezogen auf die Operationsverarbeitung gemäß den vorstehend beschriebenen Ausführungsformen beinhalten. In 3 ist das Adressdatenfeld 312 so dargestellt, dass es außerhalb des Speichersteuermoduls 311 angeordnet ist. Wie in der vorstehend beschriebenen Ausführungsform kann das Adressdatenfeld 312 jedoch in dem Speichersteuermodul 311 bereitgestellt sein.
  • Der Anwendungsprozessor 310 kann hingegen durch ein System-on-Chip (SoC) implementiert sein, das einen Systembus (nicht gezeigt) beinhaltet. Als eine Standardspezifikation des Systembusses kann das Advanced-Microcontroller-Bus-Architecture-(AMBA-) Protokoll einer Advanced-RISC-Maschine (ARM) angewendet werden. Ein Bustyp des AMBA-Protokolls kann ein Advanced-High-Performance-Bus (AHB), ein Advanced-Peripherall-Bus (APB), eine Advanced-Extensible-Interface (AXI), eine AXI4 oder AXI-Coherency-Extensions (ACE) sein. Im Gegensatz zu den vorstehend genannten Bustypen kann eine andere Art von Protokoll, wie z. B. uNetwork von SONICs Inc., das CoreConnect von IBM oder das Open-Core-Protokoll von OCP-IP, angewendet werden.
  • Das Speichersteuermodul 311 kann in der vorstehend beschriebenen Ausführungsform als der Speicher-Controller fungieren und kann die Speicheroperation oder die Operationsverarbeitungsoperation in der Speichervorrichtung 320 durch Übertragen des/der Befehls/ Adresse CMD/ADD an die Speichervorrichtung 320 steuern. Die Speichervorrichtung 320 beinhaltet einen Speicher 321, eine PIM-Schaltung 322 und eine Steuerlogik 323. Die PIM-Schaltung 322 beinhaltet Verarbeitungselemente 322-1, und die Steuerlogik 322 beinhaltet einen Befehlsdekodierer 323-1. Der Anwendungsprozessor 310 kann der Speichervorrichtung 320 eine Mehrzahl von Anweisungen Inst bereitstellen, um Operationen in der Speichervorrichtung 320 zu verarbeiten, und die Mehrzahl von Anweisungen Inst kann in einem Befehlsspeicher (nicht gezeigt) in der Speichervorrichtung 320 gespeichert sein. Darüber hinaus können Verarbeitungselemente 322_1 die Operation durch Verwenden von Daten DATA von dem Anwendungsprozessor 310 und/oder von von dem Speicher 321 gelesenen Daten DATA verarbeiten, wenn der/die Befehl/Adresse CMD/ADD, der/die anweist, die Operation zu verarbeiten, der Speichervorrichtung 320 bereitgestellt wird.
  • 4 ist ein Blockdiagramm, das ein Implementierungsbeispiel eines Datenverarbeitungssystems 400 gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens darstellt.
  • Unter Bezugnahme auf 4 beinhaltet das Datenverarbeitungssystem 400 einen Host 41 und eine Speichervorrichtung 420. Wenngleich in 4 davon nichts gezeigt ist, kann der Host 410 einen Speicher-Controller wie in den vorstehende beschriebenen Ausführungsformen beinhalten und beinhaltet zudem ein Adressdatenfeld 411. Der Host 410 kann z. B. einen Adressbereich zum Anweisen einer Speicheroperation und einen Adressbereich zum Anweisen einer Operationsverarbeitung als eine Zeilenadresse verwalten. Daher kann das Adressdatenfeld 411 als ein Zeilenadressdatenfeld bezeichnen werden. Das Adressdatenfeld 411 kann in einem in dem Host 410 angeordneten Speicher (nicht gezeigt) gespeichert sein.
  • Wie in der vorstehendbeschriebenen Ausführungsform kann ein Wert einer Zellenadresse in einem ersten Bereich zum Anweisen einer Speicheroperation und ein Wert einer Zeilenadresse in einem zweiten Bereich zum Anweisen einer zu verarbeitenden Operation definiert sein, und der Host 410 kann die Zeilenadressen in dem ersten und dem zweiten Bereich verwalten. Eine Zeilenadresse kann z. B. eine Mehrzahl von Bits beinhalten, und, gemäß einem Wert von zumindest einem Bit von der Mehrzahl von Bits, kann der erste Bereich von dem zweiten Bereich unterschieden werden. Darüber hinaus können die verbliebenen Bits von der Mehrzahl von Bits Informationen beinhalten, die eine Position von einer Zeile darstellen, die in einer Bank aktiviert wird, die eine Mehrzahl von Zeilen beinhaltet. Darüber hinaus kann gemäß einer beispielhaften Ausführungsform die Zeilenadresse in dem ersten Bereich in einem Bereich (z. B. einem Bankbereich) des Adressdatenfelds 411 gespeichert sein, und die Zeilenadresse in dem zweiten Bereich kann in dem anderen Bereich (z. B. einem PE-Bereich) gespeichert sein.
  • Der Host 410 kann mit der Speichervorrichtung 420 durch eine Mehrzahl von Bussen BUS kommunizieren, z. B. einen Befehl/Adresse-Bus CA BUS, einen Datenbus für eine Speicheroperation DQ Bus for Bank und einen Datenbus für eine Operationsverarbeitungsoperation DQ Bus for PE. Die Speichervorrichtung 420 beinhaltet eine Speicherbank 421, einen Befehlsdekodierer (oder eine Steuerlogik) 422, Verarbeitungselemente 423, einen Verarbeitungs-Controller 424, einen Programmzähler 425 und einen Befehlsspeicher 426. Einige der in 4 dargestellten Komponenten könne die PIM-Schaltung in der vorstehend beschriebenen Ausführungsform ausbilden.
  • Der Befehlsdekodierer 422 kann den/die Befehl/Adresse CMD/ADD empfangen und eine Dekodieroperation auf dem/der Befehl/Adresse CMD/ADD ausführen. Wenn die empfangene Adresse ADD der Adresse in dem ersten Bereich entspricht, der in dem Bankbereich beinhaltet ist, kann die Speichervorrichtung 420 Daten DATA in einer ausgewählten Bank der Speicherbank 421 basierend auf einem Ergebnis der Dekodierung des/der Befehls/Adresse CMD/ADD speichern.
  • Wenn hingegen die empfangene Adresse ADD der Adresse in dem zweiten Bereich entspricht, der in dem PE-Bereich enthalten ist, kann der Befehlsdekodierer 422 den Befehl/die Adresse CMD/ADD an den Verarbeitungs-Controller 424 übertragen. Verschiedenen Ausführungsformen gemäß kann der Befehlsdekodierer 422 den/die empfangene/n Befehl/Adresse CMD/ADD an den Verarbeitungs-Controller 424 übertragen oder kann das Ergebnis der Dekodierung des/der Befehls/Adresse CMD/ADD an den Verarbeitungs-Controller 424 übertragen.
  • In einer beispielhaften Ausführungsform liest der Verarbeitungs-Controller 422 eine Anweisung Inst, die in einem durch den Programmzähler 425 angewiesenen Bereich gespeichert ist, und kann eine Zähloperation des Programmzählers 425 steuern, nachdem der Verarbeitungs-Controller 424 den/die Befehl/Adresse CMD/ADD empfangen hat, der/die eine zu verarbeitende Operation anweist. Darüber hinaus kann der Verarbeitungs-Controller 424 ein Verarbeitungselement PE zum Verarbeiten einer Operation basierend auf dem/der Befehl/Adresse CMD/ADD und der Anweisung Inst auswählen und kann das ausgewählte Verarbeitungselement PE steuern. Außerdem werden die durch den Datenbus für eine Operationsverarbeitungsoperation DQ BUS for PE empfangenen Daten DATA dem ausgewählten Verarbeitungselement PE bereitgestellt, und eine Operation kann unter Verwendung der Daten DATA verarbeitet werden.
  • Alternativ können die Informationen, die eine Speicherposition von Daten DATA darstellen, auf denen eine Operationsverarbeitung ausgeführt werden soll, in der empfangenen Adresse ADD beinhaltet sein, und der Verarbeitungs-Controller 424 und/oder der Befehlsdekodierer 422 kann/können eine Steueroperation ausführen, so dass die von der Speicherbank 421 durch die Verwendung der Adresse ADD gelesenen Daten DATA dem ausgewählten Verarbeitungselement PE durch einen internen Bus bereitgestellt werden. Das Verarbeitungselement PE kann ein Ergebnis der Verarbeitung einer Operation durch Verwendung der Daten DATA, die durch den Host HOST bereitgestellt oder von der Speicherbank 421 gelesen werden, in einem Register (nicht gezeigt) darin speichern.
  • 5 ist ein Blockdiagramm, das ein Beispiel darstellt, in dem eine Speichervorrichtung gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens einen High-Bandwidth-Memory (HBM) 500 beinhaltet.
  • Der HBM 500 beinhaltet eine Mehrzahl von Kanälen mit unabhängigen Schnittstellen und kann eine erhöhte Bandbreite aufweisen. Unter Bezugnahme auf 5 kann der HBM 500 eine Mehrzahl von Dies beinhalten, z. B. ein Pufferspeicher-Die (oder ein Logik-Die 510) und ein oder mehrere auf dem Pufferspeicher-Die (oder dem Logik-Die 510) gestapelte Core-Dies. In 5 ist ein Beispiel dargestellt, in dem vier Core-Dies in dem HBM 500 enthalten sind. Die Anzahl der Core-Dies 520 kann jedoch variieren.
  • Darüber hinaus kann jedes von den Core-Dies 520 einen oder mehrere Kanäle beinhalten. In einem Beispiel von 5 beinhaltet der HBM 500 acht Kanäle CH1 bis CH8, wenn jedes von den Core-Dies 520 zwei Kanäle beinhaltet. Das erste Core-Die kann z. B. einen ersten und dritten Kanal CH1, CH3 beinhalten, ein zweites Core-Die kann einen zweiten und einen vierten Kanal CH2 und CH4 beinhalten, ein drittes Core-Die kann einen fünften und einen siebten Kanal CH5 und CH7 beinhalten, und ein viertes Core-Die kann einen sechsten und einen achten Kanal CH6 und CH8 beinhalten..
  • Das Pufferspeicher-Die 510 kann eine Schnittstellenschaltung 511 beinhalten, die mit einem Host (oder einem Speicher-Controller) kommuniziert, und kann eine/n Adresse/Befehl und Daten von dem Host durch die Schnittstellenschaltung 511 empfangen. Der Host kann den/die Befehl/Adresse und die Daten durch Busse übertragen, die so angeordnet sind, dass sie mit den Kanälen korrespondieren. Die Busse können so ausgebildet sein, dass sie mit den Kanälen korrespondieren, oder es können zumindest zwei Kanäle einen jeweiligen von einem Teil der Busse gemeinsam verwenden. Die Schnittstellenschaltung 511 kann den/die Befehl/Adresse und die Daten an einen Kanal übertragen, der durch den Host angefordert wird, um eine Speicheroperation auszuführen oder um eine Operation zu verarbeiten. Darüber hinaus kann gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens jedes von den Core-Dies 520 und jeder von den Kanälen eine PIM-Schaltung 521 und einen Befehlsdekodierer 522 beinhalten, und der Befehlsdekodierer 522 kann eine Dekodieroperation steuern, die auf dem/der empfangenen Befehl/Adresse ausgeführt wird.
  • Der Host kann den/die Befehl/Adresse und die Daten so bereitstellen, dass zumindest ein Teil von einer Mehrzahl von Operationen durch den HBM 500 verarbeitet werden kann. Die Operationen können durch die PIM-Schaltung 521 von einem Kanal verarbeitet werden, der durch den Host angewiesen wird. Gemäß den vorstehend beschriebenen Ausführungsformen kann, wenn der/die empfangene Befehl/Adresse die Speicheroperation anweist, beispielsweise eine Zugriffsoperation auf den Daten ausgeführt werden. Wenn hingegen der/die empfangene Befehl/Adresse anweist, dass eine Operation ausgeführt werden soll, kann die PIM-Schaltung 521 eine Operation durch Verwendung von Daten von dem Host und/oder Daten, die von einem korrespondierenden Kanal gelesen werden, verarbeiten.
  • Gemäß einer beispielhaften Ausführungsform kann jeder von den Kanälen eine Mehrzahl von Banken beinhalten, und ein oder mehrere Verarbeitungselemente können in der PIM-Schaltung 521 von einem jeweiligen der Kanäle angeordnet sein. In jedem von den Kanälen kann z. B. die Anzahl von Verarbeitungselementen mit der Anzahl der Banken des Kanals identisch sein. Wenn alternativ die Anzahl der Verarbeitungselemente kleiner ist als die Anzahl von Bänken, können zumindest zwei Bänke ein Verarbeitungselement gemeinsam verwenden.
  • Das Pufferspeicher-Die 510 kann ferner eine Silizium-Durchkontaktierung (TSV Bereich 512), einen physikalischen PHY-Bereich 513 und einen Direktzugriffsbereich DA 514 beinhalten. Wenngleich in 5 davon nichts dargestellt ist, kann ein Prozessor zum Steuern einer Gesamtoperation des HBM 500, wie z. B. einer Steuerung einer Route von Daten, ferner in dem Pufferspeicher-Die 510 beinhaltet sein.
  • In dem TSV-Bereich 512 ist eine TSV für eine Datenübertragung mit den Core-Dies 420 ausgebildet. Darüber hinaus kann der physikalische PHY-Bereich 513 eine Mehrzahl von Eingangs- und Ausgangsschaltungen für eine Datenübertragung mit einem externen Host beinhalten. Der physikalische PHY-Bereich 513 kann z. B. einen oder mehrere Ports für eine Datenübertragung mit dem Host beinhalten Der Direktzugriffsbereich DA 514 hingegen kann so angeordnet sein, dass er mit einem externen Testgerät (z. B. einer externen Vorrichtung, die zum Ausführen von Tests verwendet wird) durch eine leitfähige Einheit (z. B. ein leitfähiges Pad bzw. Anschlussfleck), die auf einer externen Oberfläche des HBM 500 angeordnet ist, in einem Testmodus des HBM 500 kommuniziert.
  • 6 ist ein skizzenhaftes Diagramm, das ein Beispiel für eine Operation eines Speichersystems gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens darstellt. In 6 ist ein Beispiel dargestellt, in dem eine Speichervorrichtung mit dem Host HOST kommuniziert, wobei in dem Host ein Speicher-Controller (oder ein Speichersteuerungsmodul) angeordnet sein kann, das mit der Speichervorrichtung kommuniziert.
  • Unter Bezugnahme auf 6 kann der Host HOST verschiedene Operationsmodi der Speichervorrichtung steuern, und, während die Speichervorrichtung in dem Anweisungslademodus arbeitet, kann der Host HOST eine Mehrzahl von für Verarbeitungsoperationen notwendige Anweisungen an die Speichervorrichtung übertragen. Die übertragenen Anweisungen können in der Speichervorrichtung gespeichert sein. Es können z. B. verschiedene Arten von Operationen, wie z. B. eine Addition, Subtraktion und Multiplikation, durch die Speichervorrichtung verarbeitet werden, und die PIM-Schaltung kann die Arten der Operationen durch Lesen der Anweisungen in dem Operationsverarbeitungsmodus und durch Dekodieren der gelesenen Anweisungen bestimmen.
  • Der Host HOST kann eine Steueroperation ausführen, so dass die Speichervorrichtung in einem Normalmodus arbeitet. Der Host HOST kann z. B. den/die Befehl/Adresse CMD/ADD, der/die eine Adresse in dem ersten Bereich zum Anweisen der Speicheroperation beinhaltet, an die Speichervorrichtung übertragen. Die Speichervorrichtung kann den/die empfangene/n Befehl/Adresse CMD/ADD dekodieren und kann die Speicheroperation in Reaktion auf die Adresse ausführen, die zu dem ersten Bereich gehört. Nachdem die Speicheroperation vollständig verarbeitet worden ist, um ein Speicheroperationsergebnis zu erzeugen, kann darüber hinaus das Speicheroperationsergebnis an den Host HOST ausgegeben werden. Die in Reaktion auf einen Lesebefehl gelesenen Daten können z. B. an den Host HOST ausgegeben werden. Alternativ kann eine Antwort, die darstellt, dass eine Datenschreiboperation vollendet worden ist, an den Host HOST in Reaktion auf einen Schreibbefehl ausgegeben werden.
  • Der Host HOST kann hingegen den/die Befehl/Adresse CMD/ADD, der/die die Adresse in dem zweiten Bereich zum Anweisen einer zu verarbeitenden Operation beinhaltet, an die Speichervorrichtung übertragen. Die Speichervorrichtung dekodiert den/die empfangene/n Befehl/Adresse CMD/ADD und kann in einen Operationsverarbeitungsmodus in Reaktion auf die Adresse übergehen, die zu dem zweiten Bereich gehört. Nachdem die Daten von dem Host HOST zusammen mit dem/der Befehl/Adresse CMD/ADD empfangen worden sind, kann eine Operation durch Verwendung der Daten verarbeitet werden, die von dem Host HOST empfangen werden, um ein Operationsverarbeitungsergebnis zu erzeugen. Darüber hinaus kann das Operationsverarbeitungsergebnis an den Host HOST übertragen werden. Nachdem die Operationsverarbeitungsoperation beendet worden ist, kann das Ergebnis an den Host HOST übertragen werden. Alternativ kann gemäß einer beispielhaften Ausführungsform das Operationsverarbeitungsergebnis in einem Register in einem Verarbeitungselement oder einem Zellen-Array von einer Bank gespeichert werden, und der Host HOST kann den/die Befehl/Adresse CMD/ADD zum Lesen des Operationsverarbeitungsergebnisse an die Speichervorrichtung übertragen.
  • 7 und 8 sind Flussdiagramme, die ein Verfahren zum Betreiben einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens darstellen.
  • Unter Bezugnahme auf 7 empfängt die Speichervorrichtung eine durch einen Host in einem Anweisungslademodus empfangene Anweisung und speichert die empfangene Anweisung in einer Operation S11. Die Speichervorrichtung kann verschiedene Arten von Befehlen von dem Host empfangen und kann verschiedene Funktionen durch Verwendung eines Ergebnisses des Dekodierens der Befehle ausführen. Die Speichervorrichtung empfängt einen Schreib/Lesebefehl WR/RD von dem Host und empfängt eine Adresse, die dem Schreib/Lesebefehl WR/RD in der Operation S12 entspricht. Darüber hinaus führt die Speichervorrichtung eine Dekodieroperation auf dem/der empfangen/en Befehl/Adresse aus, um ein Dekodierergebnis in der Operation S13 zu erzeugen.
  • Die Speichervorrichtung bestimmt, basierend auf dem Dekodierergebnis in der Operation S14, ob sie in einem Operationsverarbeitungsmodus oder einem Speicheroperationsmodus arbeiten soll. Die gemäß den vorstehend beschriebenen Ausführungsformen empfangene Adresse kann einen Bit-Wert aufweisen, der zu einem ersten Bereich oder einem zweiten Bereich gehört, und wenn der Bit-Wert der empfangenen Adresse zu dem ersten Bereich gehört, führt die Speichervorrichtung eine normale Schreib/Lese-Operation entsprechend dem/der empfangenen Befehl/Adresse in Operation S15 aus. Die Speichervorrichtung führt z. B. eine normale Schreib/Lese-Operation während des Speicheroperationsmodus aus. Wenn hingegen der Bit-Wert der empfangenen Adresse zu dem zweiten Bereich gehört, geht die Speichervorrichtung in den Operationsverarbeitungsmodus über. Ein Teil der Adresse, der den Bit-Wert aufweist, soll beispielsweise auf Modusinformationen bezogen sein, die auf den Speicheroperationsmodus und/oder den Operationsverarbeitungsmodus eingestellt sind.
  • Im Operationsverarbeitungsmodus kann eine PIM-Schaltung, die in der Speichervorrichtung angeordnet ist, eine einzelne Operation oder eine Reihe von Operationen zum Verarbeiten einer Operation ausführen. Der/die Befehl/Adresse von dem Host kann der PIM-Schaltung bereitgestellt werden, und die PIM-Schaltung kann eine durch einen Programmzähler angewiesene Anweisung von den Anweisungen lesen, die in einem Befehlsspeicher gespeichert sind, und eine Programmzähloperation in einer Operation S16 ausführen. Gemäß der vorstehend beschriebenen Operation können die in dem Befehlsspeicher gespeicherten Anweisungen nacheinander gelesen werden.
  • Adressinformationen, die eine Position darstellen, in der für eine Operation zu verwendende Daten gespeichert sind, können hingegen in dem/der Befehl/Adresse zum Anweisen einer zu verarbeitenden Operation enthalten sein. Basierend auf einer Steueroperation in der Speichervorrichtung werden Daten von der der empfangenen Adresse entsprechenden Position gelesen und können der PIM-Schaltung in Operation S17 bereitgestellt werden, wobei die PIM-Schaltung eine Operation durch Verwenden der gelesenen Daten in der Operation S18 verarbeitet.
  • Unter Bezugnahme auf 8 hingegen können verschiedene Befehle für die Operationsverarbeitungsoperation zwischen dem Host und der Speichervorrichtung definiert sein, und bei der Verarbeitung der Operation durch Verwenden des Schreibbefehls und des Lesebefehls kann ein Operationsverarbeitungsverfahren so eingestellt sein, dass es einem Befehl entsprechend unterschiedlich ist.
  • Gemäß einer beispielhaften Ausführungsform stellt der Host der Speichervorrichtung den Lesebefehl als einen Befehl zum Verarbeiten einer Operation bereit, und die Speichervorrichtung empfängt den Lesebefehl und die Adresse von dem Host in Operation S21. Die Speichervorrichtung kann die Operation basierend auf einer Dekodieroperation auf dem/der Befehl/Adresse verarbeiten, und der/die Befehl/Adresse CMD/ADD zum Übergehen in den Operationsverarbeitungsmodus können durch verschiedene Verfahren definiert sein. Gemäß den vorstehend beschriebenen Ausführungsformen kann z. B. die Speichervorrichtung in dem Operationsverarbeitungsmodus arbeiten, wenn der Bit-Wert der Adresse zu dem ersten Bereich oder dem zweiten Bereich gehören kann, und die Adresse, die zu dem ersten Bereich gehört, der Speichervorrichtung bereitgestellt wird.
  • Wenn der Lesebefehl der Speichervorrichtung bereitgestellt wird, kann eine Operation auf Daten verarbeitet werden, die von einem Speicherzellen-Array gelesen werden. In der durch den Lesebefehl begleiteten Adresse können Informationen (z. B. eine Bankadresse, eine Zeilenadresse und eine Spaltenadresse) über eine Position enthalten sein, in der die von dem Speicherzellen-Array zu lesenden Daten gespeichert sind. Die Speichervorrichtung liest die Daten in einer Position, die der empfangenen Adresse entspricht, in Operation S22, und, nachdem die gelesenen Daten der PIM-Schaltung bereitgestellt worden sind, wird eine Operation durch Verwenden der gelesenen Daten in Operation S23 verarbeitet.
  • Wenn hingegen der Schreibbefehl der Speichervorrichtung bereitgestellt wird, kann die Speichervorrichtung so gesteuert werden, dass eine Operation durch Verwenden von Daten verarbeitet werden kann, die durch den Host bereitgestellt werden. Die Speichervorrichtung empfängt z. B. den Schreibbefehl und die Adresse in Operation S24 und führt eine Dekodieroperation auf dem Schreibbefehl und der Adresse aus. Die Speichervorrichtung empfängt die Daten von dem Host in Operation S25. Die empfangenen Daten können der PIM-Schaltung bereitgestellt werden. Die PIM-Schaltung kann eine Operation verarbeiten (führt eine Operation aus), indem die Daten verwendet werden, die von dem Host empfangen werden, um ein Operationsverarbeitungsergebnis in Operation S26 zu erzeugen. Daneben kann das Verarbeitungsergebnis vorübergehend in einem Register in der PIM-Schaltung gespeichert werden.
  • Gemäß einer beispielhaften Ausführungsform können in der zusammen mit dem Schreibbefehl empfangenen Adresse Informationen zum Anweisen einer Position von Daten enthalten sein. Die Speichervorrichtung kann z. B. so implementiert sein, dass, wenn der Schreibbefehl der Speichervorrichtung bereitgestellt wird, die Speichervorrichtung die Operation durch Verwendung der Daten von dem Host verarbeitet, um ein Verarbeitungsergebnis zu erzeugen, und das Verarbeitungsergebnis in einer Position gespeichert wird, die durch die empfangene Adresse angewiesen wird.
  • 9 ist ein Blockdiagramm, das ein Gesamtimplementierungsbeispiel einer Speichervorrichtung 600 gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens darstellt. Da ein Teil der Komponenten, die in 9 dargestellt sind, fakultativ ist, kann auf diese verzichtet werden. Alternativ kann ein Teil der Komponenten, die in 9 dargestellt sind, in Bezug auf deren Funktionalität in zumindest zwei Komponenten unterteilt werden. Alternativ können zwei oder mehr der Komponenten zu einer Komponente zusammengeführt werden. Das heißt, dass die Speichervorrichtung gemäß einer Ausführungsform des Erfindungsgedankens unterschiedlich implementiert sein kann, solange die Speichervorrichtung die gleiche Funktion oder ähnliche Funktionen ausführt.
  • Unter Bezugnahme auf 9 beinhaltet die Speichervorrichtung 600 eine Mehrzahl von Bänken 610_1 bis 610_N, und die Mehrzahl der Bänke 610_1 bis 610_N kann in derselben Weise implementiert sein wie die in 3 dargestellte Bank. Die Bank 610_1 beinhaltet z. B. ein Zellen-Array 611, einen Zeilendekodierer 612 (z. B. eine Dekodierschaltung), einen Spaltendekodierer 613 (z.B. eine Dekodierschaltung), eine Leseverstärker/Schreib-Treiberschaltung 614 und ein Verarbeitungselement 615. Das heißt, dass jede Bank als eine Bank definiert sein kann, die Speicherzellen und verschiedene, auf eine Speicheroperation bezogene Peripherieschaltungen beinhaltet.
  • Die Speichervorrichtung 600 beinhaltet ferner einen Befehlsdekodierer 621, einen Bank-Controller 622, ein Adressregister 623, einen Verarbeitungselement-Controller 631, eine PE-Befehlswarteschlange 632, ein PE-Steuerregister 633, eine Daten-gateschaltungseinheit 641 (z. B. eine gate-schaltung) und einen Datenpufferspeicher 642. Die verschiedenen in 9 dargestellten Komponenten können den Komponenten in den vorstehend beschriebenen Ausführungsformen entsprechen. Der Befehlsdekodierer 621, der Bank-Controller 622 und das Adressregister 623 können z. B. in der Steuerlogik angeordnet sein, und der Verarbeitungselement-Controller 631 und/oder das PE-Steuerregister 633 kann in der PIM-Schaltung in den vorstehend beschriebenen Ausführungsformen angeordnet sein. Die PE-Befehlswarteschlange hingegen kann dem Befehlsspeicher in den vorstehend beschriebenen Ausführungsformen entsprechen, und ein PE-Befehl von der PE-Befehlswarteschlange 632 kann der Anweisung in den vorstehend beschriebenen Ausführungsformen entsprechen.
  • Der Zeilendekodierer 612 kann eine Zeile von der Bank 610_1 durch eine Wortleitung WL auswählen, und der Spaltendekodierer 613 kann eine Spalte von der Bank 610_1 durch eine Spaltenauswählleitung CSL auswählen. Daneben kann die Leseverstärker/Schreib-Treiberschaltung 614 auf Speicherzellen von dem Zellen-Array 611 durch eine globale Eingangs- und Ausgangsleitung GO zugreifen, und Schreibdaten und Lesedaten können zwischen der Leseverstärker/Schreib-Treiberschaltung 614 und der Daten-Torschaltungs-Einheit 641 übertragen werden.
  • Gemäß einer beispielhaften Ausführungsform wird eine Anweisung (oder ein PE-Befehl) durch den Host über ein Dateneingabe- und Datenausgabe-Pad DQ der Speichervorrichtung 600 bereitgestellt. Darüber hinaus kann der Host verschiedene PE-Steuerungsinformationselemente bei einer Steuerung einer Operation des Verarbeitungselements 615 der Speichervorrichtung 600 durch das Dateneingangs- und Datenausgangs-Pad DQ bereitstellen, und der Verarbeitungselement-Controller 631 kann das Verarbeitungselement 615 basierend auf Informationen steuern, die in dem PE-Steuerregister 633 gespeichert sind. Zusätzlich kann, basierend auf einer Steuerung des Verarbeitungselement-Controller 631, eine in der PE-Befehlswarteschlange 632 gespeicherte Anweisung dem Verarbeitungselement 615 bereitgestellt werden.
  • Gemäß den vorstehend beschriebenen Ausführungsformen können, basierend auf dem/der Befehl/Adresse CMD/ADD, der/die durch den Host bereitgestellt wird, der Befehlsdekodierer 621 und/oder der Verarbeitungselement-Controller 631 eine Gesamtoperation der Speichervorrichtung 600 steuern, und dementsprechend kann die Speichervorrichtung 600 in einem Normalmodus oder einem Operationsverarbeitungsmodus arbeiten.
  • 10 ist ein Blockdiagramm, das ein Implementierungsbeispiel eines Adressdatenfelds darstellt, das in einem Host bereitgestellt ist.
  • Unter Bezugnahme auf 10 beinhaltet der Host das Adressdatenfeld (z. B. ein Zeilenadressdatenfeld) und kann Zeilenadressen zum Anweisen von verschiedenen Modi durch die Adressdatenfeld verwalten. Die Zeilenadressen können entsprechend den Bit-Werten derselben zu verschiedenen Bereichen gehören. In den vorstehend beschriebenen Ausführungsformen sind der Normalmodus und der Operationsverarbeitungsmodus dargestellt. Die verschiedenen Modi können jedoch durch Verwalten des Adressdatenfelds ausgeführt werden.
  • Ein Bereich, zu dem einige Bits (z. B. einige höhere Bits) einer Zeilenadresse gehören, kann beispielsweise den Werten der Bits entsprechend gesetzt werden. Dadurch, dass z. B. der Host eine Zeilenadresse bereitstellt, in der die Werte der Bits 00x0 entsprechen, kann die Speichervorrichtung in einem Normalmodus (z. B. einer Schreib- und Leseoperation) arbeiten. Darüber hinaus kann in einer beispielhaften Ausführungsform, in einem erweiterten Adressmodus, eine Mehrzahl von Bänken der Speichervorrichtung gleichzeitig ausgewählt werden. Um z. B. eine Vorladeoperation auf der Mehrzahl von Bänken auszuführen, kann der erweiterte Adressmodus ausgewählt werden.
  • Darüber hinaus kann in Verbindung mit einer Operationsverarbeitung der Host einen Command-Register-File- (CRF-) Zugriffsmodus auswählen und eine Mehrzahl von Anweisungen an die Speichervorrichtung in dem CRF-Zugriffsmodus übertragen. Das CRF kann z. B. dem Befehlsspeicher entsprechen, der die Anweisungen in den vorstehend beschriebenen Ausführungsformen speichert, und der Host kann auf die CRF der Speichervorrichtung zugreifen. Darüber hinaus kann der Host eine Adresse bereitstellen, so dass die Speichervorrichtung in einem Operationsmodus arbeitet. Dementsprechend kann eine Operation durch das Verarbeitungselement, das in der Speichervorrichtung bereitgestellt ist, verarbeitet werden.
  • 11 ist eine Ansicht, die ein Beispiel darstellt, in der eine Speichervorrichtung gemäß beispielhafter Ausführungsformen des Erfindungsgedankens eine neuronale Netzwerkoperation ausführt.
  • Eine Verarbeitungsoperation einer Speichervorrichtung 700 von 11 kann eingegebene Daten unter Verwendung von einem oder mehreren neuronalen Netzwerkmodellen zum Extrahieren von Informationen analysieren. Die Verarbeitungsoperation kann z. B. eingegebene Daten unter Verwendung eines Deep-Learning-Algorithmus analysieren. Die neuronale Netzwerkoperation kann durch verschiedene Arten von Hardware (oder Prozessoren) ausgeführt werden, wie z. B. eine allgemeine Hardware oder eine zweckbestimmte Hardware. Die allgemeine Hardware kann eine zentrale Verarbeitungseinheit (CPU) oder eine Graphikverarbeitungseinheit (GPU) beinhalten. Die zweckbestimmte Hardware kann für eine spezielle Software optimiert sein. Die zweckbestimmte Hardware kann z. B. verschiedene Arten von Hardware beinhalten, wie z. B. eine anwendungsspezifische integrierte Schaltung (ASIC), eine neuronale Verarbeitungseinheit (NPU), eine Tensorverarbeitungseinheit (TPU) und eine neuronale Maschine.
  • Gemäß einer beispielhaften Ausführungsform des Erfindungsgedanken kann ein Datenverarbeitungssystem einen Host (nicht gezeigt) und die Speichervorrichtung 700 beinhalten. In dem ein neuronales Netzwerk ausführenden Host können einige Operationen durch eine allgemeine Hardware und/oder eine zweckbestimmte Hardware verarbeitet werden. Zumindest einige der Operationen, die in dem neuronalen Netzwerk enthalten sind, können durch die Speichervorrichtung 700 gemäß den Ausführungsformen des Erfindungsgedankens verarbeitet werden. In einer anderen Ausführungsform kann die Gesamtheit einer Mehrzahl von Operationen, die in dem neuronalen Netzwerk enthalten sind, durch die Speichervorrichtung 700 verarbeitet werden.
  • Unter Bezugnahme auf 11 beinhaltet die Speichervorrichtung 700 ein Zellen-Array 710, ein Verarbeitungselement 711, einen Verarbeitungs-Controller 712 und einen Befehlsspeicher 713. Das Verarbeitungselement 711, der Verarbeitungs-Controller 712 und der Befehlsspeicher 713 können in den vorstehend beschriebenen Ausführungsformen in der PIM-Schaltung beinhaltet sein. Darüber hinaus können die Komponenten gemäß den verschiedenen Ausführungsformen in verschiedenen Positionen in der Speichervorrichtung 700 implementiert sein. Das Speicherzellen-Array 710 und das Verarbeitungselement 711 können z. B. in derselben Bank beinhaltet sein.
  • Neuronale Netzwerkoperationen könne eine Operation unter Verwendung von Daten DATA und einer Wichtung beinhalten. Es können verschiedene Informationselemente, die für die Operation verwendet werden, durch den Host HOST bereitgestellt werden oder in der Speichervorrichtung gespeichert sein. In 11 sind die Daten DATA z. B. durch den Host HOST bereitgestellt, und die Wichtung ist in einer Bank des Zellen-Array 710 gespeichert. Die Ausführungsformen des Erfindungsgedankens sind jedoch nicht darauf beschränkt. Die Daten DATA können z. B. in dem Zellen-Array 710 gespeichert sein, oder sie können von dem Zellen-Array 710 für eine Operation gelesen werden, und die Wichtung kann durch den Host HOST bereitgestellt werden.
  • Immer dann, wenn ein/e Befehl/Adresse zum Verarbeiten einer Operation empfangen wird, wird eine Programmzähloperation zum Auswählen einer in dem Befehlsspeicher 713 gespeicherten Anweisung ausgeführt, und, gemäß der Anweisung, kann das Verarbeitungselement 711 die Operation durch Verwendung der Daten DATA und der Wichtung verarbeiten, um ein Operationsergebnis Res_P zu erzeugen. Darüber hinaus kann das Operationsergebnis Res_P in einem Register in einer PIM-Schaltung gespeichert werden. In 11 ist z. B. das Register als in dem Verarbeitungselement 711 enthalten dargestellt.
  • Gemäß einer beispielhaften Ausführungsform beinhaltet die Speichervorrichtung 700 eine Mehrzahl von Verarbeitungselementen, die mit einer Mehrzahl von Bänken korrespondieren, und eine Operation kann durch die Mehrzahl von Verarbeitungselementen ausgeführt werden. Als ein Operationsbeispiel kann die neuronale Netzwerkoperation auf denselben Daten DATA mit einer Mehrzahl von unterschiedlichen Wichtungen arbeiten, wobei die unterschiedlichen Wichtungen jeweils in einer Mehrzahl von Bänken gespeichert werden können. Daneben können die Daten DATA (z. B. die durch den Host bereitgestellten Daten) der Mehrzahl von Verarbeitungselementen gemeinsam bereitgestellt werden. Dementsprechend kann die Mehrzahl von Verarbeitungselementen auf denselben Daten DATA mit unterschiedlichen Wichtungen parallel arbeiten.
  • 12 ist ein Blockdiagramm, das ein Beispiel für einen Übertragungsweg von Informationen in einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens darstellt.
  • Unter Bezugnahme auf 12 beinhaltet ein Datenverarbeitungssystem 800 einen Host 810 und eine Speichervorrichtung 820, wobei der Host 810 einen Speicher-Controller MC beinhaltet und mit der Speichervorrichtung 820 kommunizieren kann. Darüber hinaus beinhaltet die Speichervorrichtung 820 zumindest eine Bank 821, eine PIM-Schaltung 822 und einen Multiplexer MUX als eine Routenwähleinrichtung 823 beinhalten. Die Speichervorrichtung 820 kann ferner verschiedene Komponenten für eine Speicheroperation und eine Operationsverarbeitungsoperation beinhalten. Der Einfachheit halber aber sind die Komponenten nicht dargestellt.
  • Ein Beispiel für eine Informationsübertragungsroute zwischen dem Host 810 und der Speichervorrichtung 820 wird nachstehend beschrieben. In der Routenwähleinrichtung 823 können Schalter (nicht gezeigt) zum Steuern einer Verbindungsbeziehung innerhalb einer Mehrzahl von Bussen, die in der Speichervorrichtung 820 enthalten sind, beinhaltet sein. Die Schalter können durch die Komponenten in der Speichervorrichtung gesteuert werden. Die Schalter können z. B. basierend auf einer Steueroperation eines Befehlsdekodierers (nicht gezeigt) und/oder eines Verarbeitungs-Controllers in der PIM-Schaltung 822 in der Speichervorrichtung 820 gesteuert werden.
  • Die von der Bank 821 gelesenen Informationen können gemeinsamen Daten, einem Operationsverarbeitungsergebnis oder Informationen (z. B. Wichtungsinformationen) entsprechen, die zum Verarbeiten einer Operation in den vorstehend beschriebenen Ausführungsformen verwendet werden. Darüber hinaus können die durch den Host 810 bereitgestellten Daten in der Bank 821 gespeichert sein oder können der PIM-Schaltung 822 direkt bereitgestellt werden, um eine Operation zu verarbeiten.
  • In einer ausführlichen Ausführungsform wird der Speichervorrichtung 820 ein/e Befehl/Adresse von dem Host 810 bereitgestellt, wird eine Dekodieroperation auf dem/der Befehl/Adresse in der Speichervorrichtung 820 ausgeführt, um einen Dekodierbereich zu erzeugen, und, gemäß dem Dekodierergebnis, können sich die Schaltzustände der Schalter der Routenwähleinrichtung 823 verändern. Wenn z. B. der/die Befehl/Adresse einer Leseanforderung an die Bank 821 entspricht, können die von der Bank 821 gelesenen Daten dem Host 810 durch eine Route a bereitgestellt werden. Wenn hingegen der/die Befehl/Adresse einer Operationsverarbeitungsanforderung entspricht, die durch Verwendung von in der Bank 821 gespeicherten Daten ausgeführt wird, können die von der Bank 821 gelesenen Daten der PIM-Schaltung 822 durch eine Route b bereitgestellt werden.
  • Wenn hingegen der/die Befehl/Adresse einer Schreibanforderung an die Bank 821 entspricht, können die Daten von dem Host 810 der Bank 821 durch eine Route c bereitgestellt werden. Wenn hingegen der/die Befehl/Adresse einer Operationsverarbeitungsanforderung unter Verwendung von Daten von dem Host 810 entspricht, können die Daten von dem Host 810 der PIM-Schaltung 822 durch eine Route d bereitgestellt werden.
  • Der/die Befehl/Adresse kann hingegen Informationen entsprechen (z. B. einem Operationsverarbeitungsergebnis), die in der PIM-Schaltung 822 gespeichert sind. In diesem Fall können die in der PIM-Schaltung 822 gespeicherten Informationen dem Host 810 durch eine Route f bereitgestellt werden. Der/die Befehl/Adresse können hingegen einer Anforderung zum Speichern der Informationen in der PIM-Schaltung 822 in der Bank 821 entsprechen. In diesem Fall können die in der PIM-Schaltung 822 gespeicherten Informationen der Bank 821 durch eine Route e bereitgestellt werden.
  • 13A und 13B sind Flussdiagramme, die ein Implementierungsbeispiel einer Anweisung darstellen, die durch eine Speichervorrichtung gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens und durch ein Verfahren zum Betreiben einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens ausgeführten wird.
  • Es können verschiedene Arten von Anweisungen bereitgestellt werden. Es kann z. B. eine Schleifenanweisung zum Ausführen einer Schleife definiert sein, oder es kann eine Abzweigungsanweisung zum Abzweigen zu einer unterschiedlichen Anweisungssequenz definiert sein. Dabei kann in einem Vorgang zum Verarbeiten der Schleifenanweisung ein zusätzlicher Latenzmehraufwand zum Erzeugen einer Verzweigungsbedingung erzeugt werden, der die Effizienz beim Ausführen der Anweisung mindert. Die Erfüllung der Verzweigungsbedingung kann z. B. bewirken, dass eine Schleife der Schleifenanweisung ein weiteres Mal ausgeführt wird. Wenn hingegen ein Loop-Unrolling auf das Ausführen von Anweisungen angewendet wird, weil eine Größe eines Schleifenbasisblocks zunimmt, nimmt auch eine Größe eines die Anweisungen speichernden Speichers zu.
  • Einer beispielhaften Ausführungsform gemäß ist eine auf eine Verarbeitung einer Schleifenanweisung bezogene Befehlssatzarchitektur (ISA) bereitgestellt. Unter Bezugnahme auf 13A kann die Schleifenanweisung verschiedene Felder beinhalten. Gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens beinhaltet die Schleifenanweisung ein FJUMP-Feld, das die Schleifenanweisung darstellt, ein Häufigkeits- bzw. Mal-Feld, das die Anzahl von Wiederholungen einer Schleife darstellt, und ein Ziel-Feld, das eine Position einer Anweisung darstellt, die bewegt werden soll. Dadurch, dass die vorstehend beschriebenen Feldinformationselemente beinhaltet sind, kann die Schleife eine bestimmte Anzahl von Malen ausgeführt werden. Jede Anweisung in der Schleife kann z. B. konsekutiv ausgeführt werden, bis eine letzte Anweisung in der Schleife erreicht ist, und dann kann die Ausführung wieder zu einer ersten Anweisung in der Schleife zurückkehren, die der in dem Ziel-Feld gespeicherten Position entspricht.
  • Unter Bezugnahme auf 13B ist ein Operationsbeispiel einer auf eine Ausführung der Schleifenanweisung in dem vorstehend beschriebenen Beispiel bezogene Speichervorrichtung 900 dargestellt. Die Speichervorrichtung 900 beinhaltet einen Verarbeitungs-Controller 910, einen Befehlsspeicher 920 und einen Programmzähler 930. In dem Befehlsspeicher 920 sind erste bis n. Anweisungen Inst 0 bis Inst n-1 gespeichert. Darüber hinaus entspricht ein aktueller Programmzählwert 1. Dementsprechend wird in Reaktion auf den/die Befehl/Adresse CMD/ADD eine zweite Anweisung Inst1 gelesen. Gemäß der aktuellen Ausführungsform wird zusammen mit der zweiten Anweisung Inst1 eine dritte Anweisung Inst2 entsprechend einer Schleifenanweisung gelesen, die durch einen nächsten Programmzählwert (z. B. PC = 2) angewiesen wird.
  • Der Verarbeitungs-Controller 910 beinhaltet einen Anweisungsdekodierer 911 zum Ausführen einer Dekodieroperation auf einer Anweisung und einen Schleifenzähler 912 zum Erzeugen eines Schleifenzählwerts. Der Anweisungsdekodierer 911 kann eine Vordekodieroperation auf der gelesenen dritten Anweisung Inst2 ausführen. Darüber hinaus wird, da die dritte Anweisung Inst2 der Schleifenanweisung entspricht, ein Schleifenzählwert so gesetzt, dass er Informationen in dem Häufigkeits- bzw. Anzahl-Feld entspricht, das die Häufigkeit bzw. Anzahl der Male der Schleife darstellt. Der Schleifenzähler 912 kann den Schleifenzählwert immer dann erhöhen oder verringern, wenn die Schleife einmal ausgeführt wird. In einem Fall z. B., in dem der Schleifenzähler 912 eine Zähloperation basierend auf einer Abwärtszähloperation ausführt, wird der Schleifenzählwert immer dann um1 verringert, wenn die Schleife ausgeführt wird.
  • Der Verarbeitungs-Controller 910 kann bestimmen, dass eine zu lesende Anweisung die Schleifenanweisung basierend auf einer Vordekodierergebnis ist und kann den Programmzähler 930 so steuern, dass der Programmzählwert die dem Ziel entsprechende Anweisung anweist. Wenn dementsprechend der/die Befehl/Adresse CMD/ADD, der/die anweist, die nächste Operation auszuführen, empfangen wird, kann die Schleife durch Anweisen der Anweisung ausgeführt werden, die dem Ziel entspricht, ohne die dritte Anweisung Inst2 zu lesen oder auszuführen.
  • 14 ist ein Flussdiagramm, das ein Operationsbeispiel einer eine Schleifenanweisung ausführenden Speichervorrichtung gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens darstellt.
  • Unter Bezugnahme auf 14 können Anweisungen basierend auf der Programmzähloperation gemäß den vorstehend beschriebenen Ausführungsformen gelesen werden. Basierend auf dem/der Befehl/Adresse von dem Host, eine Operation zu verarbeiten, wird z. B. eine in dem Befehlsspeicher gespeicherte Anweisung in Operation S31 gelesen. Daneben wird eine durch einen nächsten Programmzählwert angewiesene Anweisung vorher gelesen, wobei eine Vordekodieroperation auf der Anweisung ausgeführt werden kann. Es wird bestimmt, ob die nächste Anweisung der Anweisung FJUMP entspricht, die die Schlaufe in Operation S32 ausführt. Wenn bestimmt wird, dass die nächste Anweisung nicht die Anweisung FJUMP ist, die die Schleife ausführt, wird ein Programmzählwert (z. B. eine aktueller Programmzählwert) auf einen Wert gesetzt, der die nächste Anweisung in Operation S33 anweist. Wenn dementsprechend der/die Befehl/Adresse, der/die anweist, eine nächste Operation zu verarbeiten, empfangen wird, kann die nächste Anweisung anschließend verarbeitet werden.
  • Wenn hingegen bestimmt wird, dass die nächste Anweisung die Anweisung FJUMP ist, wird eine Operation zum Prüfen eines Schleifenzählers ausgeführt, um die Häufigkeit bzw. Anzahl von Malen der Ausführung der Schleife in Operation S34 zu bestimmen, und es wird in Operation S35 bestimmt, ob ein Schleifenzählwert LC 0 entspricht. Wenn bestimmt wird, dass der Schleifenzählwert LC nicht 0 entspricht, wird die Abwärtszähloperation des Schleifenzählers ausgeführt und dementsprechend der Schleifenzählwert LC in Operation S36 reduziert, wobei ein Programmzählwert in Operation S37 eine Anweisung anweist, die dem Ziel entspricht, der in der Schleifenanweisung beinhaltet ist. Wenn dementsprechend der/die Befehl/Adresse, der/die die anweist, eine nächste Operation auszuführen, empfangen wird, kann die dem Ziel entsprechende Anweisung ausgeführt werden, ohne die Schleifenanweisung auszuführen.
  • Wenn hingegen bestimmt wird, dass der Schleifenzählwert LC 0 entspricht, stellt dieser dar, dass die Schleife die vorbestimmte Anzahl von Malen ausgeführt worden ist. Dementsprechend kann sich der Programmzählwert so verändern, dass er in Operation S38 eine nächste Anweisung anweist.
  • 15A und 15B sind Ansichten, die einen Basisblock und ein Operationsbeispiel von Anweisungen darstellen, die ein Schleife (eine Schleifenanweisung) gemäß beispielhaften Ausführungsformen des Erfindungsgedankens ausführen (ausführen).
  • Unter Bezugnahme auf 15A beinhaltet ein Basisblock (z. B. ein Code-Block) eine oder mehrere Anweisungen. In dem Basisblock können z. B. die erste Anweisung Inst0, die eine erste Funktion Function A ausführt, die zweite Anweisung Inst1, die eine zweite Funktion Function B ausführt, und die dritte Anweisung Inst2 enthalten sein, die eine Bewegungsfunktion JFUMP zum Ausführen einer Schleife ausführt. Zusätzlich können Informationen @0 über eine Position von einem Ziel und Informationen n, die die Häufigkeit bzw. Anzahl von Malen von einer Schleife darstellen, in der dritten Anweisung Inst2 enthalten sein. Darüber hinaus wird gemäß den vorstehend beschriebenen Ausführungsformen, wenn der aktuelle Programmzählwert 1 ist, die dritte Anweisung Inst 2 zusammen mit der zweiten Anweisung Inst1 gelesen, wobei eine Vordekodieroperation ausgeführt werden kann.
  • In 15B hingegen ist ein Fall dargestellt, in dem Anweisungen verarbeitet werden, die eine Schleifenanweisung in einem allgemeinen Fall beinhalten, sowie ein Fall, in dem Anweisungen verarbeitet werden, die eine Schleifenanweisung gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens enthalten.
  • Unter Bezugnahme auf 15B wird, wenn der Basisblock von 15 durch ein übliches Verfahren ausgeführt wird, eine Anweisung von einem jeweiligen Betriebssteuerzeitpunkt gelesen, und dementsprechend können die erste Funktion Function A, die zweite Funktion Function B und die Bewegungsfunktion JUMP nacheinander ausgeführt werden. Gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens wird hingegen eine Vordekodieroperation auf der dritten Anweisung Inst2 ausgeführt, wenn der aktuelle Programmzählwert die zweite Anweisung Inst1 anweist. Ohne zusätzliches Ausführen der Bewegungsfunktion JUMP können dementsprechend die erste Funktion Function A und die zweite Funktion Function B wiederholt für die vorbestimmte Anzahl von Malen ausgeführt werden.
  • 16A, 16B und 17 sind Ansichten, die ein Implementierungsbeispiel für eine Anweisung gemäß einer Ausführungsform des Erfindungsgedankens und ein Verfahren zum Durchführen einer Anweisung gemäß einer Ausführungsform des Erfindungsgedankens darstellen. In 16A, 16B und 17 ist eine Anweisung (z. B. eine Multizyklus-Nulloperation- (NOP-) Anweisung) dargestellt, die eine NOP für die vorbestimmte Anzahl von Malen ausführt.
  • Unter Bezugnahme auf 16A, beinhaltet eine Basisblock eine oder mehrere Anweisungen. In dem Basisblock sind z. B. eine erste Anweisung Inst0, die eine erste Funktion Function A ausführt, eine zweite Anweisung Inst 1, die eine zweite Funktion Function B ausführt, und eine dritte Anweisung Inst 2, die eine NOP (MNOP4) während eines Multizyklus ausführt, enthalten. Darüber hinaus können in der dritten Anweisung Inst2 Informationen enthalten sein, die eine NOP-Anweisung darstellen, und Informationen, die die Anzahl der Häufigkeit der Zyklen darstellen, in denen die NOP ausgeführt wird. In einem Beispiel von 16A, wird die NOP in vier Zyklen ausgeführt. Beim Ausführen des Basisblocks, der in 16A dargestellt ist, kann die Vordekodieroperation gemäß der vorstehend beschriebenen Ausführungsform angewendet werden, oder es kann nur eine Anweisung in einem Operationsverarbeitungszyklus gelesen werden.
  • Im Vergleich zu einem Fall, in dem eine Mehrzahl von Anweisungen in einem Speicher gespeichert ist, um eine NOP in dem Multizyklus auszuführen, wenn die Multizyklus-NOP-Anweisung gemäß der in 16A dargestellten Ausführungsform definiert ist, kann eine Größe des Basisblocks verringert sein. Eine NOP kann z. B. zu verschiedenen Zwecken ausgeführt werden, wie z. B. einem Vorsehen einer vorgeschriebenen Verzögerung in Bezug auf eine Anweisungsverarbeitung. Dementsprechend muss eine Mehrzahl von Anweisungen gespeichert werden, die die NOP mehrere Male ausführen. Durch Definieren einer Multizyklus-NOP-Anweisung gemäß der Ausführungsform des Erfindungsgedankens kann der Befehlsspeicher effizient genutzt werden.
  • 16B hingegen stellt ein Beispiel dar, in dem die NOP für die Mehrzahl der Anzahl von Malen gemäß der Multizyklus-NOP-Anweisung ausgeführt wird. Nachdem die erste Funktion Function A und die zweite Funktion Function B ausgeführt worden sind, kann die Mehrzahl der Anzahl von Malen einer NOP ausgeführt werden. Als ein Operationsbeispiel behält der Verarbeitungs-Controller den aktuellen Programmzählwert bei einer vorgeschriebenen Anzahl von Malen ohne Erhöhung des Programmzählwerts basierend auf einem Ergebnis des Dekodierens der Multizyklus-NOP-Anweisung bei. Dementsprechend kann in dem Multizyklus eine NOP ausgeführt werden.
  • 17 stellt ein Operationsbeispiel für eine Speichervorrichtung gemäß einer Multizyklus-NOP-Anweisung dar. Eine Anweisung, die durch den aktuellen Programmzähler angewiesen wird, wird in Operation S41 gelesen und dekodiert, wobei bestimmt wird, ob die aktuelle Anweisung der Multizyklus-NOP-Anweisung MNOP in Operation S42 entspricht. Wenn die aktuelle Anweisung der Multizyklus-NOP-Anweisung MNOP nicht entspricht, weist ein Programmzählwert (z. B. ein aktueller Programmzählwert) einen Wert auf, der eine nächste Anweisung in Operation S43 anweist. Wenn dementsprechend eine Befehl/Adresse-Anweisung einer nächsten zu verarbeitenden Operation empfangen wird, kann die nächste Anweisung anschließend ausgeführt werden.
  • Wenn hingegen die aktuelle Anweisung der Multizyklus-NOP-Anweisung entspricht, wird ein Vorgang zum Überprüfen eines Schleifenzählers zum Bestimmen der Anzahl von Malen einer Ausführung des NOP in Operation S44 ausgeführt, wobei in Operation S45 bestimmt wird, ob der Schleifenzählwert LC 0 entspricht. Wenn, basierend auf einer Abwärtszähloperation, bestimmt wird, dass der Schleifenzählwert LC nicht 0 entspricht, wird der Schleifenzählwert LC in Operation S46 reduziert, und, durch Ausführen der NOP, wird der Programmzählwert bei dem aktuellen Wert in Operation S47 beibehalten. Wenn bestimmt wird, dass der Schleifenzählwert LC 0 entspricht, stellt dies dar, dass der NOP die vorbestimmte Anzahl von Malen ausgeführt worden ist. Dementsprechend verändert sich der Programmzählwert, um in Operation S48 eine nächste Anweisung anzuweisen.
  • 18 ist ein Blockdiagramm, das ein Serversystem 1000 darstellt, das ein Datenverarbeitungssystem gemäß einer beispielhaften Ausführungsform des Erfindungsgedankens beinhaltet.
  • Bezugnehmend auf 18 beinhaltet das Serversystem 1000 einen Manager 1010 (z. B. einen Controller oder eine Steuerungsschaltung) und eine Mehrzahl von Servern 1020 1 bis 1020 K. Jeder von der Mehrzahl von Servern 1020 1 bis 1020 K kann mit dem Datenverarbeitungssystem korrespondieren, das in den vorstehend beschriebenen Ausführungsformen beschrieben ist. Die Mehrzahl von Servern 1020_1 bis 1020_K sind miteinander durch einen Bus verbunden, der ein vorgeschriebenes Protokoll unterstützt (z. B. PCI oder PCIe). Die Mehrzahl von Servern 1020_1 bis 1020 K können miteinander durch eine P2P-Verbindungsstruktur basierend auf einer Steuerung des Managers 1010 kommunizieren.
  • Bezugnehmend auf einen Server (z. B. einen ersten Server 1020_1), beinhaltet der erste Server 1020_1 den Host HOST gemäß den vorstehend beschriebenen Ausführungsformen, wobei eine oder mehrere Speichervorrichtungen MEM verschiedene Arten von Operationen gemäß einer Funktion des ersten Servers 1020_1 verarbeiten können, um ein Verarbeitungsergebnis zu erzeugen, und das Verarbeitungsergebnis speichern können. Gemäß einer Ausführungsform beinhaltet der erste Server 1020_1 ein Adressdatenfeld ADD MAP in einem Host und einer Speichervorrichtung MEM. Die Speichervorrichtung kann Verarbeitungselemente gemäß den vorstehend beschriebenen Ausführungsformen beinhalten, und der Host kann einen Operationsverarbeitungssteuerzeitpunkt der Speichervorrichtung MEM steuern. Darüber hinaus kann die Speichervorrichtung MEM gemäß den vorstehend beschriebenen Ausführungsformen einen Operationsverarbeitungssteuerzeitpunkt bestimmen, indem sie eine/n Befehl/Adresse von dem Host dekodiert. In zumindest einer beispielhaften Ausführungsform entspricht das Serversystem 1000 einem neuronalen Netzwerkserversystem, wobei der erste Server 1020_1 die Speichervorrichtung MEM so steuert, dass zumindest ein Teil einer großen Menge von neuronalen Netzwerkoperationen durch die Speichervorrichtung MEM verarbeitet werden kann.
  • Wenngleich der Erfindungsgedanke unter Bezugnahme auf die Ausführungsformen desselben im Besonderen gezeigt und beschrieben worden ist, wird darauf hingewiesen, dass daran verschiedene Veränderungen an Form und Detail vorgenommen werden können, ohne vom Geist und dem Schutzbereich des Erfindungsgedankens abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62816509 [0001]
    • KR 1020190161674 [0001]

Claims (23)

  1. Speichervorrichtung, aufweisend: einen Speicher, der eine Speicherbank aufweist, die Speicherzellen beinhaltet; eine Prozessor-in-Speicher- (PIM-) Schaltung, die konfiguriert ist, um eine Operation unter Verwendung von Daten die durch einen Host bereitgestellt werden, oder von Daten, die von der Speicherbank gelesen werden, zu verarbeiten, wobei die PIM-Schaltung einen Befehlsspeicher beinhaltet, der zumindest eine von dem Host bereitgestellte Anweisung speichert; und eine Steuerlogik, die konfiguriert ist, um eine/n Befehl/eine Adresse, der/die von dem Host empfangen wird, zu dekodieren, um ein Dekodierergebnis zu erzeugen, und um eine Steueroperation auszuführen, so dass, basierend auf dem Dekodierergebnis, i) eine Speicheroperation auf der Speicherbank ausgeführt wird, und/oder ii) die PIM-Schaltung eine Verarbeitungsoperation ausführt, wobei ein Zählwert eines Programmzählers, der eine Position des Befehlsspeichers anweist, in Reaktion darauf gesteuert wird, dass der/die Befehl/Adresse anweist, die Verarbeitungsoperation auszuführen.
  2. Speichervorrichtung nach Anspruch 1, wobei die Speichervorrichtung die Speicheroperation ausführt, wenn ein Bit-Wert der Adresse zu einem ersten Bereich gehört, und die Verarbeitungsoperation ausführt, wenn der Bit-Wert der Adresse zu einem zweiten Bereich gehört, der sich von dem ersten Bereich unterscheidet.
  3. Speichervorrichtung nach Anspruch 2, wobei die Adresse Modusinformationen aufweist, die einen Speicheroperationsmodus oder einen Operationsverarbeitungsmodus darstellen, und Adressinformationen aufweist, die eine Position der Speicherbank darstellen, und wobei die Adresse zu dem ersten Bereich oder dem zweiten Bereich gemäß einem Bit-Wert der Modusinformationen gehört.
  4. Speichervorrichtung nach Anspruch 1, wobei der Befehl ein Lesebefehl oder ein Schreibbefehl ist.
  5. Speichervorrichtung nach Anspruch 4, wobei die PIM-Schaltung die Verarbeitungsoperation durch Verwendung der Daten ausführt, die von einer Position gelesen werden, die der Adresse der Speicherbank entspricht, wenn der Befehl dem Lesebefehl entspricht, und wobei die PIM-Schaltung die Verarbeitungsoperation unter Verwendung der Daten ausführt, die durch den Host bereitgestellt werden, wenn der Befehl dem Schreibbefehl entspricht.
  6. Speichervorrichtung nach Anspruch 1, wobei die Adresse eine Zeilenadresse aufweist, die eine Zeile der Speicherbank anweist, und eine Spaltenadresse, die eine Spalte der Speicherbank anweist, wobei die PIM-Schaltung die Verarbeitungsoperation unter Verwendung der Daten ausführt, die von einer Position gelesen werden, die durch die Zeilenadresse und die Spaltenadresse angewiesen wird.
  7. Speichervorrichtung nach Anspruch 1, wobei die PIM-Schaltung ferner aufweist: einen Verarbeitungs-Controller, der konfiguriert ist, um eine Steueroperation auszuführen, so dass eine Anweisungsoperation, die einer Anweisung entspricht, die durch den Zählwert des Programmzählers angewiesen wird, verarbeitet wird; und zumindest ein Verarbeitungselement, das konfiguriert ist, um die Anweisungsoperation basierend auf einer Steuerung des Verarbeitungs-Controllers auszuführen.
  8. Speichervorrichtung nach Anspruch 7, wobei das zumindest eine Verarbeitungselement eine Mehrzahl von Verarbeitungselementen aufweist, wobei der Speicher eine Mehrzahl von die Speicherbank beinhaltenden Speicherbänken aufweist, und die Verarbeitungselemente jeweils so angeordnet sind, dass sie mit den Speicherbänken korrespondieren.
  9. Speichervorrichtung nach Anspruch 7, wobei jedes von den Verarbeitungselementen durch zumindest zwei von den Speicherbänken gemeinsam verwendet wird.
  10. Speichervorrichtung nach Anspruch 1, wobei, wenn der/die Befehl/Adresse, der/die anweist, die Verarbeitungsoperation auszuführen, empfangen wird, eine erste Anweisung, die durch einen aktuellen Zählwert des Programmzählers angewiesen wird, und eine zweite Anweisung, die durch einen nächsten Zählwert des Programmzählers angewiesen wird, zusammen gelesen werden, und eine Vorkodieroperation auf der zweiten Anweisung ausgeführt wird.
  11. Speichervorrichtung nach Anspruch 10, wobei, wenn die zweite Anweisung einer Schleifenanweisung entspricht, die zweite Anweisung Informationen über eine Position einer dritten Anweisung beinhaltet, die versetzt werden soll, und wobei die PIM-Schaltung die dritte Anweisung ausführt, ohne die zweite Anweisung auszuführen, wenn ein/e Befehl/Adresse, der/die anweist, eine nächste Operation auszuführen, empfangen wird.
  12. Speichervorrichtung nach Anspruch 1, wobei die Operation für eine neuronale Netzwerkverarbeitung ist, und die PIM-Schaltung die Verarbeitungsoperation unter Verwendung der Daten von dem Host und Wichtungsinformationen in der Speicherbank ausführt.
  13. Verfahren zum Betreiben einer Speichervorrichtung, die eine Mehrzahl von Speicherbänken beinhaltet, wobei das Verfahren aufweist: Speichern einer Mehrzahl von Anweisungen, die von einem Host empfangen werden, die einer Verarbeitungsoperation entsprechen; Dekodieren eines/einer Befehls/Adresse, der/die von dem Host empfangen werden, um zu bestimmen, ob die Adresse zu einem ersten Bereich und/oder einem zweiten Bereich gehört, Ausführen einer Speicheroperation entsprechend dem/der empfangenen Befehl/Adresse, wenn bestimmt wird, dass die Adresse dem ersten Bereich entspricht; und Lesen einer angewiesenen Anweisung von der Mehrzahl von Anweisungen und Ausführen einer Verarbeitungsoperation entsprechend der Leseanweisung in einer Prozessor-in-Speicher (PIM-) Schaltung, die in der Speichervorrichtung angeordnet ist, wenn bestimmt wird, dass die Adresse zu dem zweiten Bereich gehört.
  14. Verfahren nach Anspruch 13, wobei das Lesen der Anweisung beinhaltet: Prüfen eines Zählwerts eines Programmzählers, der eine Position eines Befehlsspeichers anweist, in dem die Mehrzahl von Anweisungen gespeichert sind, und Ausführen eines Zählens des Programmzählers in Reaktion darauf, dass der/die Befehl/Adresse anweisen, die Verarbeitungsoperation auszuführen.
  15. Verfahren nach Anspruch 13, wobei, zumindest einige der Bits der Adresse Adressinformationen über eine Position von Daten beinhalten, die in einer Speicherbank von den Speicherbänken gespeichert sind, und wobei die Verarbeitungsoperation durch Verwendung von Daten ausgeführt wird, die von einer Position gelesen werden, die durch die Adressinformationen angewiesen wird.
  16. Verfahren nach Anspruch 13, wobei die Verarbeitungsoperation durch Verwendung von Daten ausgeführt wird, die durch den Host zusammen mit dem/der Befehl/Adresse bereitgestellt werden.
  17. Verfahren nach Anspruch 13, wobei der Befehl ein Lesebefehl oder ein Schreibbefehl ist.
  18. Verfahren nach Anspruch 13, wobei Wichtungsinformationen über eine neuronale Netzwerkoperation in den Speicherbänken gespeichert sind, und wobei die Verarbeitung der Operation folgendes beinhaltet: Lesen von Wichtungsinformationselementen mit unterschiedlichen Werten von den Speicherbänken; und paralleles Operieren anhand von durch den Host bereitgestellten Daten mit den Wichtungsinformationselementen.
  19. Datenverarbeitungssystem, aufweisend einen Host, wobei der Host aufweist: einen Adressdatenfeldspeicher, der konfiguriert ist, um eine Mehrzahl von Adressen zu speichern, die zu einem ersten Bereich zum Anweisen einer auf einer Speichervorrichtung auszuführenden Speicheroperation gehören, und um eine Mehrzahl von Adressen zu speichern, die zu einem zweiten Bereich zum Anweisen einer Verarbeitungsoperation gehören, die unter Verwendung von Daten ausgeführt werden soll, die von einer von Speicherbänken der Speichervorrichtung ausgewählten Speicherbank gelesen werden; und eine Speicherschnittstelle, die konfiguriert ist, um anzuweisen, dass die Speicheroperation durch Ausgeben einer Adresse auszuführen ist, die zu dem ersten Bereich gehört, und um anzuweisen, dass die Verarbeitungsoperation durch Ausgeben einer Adresse auszuführen ist, die zu dem zweiten Bereich gehört.
  20. Datenverarbeitungssystem nach Anspruch 19, wobei, beim Anweisen der Speicheroperation und der Verarbeitungsoperation, der Host ferner einen Schreibbefehl oder einen Lesebefehl ausgibt.
  21. Datenverarbeitungssystem nach Anspruch 19, ferner aufweisend die Speichervorrichtung, die die Mehrzahl von Bänken beinhaltet, wobei die Speichervorrichtung aufweist: eine Prozessor-im-Speicher- (PIM-) Schaltung, die konfiguriert ist, um eine Operation durch Verwendung von Daten zu verarbeiten, die durch den Host bereitgestellt werden, und/oder von Daten, die von den Speicherbänken gelesen werden; und eine Steuerlogik, die konfiguriert ist, um einen/eine Befehl/Adresse zu dekodieren, die von dem Host empfangen werden, um ein Dekodierergebnis zu erzeugen, und um eine Steueroperation auszuführen, so dass, basierend auf dem Dekodierergebnis, i) die Speicheroperation auf den Speicherbänken ausgeführt wird und/oder ii) die PIM-Schaltung die Verarbeitungsoperation ausführt.
  22. Datenverarbeitungsoperation nach Anspruch 21, wobei die PIM-Schaltung aufweist: einen Befehlsspeicher, der konfiguriert ist, um eine Mehrzahl von durch den Host bereitgestellten Anweisungen zu speichern; und einen Programmzähler, der konfiguriert ist, um einen Zählwert auszugeben, der eine Position des Befehlsspeichers anweist; und wobei, in Reaktion auf den/die Befehl/Adresse, der/die anweist, die Verarbeitungsoperation auszuführen, ein Zählen des Programmzählers ausgeführt wird.
  23. Datenverarbeitungssystem nach Anspruch 21, wobei, indem der/die Befehl/Adresse anweist, die Verarbeitungsoperation auszuführen, Adressinformationen über eine Position von Daten, die in der ausgewählten Bank gespeichert sind, in der Adresse enthalten sind, und wobei die PIM-Schaltung die Verarbeitungsoperation durch Verwendung von Daten ausführt, die von einer Position gelesen werden, die der Adresse der ausgewählten Bank entspricht.
DE102020106356.3A 2019-03-11 2020-03-09 Speichervorrichtung für eine Verarbeitungsoperation, dieselbe umfassendes Datenverarbeitungssystem und Verfahren zum Betreiben der Speichervorrichtung Pending DE102020106356A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962816509P 2019-03-11 2019-03-11
US62/816,509 2019-03-11
KR1020190161674A KR20200108773A (ko) 2019-03-11 2019-12-06 연산 처리를 수행하는 메모리 장치, 이를 포함하는 데이터 처리 시스템 및 메모리 장치의 동작방법
KR10-2019-0161674 2019-12-06

Publications (1)

Publication Number Publication Date
DE102020106356A1 true DE102020106356A1 (de) 2020-09-17

Family

ID=72241185

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020106356.3A Pending DE102020106356A1 (de) 2019-03-11 2020-03-09 Speichervorrichtung für eine Verarbeitungsoperation, dieselbe umfassendes Datenverarbeitungssystem und Verfahren zum Betreiben der Speichervorrichtung

Country Status (3)

Country Link
US (2) US11663008B2 (de)
CN (1) CN111679785A (de)
DE (1) DE102020106356A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11526302B2 (en) * 2019-06-20 2022-12-13 AI Plus, Inc. Memory module and computing device containing the memory module
US11704052B2 (en) * 2020-01-07 2023-07-18 SK Hynix Inc. Processing-in-memory (PIM) systems
KR20210093521A (ko) * 2020-01-20 2021-07-28 삼성전자주식회사 고대역폭 메모리 및 이를 포함하는 시스템
US11237907B2 (en) * 2020-05-29 2022-02-01 Taiwan Semiconductor Manufacturing Company, Ltd. Processing-in-memory instruction set with homomorphic error correction
US20220206855A1 (en) * 2020-12-29 2022-06-30 Advanced Micro Devices, Inc. Offloading computations from a processor to remote execution logic
US20220206685A1 (en) * 2020-12-31 2022-06-30 Advanced Micro Devices, Inc. Reusing remote registers in processing in memory
US11468001B1 (en) * 2021-03-30 2022-10-11 Advanced Micro Devices, Inc. Processing-in-memory concurrent processing system and method
US11630605B1 (en) * 2022-08-10 2023-04-18 Recogni Inc. Methods and systems for processing read-modify-write requests
US20240070068A1 (en) * 2022-08-26 2024-02-29 Samsung Electronics Co., Ltd. Device and method with memory request processing using memory address space extension
US20240168907A1 (en) * 2022-11-18 2024-05-23 Nxp B.V. Method and apparatus for performing address translations using a remapping process

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPO648397A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Improvements in multiprocessor architecture operation
US6564271B2 (en) 1999-06-09 2003-05-13 Qlogic Corporation Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
US6782461B2 (en) 2002-02-25 2004-08-24 Intel Corporation Dynamically adjustable load-sharing circular queues
GB2400195B (en) 2003-03-31 2005-06-29 Micron Technology Inc Active memory processing array topography and method
US20050251791A1 (en) 2004-04-14 2005-11-10 Robert Hundt Systems and methods for branch profiling loops of an executable program
KR100615694B1 (ko) * 2004-08-16 2006-08-25 삼성전자주식회사 복수개의 기능블럭을 제어하는 제어시스템
JP2008305185A (ja) 2007-06-07 2008-12-18 Nec Electronics Corp プロセッサ装置及び複合条件処理方法
US20100262979A1 (en) 2009-04-08 2010-10-14 Google Inc. Circular command queues for communication between a host and a data storage device
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
US20110072238A1 (en) 2009-09-20 2011-03-24 Mimar Tibet Method for variable length opcode mapping in a VLIW processor
US9477636B2 (en) * 2009-10-21 2016-10-25 Micron Technology, Inc. Memory having internal processors and data communication methods in memory
US8806446B2 (en) * 2010-03-22 2014-08-12 Analog Devices, Inc. Methods and apparatus for debugging programs in shared memory
US8621151B2 (en) * 2010-11-23 2013-12-31 IP Cube Partners (IPC) Co., Ltd. Active memory processor system
US8949551B2 (en) * 2011-02-23 2015-02-03 Freescale Semiconductor, Inc. Memory protection unit (MPU) having a shared portion and method of operation
US9575903B2 (en) * 2011-08-04 2017-02-21 Elwha Llc Security perimeter
US9530245B2 (en) * 2011-12-29 2016-12-27 Qualcomm Incorporated Packing multiple shader programs onto a graphics processor
US20140115278A1 (en) 2012-10-23 2014-04-24 Analog Devices, Inc. Memory architecture
US10049061B2 (en) * 2012-11-12 2018-08-14 International Business Machines Corporation Active memory device gather, scatter, and filter
US10042750B2 (en) * 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US9507600B2 (en) 2014-01-27 2016-11-29 Texas Instruments Deutschland Gmbh Processor loop buffer
US10289604B2 (en) 2014-08-07 2019-05-14 Wisconsin Alumni Research Foundation Memory processing core architecture
US10061590B2 (en) * 2015-01-07 2018-08-28 Micron Technology, Inc. Generating and executing a control flow
EP3254287A4 (de) 2015-02-06 2018-08-08 Micron Technology, INC. Vorrichtungen und verfahren für speichereinrichtung als ein speicher für programmbefehle
US20160283232A1 (en) 2015-03-27 2016-09-29 Raanan Sade Instruction and Logic for Speculative Request Support for Prefetching
KR102402672B1 (ko) 2015-09-01 2022-05-26 삼성전자주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템에서 연산들을 처리하는 방법
KR101814577B1 (ko) 2015-10-16 2018-01-03 삼성전자주식회사 프로세싱-인-메모리를 이용한 명령어 처리 방법 및 그 장치
US9892058B2 (en) * 2015-12-16 2018-02-13 Advanced Micro Devices, Inc. Centrally managed unified shared virtual address space
US9997232B2 (en) 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
US10388393B2 (en) * 2016-03-22 2019-08-20 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10474581B2 (en) 2016-03-25 2019-11-12 Micron Technology, Inc. Apparatuses and methods for cache operations
US10795815B2 (en) * 2016-05-27 2020-10-06 Arm Limited Method and apparatus for maintaining data coherence in a non-uniform compute device
KR102548591B1 (ko) * 2016-05-30 2023-06-29 삼성전자주식회사 반도체 메모리 장치 및 그것의 동작 방법
US10083722B2 (en) * 2016-06-08 2018-09-25 Samsung Electronics Co., Ltd. Memory device for performing internal process and operating method thereof
DE102017112353A1 (de) * 2016-06-08 2017-12-14 Samsung Electronics Co., Ltd. Speichervorrichtung zum Durchführen eines internen Prozesses und Betriebsverfahren dafür
US10303632B2 (en) * 2016-07-26 2019-05-28 Micron Technology, Inc. Accessing status information
US10416896B2 (en) 2016-10-14 2019-09-17 Samsung Electronics Co., Ltd. Memory module, memory device, and processing device having a processor mode, and memory system
CN107958679B (zh) * 2016-10-14 2023-05-23 三星电子株式会社 存储器模块和用于存储器模块的处理数据缓冲器
US10402340B2 (en) * 2017-02-21 2019-09-03 Micron Technology, Inc. Memory array page table walk
KR101867219B1 (ko) 2017-02-22 2018-06-12 연세대학교 산학협력단 동적 메모리 인터페이스에 기반하여 서로 다른 메모리 연산들을 처리하기 위한 장치 및 방법
US10540342B2 (en) 2017-05-08 2020-01-21 American Express Travel Related Services Company, Inc. In-memory transaction processing
JP6961997B2 (ja) * 2017-05-15 2021-11-05 富士通株式会社 情報処理装置、メモリ制御装置および情報処理装置の制御方法
US10318168B2 (en) * 2017-06-19 2019-06-11 Micron Technology, Inc. Apparatuses and methods for simultaneous in data path compute operations
US10437482B2 (en) 2017-07-25 2019-10-08 Samsung Electronics Co., Ltd. Coordinated near-far memory controller for process-in-HBM
US10346092B2 (en) * 2017-08-31 2019-07-09 Micron Technology, Inc. Apparatuses and methods for in-memory operations using timing circuitry
KR102468737B1 (ko) 2017-12-19 2022-11-21 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20190075363A (ko) 2017-12-21 2019-07-01 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 모듈
KR102453542B1 (ko) 2018-02-21 2022-10-12 삼성전자주식회사 스킵 연산 모드를 지원하는 메모리 장치 및 그 동작 방법
US10970441B1 (en) * 2018-02-26 2021-04-06 Washington University System and method using neural networks for analog-to-information processors
US10692570B2 (en) * 2018-07-11 2020-06-23 Sandisk Technologies Llc Neural network matrix multiplication in memory cells
KR102665410B1 (ko) 2018-07-30 2024-05-13 삼성전자주식회사 메모리 장치의 내부 프로세싱 동작 방법
US11138499B2 (en) * 2018-09-28 2021-10-05 Intel Corporation Applications of back-end-of-line (BEOL) capacitors in compute-in-memory (CIM) circuits

Also Published As

Publication number Publication date
CN111679785A (zh) 2020-09-18
US20230236836A1 (en) 2023-07-27
US11663008B2 (en) 2023-05-30
US20200293319A1 (en) 2020-09-17

Similar Documents

Publication Publication Date Title
DE102020106356A1 (de) Speichervorrichtung für eine Verarbeitungsoperation, dieselbe umfassendes Datenverarbeitungssystem und Verfahren zum Betreiben der Speichervorrichtung
DE102010030742B4 (de) Phasenwechselspeicher in einem doppelreihigen Speichermodul
DE102018131032A1 (de) Speichervorrichtung, die einen Berechnungs-Überspringmodus unterstützt
DE102013109327A1 (de) Speichervorrichtung zum Verringern eines Schreibfehlers, ein System mit derselben und Verfahren davon
DE102018122491A1 (de) Halbleiterspeichervorrichtung und verfahren zum betreiben derselben
DE69630110T2 (de) Verfahren und vorrichtung zur steuerung von linearen und kippschaltbetrieb stosszugriffssequenzen mittels kippschaltbetrieb inkrement-logik
DE102011086098A1 (de) Parallele Speicherlese- und Speicherschreib-Operationen in einem Speicher mit serieller Schnittstelle
DE102007063812B3 (de) Verfahren und Vorrichtung zum Kommunizieren von Befehls- und Adresssignalen
DE102006002526A1 (de) Steuervorrichtung für eine Solid-State-Disk und Verfahren zum Betreiben derselben
DE112005002336T5 (de) Befehl, der unterschiedliche Operationen in unterschiedlichen Chips steuert
DE102006043311A1 (de) Speichersystem
KR20200108774A (ko) 순환 큐 기반의 명령어 메모리를 포함하는 메모리 장치 및 그 동작방법
DE102020211544A1 (de) Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben
DE102020107491B4 (de) Speichersystem und verfahren zu dessen betrieb
DE112020003736B4 (de) Nichtflüchtige multiport-speichervorrichtung mit bankzuordnung und verwandte systeme und verfahren
DE112020003855T5 (de) Bitfolgeoperationen in Speicher
DE102020133667A1 (de) Technologien zum Durchführen von Spaltenleseoperationen an geclusterten Daten in einer DIMM-Architektur
DE102022121773A1 (de) In-memory-assoziativverarbeitungssystem
DE60315190T2 (de) Vorladevorschlag
DE102020106357A1 (de) Speichereinrichtung und verfahren mit anweisungsringspeicherwarteschlange
DE102011081438A1 (de) Modifizierte Leseoperation für einen nichtflüchtigen Speicher
DE10260996B4 (de) Speichersteuerchip,-steuerverfahren und -steuerschaltung
DE102008026098A1 (de) Verfahren und Vorrichtung zum Modifizieren einer Burstlänge für einen Halbleiterspeicher
DE102021132219A1 (de) Speicherablaufverfolgung in einem emulierten rechensystem
DE102020110540A1 (de) Speichervorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed