DE102021121105A1 - Intelligente ablagespeichervorrichtung - Google Patents

Intelligente ablagespeichervorrichtung Download PDF

Info

Publication number
DE102021121105A1
DE102021121105A1 DE102021121105.0A DE102021121105A DE102021121105A1 DE 102021121105 A1 DE102021121105 A1 DE 102021121105A1 DE 102021121105 A DE102021121105 A DE 102021121105A DE 102021121105 A1 DE102021121105 A1 DE 102021121105A1
Authority
DE
Germany
Prior art keywords
storage
data
protocol
memory
intelligent
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
DE102021121105.0A
Other languages
English (en)
Inventor
Hyeok Jun Choe
Youn Ho Jeon
Young Geon Yoo
Hyo-Deok Shin
I Poom Jeong
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 KR1020210007897A external-priority patent/KR20220042991A/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102021121105A1 publication Critical patent/DE102021121105A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Eine intelligente Ablagespeichervorrichtung wird bereitgestellt. Die intelligente Ablagespeichervorrichtung enthält eine intelligente Schnittstelle, die mit einer Hostvorrichtung verbunden ist. Eine Beschleunigerschaltung ist mit der intelligenten Schnittstelle über einen Datenbus verbunden, der einem CXL.cache-Protokoll und einem CXL.mem-Protokoll entspricht. Die Beschleunigerschaltung ist konfiguriert, eine Beschleunigungsberechnung als Antwort auf einen Berechnungsbefehl der Hostvorrichtung auszuführen. Eine Ablagespeichersteuerung ist über einen Datenbus, der einem CXL.io-Protokoll entspricht, mit der intelligenten Schnittstelle verbunden. Die Ablagespeichersteuerung ist konfiguriert, eine Datenzugriffsoperation für eine Ablagespeichervorrichtung als Antwort auf einen Datenzugriffsbefehl der Hostvorrichtung zu steuern. Die Beschleunigerschaltung ist für die Ablagespeichervorrichtung über einen internen Bus, der direkt mit der Ablagespeichersteuerung verbunden ist, direkt zugreifbar.

Description

  • HINTERGRUND
  • Technisches Gebiet
  • Die vorliegende Offenbarung bezieht sich auf eine Ablagespeichervorrichtung und insbesondere auf eine Ablagespeichervorrichtung unter Verwendung einer Compute Express Link(CXL)-Schnittstelle.
  • Diskussion der verwandten Technik
  • Moderne Ablagespeichervorrichtungen sind in der Lage, größere Mengen an Daten zu speichern und mit höheren Geschwindigkeiten zu operieren.
  • Hostvorrichtungen, wie z. B. zentrale Verarbeitungseinheiten (CPU) und Grafikverarbeitungseinheiten (GPU), sind jedoch meist mit Halbleiterkomponenten, wie z. B. Speichervorrichtungen, über Datenbusse verbunden, die gemäß Peripheral Component Interconnect Express(PCIe)-Protokollen operieren. Datenbusse wie PCIe haben eine relativ geringe Bandbreite und lange Verzögerungen, und bei Halbleitervorrichtungen, die auf diese Weise angeordnet sind, können häufig Probleme in Bezug auf Kohärenz und gemeinsame Nutzung von Speicher auftreten.
  • KURZFASSUNG
  • Eine intelligente Ablagespeichervorrichtung enthält eine intelligente Schnittstelle, die mit einer Hostvorrichtung verbunden ist, eine Beschleunigerschaltung, die mit der intelligenten Schnittstelle über einen Datenbus verbunden ist, der einem Compute Express Link (CXL).cache-Protokoll und einem CXL.mem-Protokoll entspricht, und die konfiguriert ist, eine Beschleunigungsberechnung als Antwort auf einen Berechnungsbefehl der Hostvorrichtung auszuführen, und eine Ablagespeichersteuerung, die mit der intelligenten Schnittstelle über einen Datenbus verbunden ist, der dem CXL.io-Protokoll entspricht, und die konfiguriert ist, eine Datenzugriffsoperation für eine Ablagespeichervorrichtung als Antwort auf einen Zugriffsbefehl der Hostvorrichtung zu steuern. Die Beschleunigerschaltung ist für die Ablagespeichervorrichtung über einen internen Bus, der direkt mit der Ablagespeichersteuerung verbunden ist, direkt zugreifbar.
  • Eine intelligente Ablagespeichervorrichtung enthält eine intelligente Schnittstelle, die mit einer Hostvorrichtung verbunden ist, eine Speichersteuerungsschaltung, die mit der intelligenten Schnittstelle über einen Datenbus verbunden ist, der einem CXL.cache-Protokoll und einem CXL.mem-Protokoll entspricht, und konfiguriert ist, eine erste Zugriffsoperation für eine Speichervorrichtung zu steuern. Eine Ablagespeichersteuerung ist über einen Datenbus, der einem CXL.io-Protokoll entspricht, mit der intelligenten Schnittstelle verbunden und konfiguriert, eine zweite Zugriffsoperation für eine Ablagespeichervorrichtung zu steuern. Die intelligente Schnittstelle enthält eine interne Verbindung, die den Datenbus, der dem CXL.mem-Protokoll und dem CXL.io-Protokoll entspricht, direkt verbindet, um auf die Speichersteuerung und die Ablagespeichersteuerung direkt zuzugreifen.
  • Eine intelligente Ablagespeichervorrichtung enthält eine intelligente Schnittstelle, die mit einer Hostvorrichtung verbunden ist. Eine Beschleunigerschaltung ist mit der intelligenten Schnittstelle über einen Datenbus verbunden, der einem CXL.cache-Protokoll und einem CXL.mem-Protokoll entspricht, und die konfiguriert ist, als Antwort auf einen Berechnungsbefehl der Hostvorrichtung eine Beschleunigungsberechnung auszuführen. Eine Ablagespeichersteuerung ist über einen Datenbus, der einem CXL.io-Protokoll entspricht, mit der intelligenten Schnittstelle verbunden und konfiguriert, eine Datenzugriffsoperation für eine Ablagespeichervorrichtung als Antwort auf einen Datenzugriffsbefehl der Hostvorrichtung zu steuern. Eine Beschleunigerspeichersteuerungsschaltung ist über den Datenbus, der dem CXL.cache-Protokoll und dem CXL.mem-Protokoll entspricht, mit der intelligenten Schnittstelle verbunden und konfiguriert, eine zweite Zugriffsoperation für eine Beschleunigerspeichervorrichtung zu steuern. Die Ablagespeichersteuerung ist für die Beschleunigerschaltung und die Beschleunigerspeichersteuerungsschaltung direkt zugreifbar.
  • Ein Verfahren zum Operieren einer intelligenten Ablagespeichervorrichtung enthält Empfangen eines Befehls von einer Hostvorrichtung, Senden des Befehls an eine Beschleunigerschaltung über eine Compute Express Link (CXL)-Schnittstelle, Anfordern eines Datenzugriffs von einer Ablagespeichersteuerung durch die Beschleunigerschaltung über einen internen Bus gemäß Berechnungsinformation, die durch Dekodieren des Befehls extrahiert wird, Zugreifen auf Daten von einer Ablagespeichervorrichtung durch die Ablagespeichersteuerung gemäß der Anforderung und Empfangen eines Datenzugriffsergebnisses, das von der Ablagespeichervorrichtung empfangen wird, durch die Beschleunigerschaltung, um eine Beschleunigungsberechnung basierend auf dem Befehl auszuführen.
  • Figurenliste
  • Die obigen und andere Aspekte und Merkmale der vorliegenden Offenbarung werden durch die detaillierte Beschreibung verschiedener Ausführungsformen davon unter Bezugnahme auf die beigefügten Zeichnungen deutlicher, in denen:
    • 1 ein Blockdiagramm ist, das eine intelligente Ablagespeichervorrichtung gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung veranschaulicht;
    • 2 ein Blockdiagramm ist, das die intelligente Ablagespeichervorrichtung von 1 veranschaulicht;
    • 3 ein Blockdiagramm ist, das die Beschleunigerschaltung von 2 veranschaulicht;
    • 4 ein Blockdiagramm ist, das die Ablagespeichersteuerung von 2 veranschaulicht;
    • 5 und 6 Flussdiagramme sind, die ein Verfahren zum Operieren der intelligenten Ablagespeichervorrichtung von 2 veranschaulichen;
    • 7 ein Blockdiagramm ist, das die intelligente Ablagespeichervorrichtung von 1 veranschaulicht;
    • 8 ein Blockdiagramm ist, das die intelligente Schnittstelle von 1 veranschaulicht; und
    • 9 bis 11 Flussdiagramme sind, die ein Verfahren zum Operieren der intelligenten Ablagespeichervorrichtung von 7 veranschaulichen.
  • DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Nachfolgend werden Ausführungsformen der vorliegenden Offenbarung unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
  • 1 ist ein Blockdiagramm, das eine intelligente Ablagespeichervorrichtung gemäß den Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
  • In einigen Ausführungsformen kann eine Hostvorrichtung 10 einer zentralen Verarbeitungseinheit (CPU), einer Grafikverarbeitungseinheit (GPU), einer neuronalen Verarbeitungseinheit (NPU), einem Field-Programmable Gate Array (FPGA), einem Prozessor, einem Mikroprozessor, einem Anwendungsprozessor (AP) oder dergleichen entsprechen. Gemäß einigen Ausführungsformen kann die Hostvorrichtung 10 als Ein-Chip-System (SoC) implementiert sein. Bei der Hostvorrichtung 10 kann es sich beispielsweise um ein mobiles System wie ein tragbares Kommunikationsendgerät (Mobiltelefon), ein Smartphone, einen Tablet-Computer, eine tragbare Vorrichtung, eine Vorrichtung für das Gesundheitswesen, eine Vorrichtung für das Internet der Dinge (IoT), einen Personalcomputer, einen Laptop/Notebook-Computer, einen Server, einen Mediaplayer oder eine Kfz-Vorrichtung wie ein Satellitennavigationssystem handeln. Darüber hinaus kann die Hostvorrichtung 10 eine Kommunikationsvorrichtung enthalten, die so konfiguriert ist, dass sie Signale zwischen anderen Vorrichtungen außerhalb der Hostvorrichtung 10 gemäß verschiedenen Kommunikationsprotokollen sendet und empfängt. Die Kommunikationsvorrichtung ist eine Vorrichtung, die die Hostvorrichtung 10 mit einer drahtgebundenen oder drahtlosen Verbindung verbindet, und kann beispielsweise eine Antenne, einen Sendeempfänger und/oder ein Modem enthalten. Die Hostvorrichtung 10 kann z. B. mit einem Ethernet-Netzwerk verbunden sein oder über die Kommunikationsvorrichtung mit einem drahtlosen Netzwerk verbunden werden.
  • Die Hostvorrichtung 10 kann einen Host-Prozessor 11 und einen Host-Speicher 12 enthalten. Der Host-Prozessor 11 kann die gesamte Operation der Hostvorrichtung 10 steuern, und der Host-Speicher 12 ist ein Arbeitsspeicher und kann Befehle, Programme, Daten oder Ähnliches speichern, die für die Operation des Host-Prozessors 11 notwendig sind.
  • Bei einer intelligenten Ablagespeichervorrichtung 1000 kann es sich gemäß Ausführungsformen der vorliegenden Offenbarung um ein Datenzentrum oder eine mit künstlicher Intelligenz operierende Datenvorrichtung handeln. Bei der intelligenten Ablagespeichervorrichtung 1000 kann es sich um eine Halbleitervorrichtung handeln, die in der Lage ist, Prozesse auszuführen und Daten zu speichern, wie beispielsweise Processingin-Memory (PIM) oder Computing-in-Memory (CIM).
  • Die intelligente Ablagespeichervorrichtung 1000 kann eine intelligente Schnittstelle 100, eine Beschleunigerschaltung 200, eine Ablagespeichersteuerung 300 und eine Speichersteuerung 400 enthalten. Die intelligente Ablagespeichervorrichtung 1000 kann gemäß einigen Ausführungsformen die intelligente Schnittstelle 100, die Beschleunigerschaltung 200 und die Ablagespeichersteuerung 300 enthalten, oder sie kann gemäß einigen Ausführungsformen die intelligente Schnittstelle 100, die Ablagespeichersteuerung 300 und die Speichersteuerung enthalten, oder sie kann gemäß einigen Ausführungsformen die intelligente Schnittstelle 100, die Beschleunigerschaltung 200, die Ablagespeichersteuerung 300 und die Speichersteuerung enthalten.
  • Bei der in 1 dargestellten intelligenten Ablagespeichervorrichtung 1000 handelt es sich um eine Halbleitervorrichtung, die gemäß einigen Ausführungsformen eine Compute Express Link(CXL)-Schnittstelle verwendet. Die intelligente Schnittstelle 100 verwendet die CXL-Schnittstelle gemäß einigen Ausführungsformen.
  • Bei der CXL-Schnittstelle handelt es sich um einen Standard für die Verbindung von Computervorrichtungen und um eine Schnittstelle, die den Overhead und die Wartezeit der Hostvorrichtung und der intelligenten Ablagespeichervorrichtung 1000 reduzieren und die gemeinsame Nutzung des Speicherplatzes des Host-Speichers und der Ablagespeichervorrichtung in einer heterogenen Computerumgebung ermöglichen kann, in der die Hostvorrichtung 10 und die intelligente Ablagespeichervorrichtung 1000 zusammenarbeiten. Zum Beispiel kommunizieren die Hostvorrichtung 10 und das Ein-Chip-System, die GPU, die komplexe Berechnungen ausführt, und ein Beschleunigungsmodul, wie ein Field-Programmable Gate Array (FPGA), direkt miteinander und teilen sich den Speicher. Die intelligente Ablagespeichervorrichtung 1000 der vorliegenden Spezifikation basiert auf dem CXL-Standard.
  • Die Hostvorrichtung 10 kann mit mindestens einer der Beschleunigerschaltungen 200, der Ablagespeichersteuerung 300 oder der Speichersteuerung 400 über die intelligente Schnittstelle 100 verbunden werden, um die gesamte Operation der intelligenten Ablagespeichervorrichtung 1000 zu steuern.
  • Die intelligente Schnittstelle 100 ist so konfiguriert, dass sie CXL-Unterprotokolle wie CXL.io, CXL.cache-Protokoll und CXL.mem verwendet. Das CXL.io-Protokoll ist eine PCIe-Transaktionsschicht, die im System für die Erkennung von Vorrichtungen, die Verwaltung von Unterbrechungen, das Bereitstellen von Zugriffen durch Register, die Verarbeitung von Initialisierungen, die Verarbeitung von Signalfehlern oder Ähnliches verwendet wird. Das CXL.cache-Protokoll kann verwendet werden, wenn die Beschleunigerschaltung 200 auf den Host-Speicher 12 der Hostvorrichtung zugreift. Das CXL.mem-Protokoll kann verwendet werden, wenn die Hostvorrichtung 10 auf einen Beschleunigerspeicher 290 der Beschleunigerschaltung 200 (siehe 2) oder die mit der Speichersteuerung 400 verbundene Speichervorrichtung 490 (siehe 7) zugreift.
  • Die Beschleunigerschaltung 200 kann eine Beschleunigungsberechnung gemäß einem Berechnungsbefehl der Hostvorrichtung 10 ausführen. Gemäß einigen Ausführungsformen kann die Beschleunigerschaltung 200 eine Verarbeitungseinheit für ein neuronales Netzwerk, ein KI-Beschleuniger, eine CPU, eine Grafikverarbeitungseinheit (GPU), eine digitale Signalverarbeitungseinheit (DSP), eine neuronale Verarbeitungseinheit (NPU), ein Coprozessor oder ein anderer geeigneter Prozessor sein.
  • Die Ablagespeichersteuerung 300 kann mit mindestens einer Ablagespeichervorrichtung 390 verbunden sein, um eine Operation der Ablagespeichervorrichtung 390 zu steuern. Beispielsweise kann eine Zugriffsoperation wie das Lesen oder Löschen von in der Ablagespeichervorrichtung 390 gespeicherten Daten oder das Schreiben von Daten enthalten sein. Die mindestens eine Ablagespeichervorrichtung 390 kann eine nichtflüchtige Speichervorrichtung (z.B. eine NAND-Speichervorrichtung) oder eine andere geeignete Form von Speicher enthalten.
  • Die Speichersteuerung 400 kann mit mindestens einer Speichervorrichtung 490 verbunden sein (siehe 7), um eine Operation der Speichervorrichtung 490 zu steuern. So kann beispielsweise eine Zugriffsoperation wie das Lesen oder Löschen von in der Speichervorrichtung 490 gespeicherten Daten oder das Schreiben von Daten enthalten sein.
  • Gemäß einigen Ausführungsformen können mindestens eine Ablagespeichervorrichtung 390, die mit der Ablagespeichersteuerung 300 verbunden ist, und mindestens eine Speichervorrichtung 490, die mit der Speichersteuerung 400 verbunden ist, in der intelligenten Ablagespeichervorrichtung 1000 enthalten sein, eingebettet sein oder lösbar implementiert sein. Eine detaillierte Beschreibung wird im Folgenden bereitgestellt.
  • Die Speichersteuerung 400 kann die Datenkohärenz zwischen der Speichervorrichtung 490 und dem Host-Speicher 12 der Hostvorrichtung 10 mit einer sehr hohen Bandbreite über die Hostvorrichtung 10 und die CXL-Schnittstelle halten. Beispielsweise kann die Hostvorrichtung 10 den in der intelligenten Ablagespeichervorrichtung 1000 enthaltenen Speicher als Arbeitsspeicher einer Hostvorrichtung 10 verwenden, die die Cachekohärenz unterstützt, und kann auf Daten über den Speicher oder einen Befehl zum Laden/Speichern des Speichers zugreifen. Die Datenkohärenz kann zum Beispiel durch Kohärenzverarbeitung gemäß dem MESI-Protokoll ausgeführt werden. Das MESI-Protokoll kann einen Inter-Memory-Zustand zwischen der Speichervorrichtung und der Hostvorrichtung definieren, einschließlich eines ungültigen Zustands, eines gemeinsam genutzten Zustands, eines modifizierten Zustands und eines exklusiven Zustands, und kann die Kohärenzoperation gemäß dem definierten Zustand ausführen.
  • Bei der Durchführung des Datenzugriffs unter der Beschleunigerschaltung 200, der Ablagespeichersteuerung 300 und der Speichersteuerung 400 kann die intelligente Ablagespeichervorrichtung 1000 einen direkten Zugriff über eine interne Verbindung zwischen der Beschleunigerschaltung 200 und der Ablagespeichersteuerung 300 oder zwischen der Ablagespeichersteuerung 300 und der Speichersteuerung 400 ohne den Eingriff der Hostvorrichtung 10 ausführen.
  • 2 ist ein Blockdiagramm, das die intelligente Ablagespeichervorrichtung von 1 gemäß einigen Ausführungsformen zeigt. 3 ist ein Blockdiagramm, das die Beschleunigerschaltung von 2 gemäß einigen Ausführungsformen veranschaulicht, und 4 ist ein Blockdiagramm, das die Ablagespeichersteuerung von 2 gemäß einigen Ausführungsformen veranschaulicht.
  • Gemäß einigen Ausführungsformen (2 bis 4) kann die Beschleunigerschaltung 200 über das CXL.cache-Protokoll und das CXL.mem-Protokoll der intelligenten Schnittstelle 100 mit der Hostvorrichtung 10 verbunden sein. Die Beschleunigerschaltung 200 kann einen Befehl (A.CMD) und Berechnungsdaten (A.cache/mem) an die Hostvorrichtung 10 senden und von dieser empfangen, und je nach dem Subjekt, das die Daten sendet, kann sie Daten durch Auswählen des CXL.cache-Protokolls oder des CXL.mem-Protokolls senden und empfangen.
  • Wie hierin beschrieben, kann die Bezugnahme auf die verschiedenen CXL-Unterprotokolle verwendet werden, um sich auf einen Datenbus zu beziehen, der dem jeweiligen CXL-Unterprotokoll entspricht. Wenn also gesagt wird, dass die Beschleunigerschaltung 200 über das CXL.cache-Protokoll und das CXL.mem-Protokoll mit der Hostvorrichtung 10 verbunden ist, kann dies so verstanden werden, dass die Beschleunigerschaltung 200 mit der Hostvorrichtung 10 über einen Datenbus verbunden ist, der gemäß den CXL.cache- und CXL.mem-Unterprotokollen des CXL-Protokolls operiert.
  • Die Beschleunigerschaltung 200 kann mindestens einen Beschleunigerspeicher 290 enthalten. Der Beschleunigerspeicher 290 der Beschleunigerschaltung 200 kann der Beschleunigerschaltung 200 vorbehalten sein, was so zu verstehen ist, dass der Speicher 290 nur durch die Beschleunigerschaltung 200 zugreifbar ist und von keiner anderen, von der Beschleunigerschaltung 200 unabhängigen Vorrichtung zugreifbar ist. Somit ist der Beschleunigerspeicher kein gemeinsam genutzter Speicher. Der Beschleunigerspeicher 290 kann gemäß verschiedenen Ausführungsformen ein nichtflüchtiger Speicher oder ein flüchtiger Speicher sein. Der Beschleunigerspeicher 290 als Arbeitsspeicher kann gemäß einigen Ausführungsformen ein flüchtiger Speicher wie dynamischer RAM (DRAM), statischer RAM (SRAM) oder synchroner dynamischer RAM (SDRAM) sein oder gemäß einigen Ausführungsformen mindestens einer der nichtflüchtigen Speicher sein.
  • Der Beschleunigerspeicher 290 kann gemäß verschiedenen Ausführungsformen durch Einbettung in die Beschleunigerschaltung 200 implementiert sein, er kann elektrisch verbunden sein, indem er außerhalb der Beschleunigerschaltung 200 angeordnet wird, oder er kann als lösbar/entfernbarer Speicher in die Beschleunigerschaltung 200 implementiert werden.
  • Gemäß einigen Ausführungsformen kann die Ablagespeichersteuerung 300 mit der Hostvorrichtung 10 über das CXL.io-Protokoll der intelligenten Schnittstelle 100 verbunden sein. Die Hostvorrichtung 10 und die Ablagespeichersteuerung 300 können eine Datenzugriffsanforderung (S.CMD) und Daten (S.Data) über das CXL.io-Protokoll der intelligenten Schnittstelle 100 senden und empfangen.
  • Die Ablagespeichersteuerung 300 kann mindestens eine Ablagespeichervorrichtung 390 enthalten. Bei der Ablagespeichervorrichtung 390 kann es sich um eine nichtflüchtige Speichervorrichtung handeln, und der nichtflüchtige Speicher kann beispielsweise einen Flash-Speicher (z. B. NAND-Flash oder NOR-Flash oder Ähnliches), eine Festplatte oder ein Solid-State-Laufwerk (SSD) oder eine andere Ablagespeichertechnologie enthalten.
  • Die Ablagespeichervorrichtung 390 kann unter der Steuerung der Ablagespeichersteuerung 300 Lösch-, Schreib- oder Leseoperationen o. ä. von Daten ausführen. Zu diesem Zweck empfängt die Ablagespeichervorrichtung 390 einen Befehl CMD und eine Adresse ADDR von der Ablagespeichersteuerung 300 über eine Eingangs-/Ausgangsleitung und sendet und empfängt Daten DATA für eine Programmoperation oder eine Leseoperation an die Ablagespeichersteuerung 300 und von dieser. Darüber hinaus kann die Ablagespeichervorrichtung 390 über die Steuerleitung ein Steuersignal CTRL empfangen, und die Ablagespeichervorrichtung 390 kann von der Ablagespeichersteuerung 300 Leistung PWR empfangen.
  • Gemäß einigen Ausführungsformen können die Beschleunigerschaltung 200 und die Ablagespeichersteuerung 300 über einen internen Bus Ipath1 miteinander verbunden sein. Die Beschleunigerschaltung 200 kann über den internen Bus Ipath1 direkt auf die Ablagespeichersteuerung 300 zugreifen. Zum Beispiel kann die Beschleunigerschaltung 200 direkt den Zugriff auf die Daten der Ablagespeichervorrichtung 390 anfordern, ohne dass die Hostvorrichtung 10 eingreift.
  • Wie in 3 dargestellt, kann die Beschleunigerschaltung 200 eine Befehlsdekodierschaltung 210, eine Kohärenz-Engine 220 (die auch als Kohärenz-Engine bezeichnet werden kann), eine DMA-Engine 230 (direkter Speicherzugriff), eine Beschleunigerspeichersteuerung 240 und ein Berechnungsmodul 250 gemäß einigen Ausführungsformen enthalten, und die jeweiligen Komponenten können über einen Beschleunigersystembus 201 elektrisch miteinander verbunden sein. Wie hier verwendet, kann sich der Ausdruck „Engine“ auf eine logische Schaltung beziehen, die Befehle ausführt, um eine bestimmte Funktion auszuführen.
  • Wird ein Befehl, z. B. ein Berechnungsbefehl von der Hostvorrichtung 10 empfangen, dekodiert die Befehlsdekodierschaltung 210 den empfangenen Berechnungsbefehl, um Berechnungsinformation zu extrahieren. Die Berechnungsinformation kann z. B. einen Berechnungstyp, eine Adresse der zu berechnenden Daten oder Ähnliches enthalten.
  • Die Kohärenz-Engine 220 hält die Kohärenz zwischen den im Beschleunigerspeicher 290 der Beschleunigerschaltung 200 gespeicherten Daten und den Daten im Speicher 12 der Hostvorrichtung 10 aufrecht. Beispielsweise wird eine Kohärenzverarbeitung ausgeführt, so dass die Hostvorrichtung 10 die im Beschleunigerspeicher 290 der Beschleunigerschaltung 200 gespeicherten Daten als Host-Attached-Speicher verwendet. Wenn beispielsweise neue Berechnungsdaten im Beschleunigerspeicher 290 gespeichert werden, kann die Kohärenz-Engine 220 eine Kohärenzverarbeitung über das CXL.cache-Protokoll ausführen, um die Berechnungsdaten auch im Speicher 12 der Hostvorrichtung auf die gleiche Weise zu speichern. In ähnlicher Weise kann die Hostvorrichtung 10 eine Kohärenzverarbeitung zur gemeinsamen Nutzung von Daten im Speicher 12 der Hostvorrichtung mit dem Beschleunigerspeicher 290 über das CXL.mem-Protokoll ausführen.
  • Die DMA-Engine 230 kann mit dem internen Bus Ipath1 verbunden werden und kann direkt auf die Ablagespeichersteuerung 300 zugreifen. Wenn gemäß der Anforderung des Berechnungsmoduls 250 oder der Hostvorrichtung 10 Daten in die Ablagespeichervorrichtung 390 geschrieben oder aus dieser gelesen werden müssen, kann die DMA-Engine 230 den Datenzugriff auf die Ablagespeichersteuerung 300 anfordern.
  • Die Beschleunigerspeichersteuerung 240 kann eine Operation des Beschleunigerspeichers 290 steuern. Beispielsweise kann die Steuerung so ausgeführt werden, dass im Beschleunigerspeicher 290 gespeicherte Berechnungsdaten gelesen oder gelöscht werden oder neue Berechnungsdaten geschrieben werden.
  • Das Berechnungsmodul 250 kann eine Beschleunigungsberechnung gemäß dem dekodierten Berechnungsbefehl ausführen. Die Beschleunigungsberechnung kann gemäß einigen Ausführungsformen Signalverarbeitung und Bildsignalverarbeitung sowie Berechnungsverarbeitung basierend auf verschiedenen Arten von Netzwerken enthalten, wie z. B. neuronale Verarbeitung, z. B. Faltungsneuronales Netzwerk (CNN), Region mit Faltungsneuronalem Netzwerk (R-CNN), Region Proposal Network (RPN), rekurrentes neuronales Netzwerk (RNN), stapelbasiertes tiefes neuronales Netzwerk (S-DNN), dynamisches neuronales Netzwerk im Zustandsraum (S-SDNN), Dekonvolutionsnetzwerk, tiefes Glaubensnetzwerk (DBN), eingeschränkte Boltzmann-Maschine (RBM), vollständiges Faltungsnetzwerk, Netzwerk mit langem Kurzzeitspeicher (LSTM), Klassifizierungsnetzwerk oder dergleichen.
  • Wie in 4 dargestellt, kann die Ablagespeichersteuerung 300 gemäß einigen Ausführungsformen einen Planer bzw. Scheduler 310, eine Steuereinheit 320, einen internen Speicher 330 und eine nichtflüchtige Speichersteuerung 340 enthalten, und die jeweiligen Komponenten können über einen internen Systembus 301 elektrisch miteinander verbunden sein.
  • Der Planer 310 kann sowohl mit dem internen Bus Ipath1 als auch mit der intelligenten Schnittstelle 100 verbunden sein und kann den Operationsablauf gemäß einer voreingestellten Richtlinie planen, wenn er eine Zugriffsanforderung von der Hostvorrichtung 10 und eine Zugriffsanforderung von der Beschleunigerschaltung 200 erhält. Die voreingestellte Richtlinie kann gemäß einigen Ausführungsformen darin bestehen, einer Zugriffsanforderung von der Beschleunigerschaltung 200 Vorrang vor einer Zugriffsanforderung von der Hostvorrichtung 10 zu geben. Alternativ dazu kann die dringende Anforderung der Hostvorrichtung 10 vor anderen Anforderungen, die bereits getätigt wurden, vorrangig verarbeitet werden.
  • Die Steuereinheit 320 kann die Gesamtoperation der Ablagespeichersteuerung 300 steuern und beispielsweise Datenzugriffsoperationen wie das Schreiben, Lesen oder Löschen von Daten in der Ablagespeichervorrichtung 390 und die interne Operation der Ablagespeichervorrichtung 390 oder Ähnliches ausführen.
  • Der interne Speicher 330 kann ein Arbeitsspeicher der Ablagespeichersteuerung 300 sein und kann Operationsdaten speichern, die erzeugt werden, während die Ablagespeichersteuerung 300 gesteuert wird.
  • Die nichtflüchtige Speichersteuerung 340 kann mindestens eine nichtflüchtige Speichervorrichtung 390 steuern, die mit der Ablagespeichersteuerung 300 verbunden ist.
  • 5 und 6 sind Flussdiagramme, die ein Operationsverfahren der intelligenten Ablagespeichervorrichtung von 2 veranschaulichen.
  • Bezugnehmend auf 5 sendet die Hostvorrichtung 10 zunächst einen Befehl an die intelligente Ablagespeichervorrichtung 1000 (Schritt S10). Die intelligente Schnittstelle 100 der intelligenten Ablagespeichervorrichtung 1000 prüft, für welche Komponente der Befehl bestimmt ist, und wählt und sendet ein Protokoll der entsprechenden Komponente (Schritt S11). Wenn zum Beispiel die Hostvorrichtung 10 einen Berechnungsbefehl sendet, verbindet sich die intelligente Schnittstelle 100 über ein Protokoll (CXL.cache-Protokoll oder CXL.mem-Protokoll) mit der Beschleunigerschaltung 200.
  • Die Beschleunigerschaltung 200 extrahiert Berechnungsinformation durch die Dekodierung eines empfangenen Berechnungsbefehls CMD1 (Schritt S12). Die Berechnungsinformation kann z. B. einen Berechnungstyp, eine Adresse der für die Berechnung erforderlichen Daten oder Ähnliches enthalten. Gemäß einigen Ausführungsformen kann der Berechnungsbefehl mindestens eine Operation enthalten, die durch die Beschleunigerschaltung 200 auszuführen ist. In der nachstehend beschriebenen Ausführungsform wird davon ausgegangen, dass der Berechnungsbefehl CMD1 einen Fall anzeigt, in dem die Beschleunigungsberechnung basierend auf Daten der Ablagespeichervorrichtung 390 ausgeführt wird.
  • Die Beschleunigerschaltung 200 sendet eine Datenzugriffsanforderung an die Ablagespeichersteuerung 300 (Schritt S13). In diesem Fall kann die Zugriffsanforderung direkt an die Ablagespeichersteuerung 300 über den internen Bus Ipath1 ohne Eingriff der Hostvorrichtung 10 angefordert werden.
  • Beim Empfang der Zugriffsanforderung von der Beschleunigerschaltung 200 (Schritt S14) führt die Ablagespeichersteuerung 300 eine Operation gemäß der Zugriffsanforderung auf der Ablagespeichervorrichtung 390 in einer gemäß einer voreingestellten Richtlinie bestimmten Operationsreihenfolge durch (Schritt S15). Beispielsweise plant die Ablagespeichersteuerung 300 eine Mehrzahl von Zugriffsanforderungen gemäß einer voreingestellten Richtlinie über einen Planer, um eine Operation-Reihenfolge zu bestimmen. Die Steuereinheit 320 und die nichtflüchtige Speichersteuerung 340 führen eine Zugriffsoperation auf die nichtflüchtige Speichervorrichtung 390 gemäß einer durch den Planer 310 bestimmten Reihenfolge aus.
  • Die Ablagespeichersteuerung 300 sendet das Leistungsergebnis des Zugriffs an die Beschleunigerschaltung 200 (Schritt S16). Im Falle einer Anforderung zum Lesen von Daten werden beispielsweise die gelesenen Daten (im Folgenden „erste Daten“) zurückgegeben, und im Falle einer Anforderung zum Schreiben oder Löschen von Daten wird der Leistungsabschluss zurückgegeben.
  • Beim Empfangen eines Leistungsergebnisses, z. B. der gelesenen ersten Daten (Schritt S17), führt die Beschleunigerschaltung 200 eine Kohärenzverarbeitung mit der Hostvorrichtung 10 aus, um die Daten im Beschleunigerspeicher 290 zu speichern (Schritt S18). Zu diesem Zeitpunkt kann die Kohärenzverarbeitung über das CXL.cache-Protokoll ausgeführt werden. Die Kohärenzverarbeitung kann durch die kohärenzbezogene Komponente auf der Seite der Hostvorrichtung 10 und der Kohärenz-Engine 220 durchgeführt werden, und nachdem die Kohärenz-Engine 220 den Abschluss der Kohärenzverarbeitung von der Hostvorrichtung 10 bestätigt hat, können die ersten Daten durch die Beschleunigerspeichersteuerung 240 im Beschleunigerspeicher 290 gespeichert werden (Schritt S19).
  • Die Beschleunigerschaltung 200 liest die im Beschleunigerspeicher 290 gespeicherten ersten Daten als eine nachfolgende Operation und führt eine Berechnung aus (Schritt S20). In diesem Fall kann die Berechnung auf der Art der Berechnung basieren, die in der Berechnungsinformation enthalten ist. Die Beschleunigerschaltung 200 führt eine Kohärenzverarbeitung mit der Hostvorrichtung 10 durch, um die zweiten Daten, die durch das Ausführen der Berechnung erzeugt wurden, im Beschleunigerspeicher 290 zu speichern (Schritt S21). Zu diesem Zeitpunkt kann die Kohärenzverarbeitung über das CXL.cache-Protokoll ausgeführt werden. Wenn die Kohärenz-Engine 220 den Abschluss der Kohärenzverarbeitung von der Hostvorrichtung 10 bestätigt, speichert die Beschleunigerspeichersteuerung 240 die zweiten Daten in dem Beschleunigerspeicher 290 (Schritt S22).
  • Wenn alle von einer oder mehreren Operationen gemäß dem Berechnungsbefehl CMD1 abgeschlossen sind, sendet die Beschleunigerschaltung 200 über die intelligente Schnittstelle 100 eine Abschlussnachricht an die Hostvorrichtung 10 (Schritt S23). In diesem Fall kann die Abschlussnachricht die zweiten Daten oder einen Wert enthalten, der basierend auf den zweiten Daten festgelegt wurde. Die Abschlussnachricht wird daraufhin durch die Hostvorrichtung 10 empfangen (Schritt S25).
  • Die oben beschriebene Ausführungsform geht von einem Fall aus, in dem eine Beschleunigungsberechnung unter Verwendung von in der Ablagespeichervorrichtung 390 gespeicherten Daten ausgeführt wird, aber die Ausführungsform der vorliegenden Offenbarung ist darauf nicht beschränkt, und die Beschleunigungsberechnung kann basierend auf dem Beschleunigerspeicher 290 oder den initialen Daten des Speichers 12 der Hostvorrichtung ausgeführt werden. In diesem Fall kann die gemeinsame Nutzung des Ergebnisses der Beschleunigungsberechnung mit der Hostvorrichtung 10 wie in den Schritten S19 bis S25 ausgeführt werden, aber die Schritte S13 bis S17 werden möglicherweise nicht ausgeführt, abhängig von der Position der zu lesenden initialen Daten.
  • Unterdessen prüft die intelligente Ablagespeichervorrichtung 1000 gemäß 6, wenn die Hostvorrichtung 10 einen Befehl CMD2 sendet (Schritt S30), welche Komponente an der intelligenten Schnittstelle 100 zum Ziel hat, und wählt und sendet das Protokoll der entsprechenden Komponente (Schritt S31). Wenn zum Beispiel die Hostvorrichtung 10 einen Datenzugriff anfordert, verbindet sich die intelligente Schnittstelle 100 mit der Ablagespeichersteuerung 300 über das CXL.io-Protokoll.
  • Wenn die Ablagespeichersteuerung 300 den Befehl CMD2 von der Hostvorrichtung 10 empfängt, bestimmt der Planer 310 einen Operationsablauf gemäß einer voreingestellten Richtlinie. Die Steuereinheit 320 und die nichtflüchtige Speichersteuerung 340 führen eine Datenzugriffsoperation gemäß einer vom Planer 310 bestimmten Reihenfolge aus (Schritt S32).
  • Die Ablagespeichersteuerung 300 sendet das Leistungsergebnis des Schrittes S32 an die Hostvorrichtung 10 (Schritt S33). Wenn es sich bei dem Befehl CMD2 beispielsweise um eine Anforderung zum Lesen von Daten handelt, werden die gelesenen Daten an die Hostvorrichtung 10 gesendet, und wenn es sich um eine Anforderung zum Schreiben oder Löschen von Daten handelt, wird der Leistungsabschluss an die Hostvorrichtung 10 gesendet. Die Hostvorrichtung 10 empfängt das Leistungsergebnis über die Ablagespeichersteuerung 300 und das CXL.io-Protokoll (Schritt S34).
  • 7 ist ein Blockdiagramm, das die intelligente Ablagespeichervorrichtung von 1 gemäß einigen Ausführungsformen zeigt. 8 ist ein Blockdiagramm, das die intelligente Schnittstelle von 1 gemäß einigen Ausführungsformen zeigt.
  • Unter Bezugnahme auf 7 und 8 kann die intelligente Ablagespeichervorrichtung 1000 ein von der Hostvorrichtung 10 empfangenes Signal in ein Signal des CXL.mem-Protokolls, des CXL.io-Protokolls oder des CXL.cache-Protokolls in der intelligenten Schnittstelle 100 umwandeln und das Signal an jede der Komponenten 200, 300 und 400 senden.
  • Die intelligente Schnittstelle 100 kann eine Mehrzahl von Schichten enthalten, um mit der Hostvorrichtung 10 zu kommunizieren. Jede Schicht kann das gesendete und empfangene elektrische Signal basierend auf einer voreingestellten Definition interpretieren und das Signal in ein Signal zum Operieren jeder der Komponenten (z. B. 200, 300 und 400) in der intelligenten Ablagespeichervorrichtung 1000 umwandeln.
  • Die intelligente Schnittstelle 100 kann eine physikalische Schicht 110, einen Arbiter 120, eine Verbindungsschicht 130 und eine Transaktionsschicht 140 enthalten, und jede Konfiguration soll basierend auf dem CXL-Schnittstellenstandard funktionieren. Darüber hinaus kann die intelligente Schnittstelle 100 ferner verschiedene andere Schichten für die Kommunikation enthalten.
  • Die physikalische Schicht 110 interpretiert ein elektrisches Signal, das an die Hostvorrichtung 10 gesendet (TX) oder von der Hostvorrichtung 10 empfangen wird (RX). Der Arbiter 120 kann multiplexen, um zu entscheiden, welches Unterprotokoll verwendet wird, um das von der physikalischen Schicht 110 ausgegebene Signal zu senden. Beispielsweise wird es für die Beschleunigerschaltung 200 an eine CXL.cache- oder CXL.mem-Verbindungsschicht 131 ausgegeben, und für die Speichervorrichtung 490, die Ablagespeichervorrichtung 390 oder eine heterogene Vorrichtung unter Verwendung einer PCI-Schnittstelle wird es an eine CXL.io-Verbindungsschicht 132 oder eine PCIe-Verbindungsschicht 133 ausgegeben.
  • Die Transaktionsschicht 140 empfängt ein Signal, das über die CXL.cache- oder CXL.mem-Verbindungsschicht 131, die CXL.io-Verbindungsschicht 132 oder die PCIe-Verbindungsschicht 133 durch die Transaktionsschichten 141, 142 und 143, die jedem Protokoll entsprechen, gesendet wird, und erzeugt eine Ausgabe.
  • Die intelligente Schnittstelle 100 umfasst eine interne Verbindung Ipath2, die das CXL.mem-Protokoll und das CXL.io-Protokoll direkt miteinander verbindet, und die interne Verbindung Ipath2 verbindet den Datenzugriff zwischen der Speichersteuerung 400 und der Ablagespeichersteuerung 300 direkt miteinander. Gemäß einigen Ausführungsformen können die CXL.cache- oder CXL.mem-Verbindungsschicht 131 und die CXL.io-Verbindungsschicht 132 über einen internen Verbindungsbus IPath2 direkt miteinander verbunden sein.
  • Gemäß einigen Ausführungsformen kann die Ablagespeichersteuerung 300 mit der Hostvorrichtung 10 über das CXL.io-Protokoll der intelligenten Schnittstelle 100 verbunden sein.
  • Beispielsweise kann die Speichersteuerung 400 über das CXL.mem-Protokoll oder das CXL.io-Protokoll verbunden sein, und die Ablagespeichersteuerung 300 kann über das CXL.io-Protokoll verbunden sein.
  • Gemäß einigen Ausführungsformen kann die intelligente Ablagespeichervorrichtung 1000 ferner einen Router 500, einen Speicherprotokoll-Handler 700 und einen Ablagespeicherprotokoll-Handler 600 für einen effizienteren Datenzugriff unter den Komponenten 200, 300 und 400 enthalten.
  • Der Router 500 kann mit der CXL.io Transaktionsschicht 142 verbunden sein und kann ein von der Transaktionsschicht empfangenes Signal an die Speichersteuerung 400 oder die Ablagespeichersteuerung 300 weiterleiten. Der Router 500 kann gemäß einigen Ausführungsformen innerhalb der intelligenten Schnittstelle 100 angeordnet sein und gemäß einigen Ausführungsformen in Bezug auf jede der intelligenten Schnittstelle 100, der Ablagespeichersteuerung 300 und der Speichersteuerung 400 getrennt angeordnet und implementiert sein.
  • Der Speicherprotokoll-Handler 700 kann zwischen die CXL.mem-Transaktionsschicht 141 und den Router 500 und die Speichersteuerung 400 geschaltet werden, kann eine Datenzugriffsanforderung für die Speichervorrichtung 490 empfangen und an die Speichersteuerung 400 übergeben und kann ein Ergebnis der Anforderung von der Speichersteuerung 400 an die Transaktionsschicht 141 oder den Router 500 zurücksenden. Der Speicherprotokoll-Handler 700 kann gemäß einigen Ausführungsformen innerhalb der intelligenten Schnittstelle 100 angeordnet sein, kann gemäß einigen Ausführungsformen separat angeordnet und in Bezug auf die Speichersteuerung 400 implementiert sein und kann gemäß einigen Ausführungsformen innerhalb der Speichersteuerung 400 angeordnet sein.
  • Der Ablagespeicherprotokoll-Handler 600 kann zwischen dem Router 500 und der Ablagespeichersteuerung 300 verbunden sein, kann eine Zugriffsanforderung für die Ablagespeichervorrichtung 390 empfangen und an die Ablagespeichersteuerung 300 weiterleiten und kann das Ergebnis der Anforderung an die Transaktionsschicht 142 zurücksenden. Der Ablagespeicherprotokoll-Handler 600 kann gemäß einigen Ausführungsformen innerhalb der intelligenten Schnittstelle 100 angeordnet sein, kann gemäß einigen Ausführungsformen separat angeordnet und in Bezug auf die Ablagespeichersteuerung 300 implementiert sein und kann gemäß einigen Ausführungsformen innerhalb der Ablagespeichersteuerung 300 angeordnet sein.
  • Wenn ein Datenzugriffsbefehl von dem Router 500 empfangen wird, parst der Ablagespeicherprotokoll-Handler 600 den Zugriffsbefehl, um die Adresse der angeforderten Daten zu prüfen. In diesem Fall kann der Zugriffsbefehl einen Operationstyp, eine Adresse von Daten oder Daten enthalten.
  • Wenn die Adresse der durch den Zugriffsbefehl geparsten Daten die Adresse der Ablagespeichervorrichtung 390 ist, übergibt der Ablagespeicherprotokoll-Handler 600 den Zugriffsbefehl an die Ablagespeichersteuerung 300.
  • Wenn die Adresse der durch den Zugriffsbefehl analysierten Daten die Speichervorrichtung 490 ist, übergibt der Ablagespeicherprotokoll-Handler 600 den Zugriffsbefehl an den Speicherprotokoll-Handler 700 über die interne Verbindung Ipath2. Die Speichersteuerung 400 kann basierend auf einem über den Speicherprotokoll-Handler 700 übergebenen Zugriffsbefehl eine Datenzugriffsoperation für die Speichervorrichtung 490 ausführen und den Ablagespeicherprotokoll-Handler 600 über das Leistungsergebnis informieren. Wenn die dem geparsten Zugriffsbefehl entsprechende Operation abgeschlossen ist, kann der Ablagespeicherprotokoll-Handler 600 die Hostvorrichtung 10 über die intelligente Schnittstelle 100 über den Leistungsabschluss benachrichtigen.
  • Die Beschreibungen der Ablagespeichersteuerung 300 und der nichtflüchtigen Speichervorrichtung 390 überlappen diejenigen von 2, und daher kann in dem Maße, in dem Beschreibungen verschiedener Elemente weggelassen werden, davon ausgegangen werden, dass diese Elemente mindestens den entsprechenden Elementen entsprechen, die an anderer Stelle in der vorliegenden Offenbarung beschrieben sind.
  • Die Speichersteuerung 400 kann eine Operation der Speichervorrichtung 490 steuern. Beispielsweise kann die Steuerung so ausgeführt werden, dass in der Speichervorrichtung 490 gespeicherte Berechnungsdaten gelesen oder gelöscht oder neue Berechnungsdaten geschrieben werden können.
  • Die Speichervorrichtung 490 kann gemäß einigen Ausführungsformen ein flüchtiger Speicher wie dynamischer RAM (DRAM), statischer RAM (SRAM) oder synchroner dynamischer RAM (SDRAM) sein, oder sie kann gemäß einigen Ausführungsformen mindestens einer der nichtflüchtigen Speicher sein. Ein nichtflüchtiger Speicher kann beispielsweise als mindestens einer der folgenden implementiert sein: einmalig programmierbarer ROM (OTPROM), programmierbarer ROM (PROM), löschbarer und programmierbarer ROM (EPROM), elektrisch löschbarer und programmierbarer ROM (EEPROM), Masken-ROM, Flash-ROM, Flash-Speicher (z. B. NAND-Flash oder NOR-Flash oder Ähnliches), eine Festplatte oder ein Solid-State-Laufwerk (SSD). Alternativ kann er in einer Form wie einer Speicherkarte (z. B. Compact Flash (CF), Secure Digital (SD), Micro Secure Digital (Micro-SD)), Mini Secure Digital (Mini-SD), Extreme Digital (xD), Multi-Media-Card (MMC) o. Ä.) oder einem externen Speicher (z. B. USB-Speicher), der mit einem USB-Anschluss verbunden werden kann, implementiert werden.
  • Die Speichervorrichtung 490 kann z. B. ein Arbeitsspeicher der intelligenten Ablagespeichervorrichtung 1000 sein. Die Speichervorrichtung 490 kann gemäß dem Zweck der Datenspeicherung in Form eines eingebetteten Speichers oder in Form eines Wechselspeichers implementiert sein. Beispielsweise können Daten für die Steuerung der intelligenten Ablagespeichervorrichtung 1000 in einem in die intelligente Ablagespeichervorrichtung 1000 eingebetteten Speicher gespeichert werden, und Daten für eine erweiterte Funktion der intelligenten Ablagespeichervorrichtung 1000 können in einem in die intelligente Ablagespeichervorrichtung 1000 entfernbaren Speicher gespeichert werden.
  • 9 bis 11 sind Flussdiagramme, die ein Operationsverfahren der intelligenten Ablagespeichervorrichtung von 7 veranschaulichen.
  • Bezugnehmend auf 9, wenn die Hostvorrichtung 10 einen Befehl sendet (Schritt S 100), prüft die intelligente Schnittstelle 100 ein Protokoll basierend auf einem Ziel, an das der Befehl gesendet werden soll (Schritt S101).
  • Wenn der Befehl für die Ablagespeichervorrichtung 390 bestimmt ist, wird das CXL.io-Protokoll ausgewählt (Ja in Schritt S102), und der Ablagespeicherprotokoll-Handler parst den Befehl (Schritt S110). Der Ablagespeicherprotokoll-Handler 600 prüft die Adressinformation der anzufordernden Daten von dem geparsten Befehl (Schritt S111), und wenn die Adressinformation (Speicher-ID) zur Ablagespeichervorrichtung 390 gehört, wird der Datenzugriffsbefehl CMD1 an die Ablagespeichersteuerung 300 gesendet.
  • Die Ablagespeichersteuerung 300 liest die erste Information basierend auf der Adressinformation (Schritt S113) auf der Grundlage des Datenzugriffsbefehls CMD1 (Schritt S 112) und sendet die Daten an den Ablagespeicherprotokoll-Handler 600.
  • Andererseits benachrichtigt der Ablagespeicherprotokoll-Handler 600, wenn basierend auf dem geparsten Befehl keine zusätzliche Operation ausgeführt werden muss (Schritt S114), die Hostvorrichtung 10 über den Leistungsabschluss, indem er eine Abschlussnachricht sendet (Schritt S 119), die von der Hostvorrichtung 10 empfangen wird (Schritt S120).
  • Wenn es andererseits notwendig ist, die ersten Daten basierend auf dem geparsten Befehl in die Speichervorrichtung 490 zu schreiben (Schritt S114 in 9), übergibt der Ablagespeicherprotokoll-Handler 600 den Datenzugriffsbefehl CMD2 und die ersten Daten über die interne Verbindung IPath2 an den Speicherprotokoll-Handler 700. Der Speicherprotokoll-Handler 700 empfängt den Datenzugriffsbefehl CMD2 und die ersten Daten (Schritt S115) und fordert den Datenzugriff auf die Speichervorrichtung 490 von der Speichersteuerung 400 an (Schritt S116).
  • Die Speichersteuerung 400 schreibt die zweiten Daten in die Speichervorrichtung 490 (Schritt S117) und sendet die Nachricht über den Abschluss des Datenzugriffs an den Speicherprotokoll-Handler 700. Der Speicherprotokoll-Handler 700 benachrichtigt den Ablagespeicherprotokoll-Handler 600 über den Leistungsabschluss (Schritt S118), und der Ablagespeicherprotokoll-Handler 600 benachrichtigt schließlich die Hostvorrichtung 10 über den Leistungsabschluss (Schritt S120).
  • Andererseits empfängt die Ablagespeichersteuerung 300, wie in 10 dargestellt, den Datenzugriffsbefehl CMD2 von dem Ablagespeicherprotokoll-Handler 600 (S130) und erzeugt eine Anforderung von Daten (Schritt S131). Wenn es erforderlich ist, die dritten Daten von der Speichervorrichtung 490 basierend auf dem geparsten Befehl zu lesen (Schritt S114 in 10), übergibt der Ablagespeicherprotokoll-Handler 600 den Datenzugriffsbefehl CMD3 an den Speicherprotokoll-Handler 700 über die interne Verbindung IPath2. Der Speicherprotokoll-Handler 700 empfängt den Datenzugriffsbefehl CMD3 (Schritt S133) und fordert den Datenzugriff auf die Speichervorrichtung 490 von der Speichersteuerung 400 an (Schritt S134).
  • Die Speichersteuerung 400 liest die dritten Daten von der Speichervorrichtung 490 (Schritt S135). Gemäß einigen Ausführungsformen schreibt die Ablagespeichersteuerung 300 die über die interne Verbindung Ipath2 empfangenen dritten Daten in die Ablagespeichervorrichtung 390 (Schritt S136) und sendet eine Abschlussnachricht an den Speicherprotokoll-Handler 700 (Schritt S137). Der Ablagespeicherprotokoll-Handler 600 benachrichtigt schließlich die Hostvorrichtung 10 über den Leistungsabschluss (Schritt S138).
  • In 11 wird, wenn das von der intelligenten Schnittstelle 100 geprüfte Protokoll das CXL.mem-Protokoll ist (Schritt S102), der von der Hostvorrichtung 10 gesendete Befehl CMD an den Speicherprotokoll-Handler 700 gesendet (Schritt S140). Der Speicherprotokoll-Handler 700 übergibt eine Zugriffsanforderung gemäß einem Befehl CMD4 an die Speichersteuerung 400 (Schritt S141), und die Speichersteuerung 400 führt eine der Anforderung entsprechende Operation für die Speichervorrichtung 490 durch (Schritt S142) und teilt dann dem Speicherprotokoll-Handler 700 das Leistungsergebnis mit. Der Speicherprotokoll-Handler 700 übergibt das Leistungsergebnis an die Hostvorrichtung 10 (Schritt S143), und die Hostvorrichtung 10 empfängt das Leistungsergebnis (Schritt S144).
  • Die oben beschriebene intelligente Ablagespeichervorrichtung 1000 kann es der Hostvorrichtung 10 ermöglichen, mindestens zwei Komponenten unter den Komponenten der intelligenten Ablagespeichervorrichtung 1000, z. B. eine Beschleunigerschaltung, eine Ablagespeichervorrichtung und eine Speichervorrichtung, als eine separate Vorrichtung oder eine einzige Vorrichtung über eine einzige intelligente Schnittstelle zu betrachten. Dementsprechend kann der Latenz-Overhead, bei dem die Hostvorrichtung 10 eingreifen muss, um Daten zu übergeben, reduziert werden, und da die physische Verbindung zwischen den Komponenten bereitgestellt wird, kann der Software-Overhead zum Halten der Datenkohärenz reduziert werden.

Claims (20)

  1. Intelligente Ablagespeichervorrichtung, die aufweist: eine intelligente Schnittstelle, die mit einer Hostvorrichtung verbunden ist; eine Beschleunigerschaltung, die mit der intelligenten Schnittstelle über einen Datenbus verbunden ist, der einem Compute Express Link (CXL).cache-Protokoll und einem CXL.mem-Protokoll entspricht, und konfiguriert ist, als Antwort auf einen Berechnungsbefehl der Hostvorrichtung eine Beschleunigungsberechnung auszuführen; und eine Ablagespeichersteuerung, die mit der intelligenten Schnittstelle über einen Datenbus verbunden ist, der dem CXL.io-Protokoll entspricht, und konfiguriert ist, eine Datenzugriffsoperation für eine Ablagespeichervorrichtung als Antwort auf einen Datenzugriffsbefehl der Hostvorrichtung zu steuern, wobei die Beschleunigerschaltung über einen internen Bus, der direkt mit der Ablagespeichersteuerung verbunden ist, für die Ablagespeichervorrichtung direkt zugreifbar ist.
  2. Intelligente Ablagespeichervorrichtung nach Anspruch 1, wobei die Beschleunigerschaltung enthält: eine Befehls(CMD)-Dekodierschaltung, die konfiguriert ist, Berechnungsinformation durch Dekodieren des Berechnungsbefehls zu extrahieren; ein Berechnungsmodul, das konfiguriert ist, die Beschleunigungsberechnung als Antwort auf den dekodierten Berechnungsbefehl auszuführen; eine Beschleunigerspeichersteuerungsschaltung, die konfiguriert ist, Berechnungsdaten, die durch eine Operation des Berechnungsmoduls erzeugt werden, in eine Beschleunigerspeichervorrichtung zu schreiben oder von dieser zu lesen; eine Speicherdirektzugriff(DMA)-Engine, die mit der Ablagespeichersteuerung verbunden ist, um direkt auf die Ablagespeichervorrichtung zuzugreifen; und eine Kohärenz-Engine, die konfiguriert ist, Kohärenz zwischen den in der Beschleunigerspeichervorrichtung gespeicherten Berechnungsdaten und den in der Hostvorrichtung gespeicherten Daten zu halten.
  3. Intelligente Ablagespeichervorrichtung nach Anspruch 1, wobei die Ablagespeichervorrichtung enthält: eine Planerschaltung, die konfiguriert ist, eine erste Zugriffsanforderung von der Hostvorrichtung und eine zweite Zugriffsanforderung von der Beschleunigerschaltung zu empfangen und einen Operationsablauf gemäß einer voreingestellten Richtlinie zu planen; und eine Steuereinheitsschaltung, die konfiguriert ist, zu steuern, um Daten in die Ablagespeichervorrichtung zu schreiben oder von dieser zu lesen.
  4. Intelligente Ablagespeichervorrichtung nach Anspruch 2, wobei die DMA-Engine Daten durch Anfordern von Datenzugriff von der Ablagespeichersteuerung basierend auf der Berechnungsinformation empfängt, die Kohärenz-Engine Kohärenzverarbeitung für die von der Hostvorrichtung empfangenen Daten anfordert, und die Beschleunigerspeichersteuerungsschaltung die empfangenen Daten in der Beschleunigerspeichervorrichtung speichert.
  5. Intelligente Ablagespeichervorrichtung nach Anspruch 2, wobei die Beschleunigerspeichersteuerungsschaltung erste Berechnungsdaten liest, die in der Beschleunigerspeichervorrichtung gespeichert sind, das Berechnungsmodul zweite Berechnungsdaten durch Ausführen der Beschleunigungsberechnung an den ersten Berechnungsdaten erzeugt, und die Kohärenz-Engine Kohärenzverarbeitung für die Hostvorrichtung für die zweiten Berechnungsdaten anfordert.
  6. Intelligente Ablagespeichervorrichtung nach Anspruch 5, wobei, wenn die Kohärenzverarbeitung abgeschlossen ist, die Beschleunigerspeichersteuerungsschaltung die zweiten Berechnungsdaten in die Beschleunigerspeichervorrichtung schreibt, und das Berechnungsmodul die Hostvorrichtung über den Abschluss des Berechnungsbefehls benachrichtigt.
  7. Intelligente Ablagespeichervorrichtung, aufweisend: eine intelligente Schnittstelle, die mit einer Hostvorrichtung verbunden ist; eine Speichersteuerungsschaltung, die mit der intelligenten Schnittstelle über einen Datenbus verbunden ist, der einem Compute Express Link (CXL).cache-Protokoll und einem CXL.mem-Protokoll entspricht, und die konfiguriert ist, eine erste Zugriffsoperation für eine Speichervorrichtung zu steuern; und eine Ablagespeichersteuerung, die mit der intelligenten Schnittstelle über einen Datenbus verbunden ist, der dem CXL.io-Protokoll entspricht, und die konfiguriert ist, eine zweite Zugriffsoperation für eine Ablagespeichervorrichtung zu steuern, wobei die intelligente Schnittstelle eine interne Verbindung enthält, die den Datenbus, der dem CXL.mem-Protokoll und dem CXL.io-Protokoll entspricht, direkt verbindet, um direkt auf die Speichersteuerungsschaltung und die Ablagespeichersteuerung zuzugreifen.
  8. Intelligente Ablagespeichervorrichtung nach Anspruch 7, die ferner aufweist: einen Router, der mit dem Datenbus verbunden ist, der dem CXL.io-Protokoll entspricht; einen Speicherprotokoll-Handler, der mit dem Datenbus, der dem CXL.mem-Protokoll entspricht, und dem Router verbunden ist, um eine Anforderung für eine erste Zugriffsoperation an die Speichersteuerungsschaltung zu senden und zurückzugeben; und einen Ablagespeicherprotokoll-Handler, der mit dem Router verbunden ist, um eine Anforderung für die zweite Zugriffsoperation zu senden und zurückzugeben.
  9. Intelligente Ablagespeichervorrichtung nach Anspruch 8, wobei der Ablagespeicherprotokoll-Handler einen von der Hostvorrichtung empfangenen Zugriffsbefehl parst und eine Adresse der angeforderten Daten prüft.
  10. Intelligente Ablagespeichervorrichtung nach Anspruch 9, wobei, wenn die Adresse der angeforderten Daten eine Adresse der Speichervorrichtung ist, der Ablagespeicherprotokoll-Handler den Zugriffsbefehl über die Interne Verbindung an den Speicherprotokoll-Handler übergibt.
  11. Intelligente Ablagespeichervorrichtung nach Anspruch 10, wobei, wenn auf die angeforderten Daten durch Senden des übergebenen Zugriffsbefehls an die Speichersteuerungsschaltung zugegriffen wird, der Speicherprotokoll-Handler den Ablagespeicherprotokoll-Handler über den Leistungsabschluss des Zugriffsbefehls benachrichtigt.
  12. Intelligente Ablagespeichervorrichtung nach Anspruch 8, wobei die intelligente Schnittstelle den Router, den Speicherprotokoll-Handler und den Ablagespeicherprotokoll-Handler enthält.
  13. Intelligente Ablagespeichervorrichtung, aufweisend: eine intelligente Schnittstelle, die mit einer Hostvorrichtung verbunden ist; eine Beschleunigerschaltung, die mit der intelligenten Schnittstelle über einen Datenbus verbunden ist, der einem Compute Express Link (CXL).cache-Protokoll und einem CXL.mem-Protokoll entspricht, und die konfiguriert ist, eine Beschleunigungsberechnung als Antwort auf einen Berechnungsbefehl der Hostvorrichtung auszuführen; eine Ablagespeichersteuerung, die mit der intelligenten Schnittstelle über einen Datenbus verbunden ist, der einem CXL.io-Protokoll entspricht, und die konfiguriert ist, eine Datenzugriffsoperation für eine Ablagespeichervorrichtung als Antwort auf einen Datenzugriffsbefehl der Hostvorrichtung zu steuern; und eine Beschleunigerspeichersteuerungsschaltung, die mit der intelligenten Schnittstelle über den Datenbus verbunden ist, der dem CXL.cache-Protokoll und dem CXL.mem-Protokoll entspricht, und die konfiguriert ist, eine zweite Zugriffsoperation für eine Beschleunigerspeichervorrichtung zu steuern, wobei die Ablagespeichersteuerung für die Beschleunigerschaltung und die Beschleunigerspeichersteuerungsschaltung direkt zugreifbar ist.
  14. Intelligente Ablagespeichervorrichtung nach Anspruch 13, wobei die Beschleunigerschaltung eine Speicherdirektzugriff (DMA)-Engine enthält, die mit der Ablagespeichersteuerung über einen internen Verbindungsbus verbunden ist, um direkt auf die Ablagespeichervorrichtung zuzugreifen, und die Ablagespeichersteuerung einen Planer enthält, der konfiguriert ist, einen Operationsablauf gemäß einer voreingestellten Richtlinie für eine Anforderung der DMA-Engine, die über den internen Verbindungsbus empfangen wird, und eine Anforderung der Hostvorrichtung, die über den Datenbus entsprechend dem CXL.io-Protokoll empfangen wird, zu planen.
  15. Intelligente Ablagespeichervorrichtung nach Anspruch 14, wobei die Beschleunigerschaltung ferner enthält: eine Befehls- (CMD) dekodierschaltung, die konfiguriert ist, Berechnungsinformation durch Dekodieren des Berechnungsbefehls zu extrahieren; ein Berechnungsmodul, das konfiguriert ist, die Beschleunigungsberechnung als Antwort auf den dekodierten Berechnungsbefehl auszuführen; eine Beschleunigerspeichersteuerungsschaltung, die konfiguriert ist, Berechnungsdaten, die durch eine Operation des Berechnungsmoduls erzeugt werden, in eine Beschleunigerspeichervorrichtung zu schreiben oder von dieser zu lesen; und eine Kohärenz-Engine, die konfiguriert ist, Kohärenz zwischen den in der Beschleunigerspeichervorrichtung gespeicherten Berechnungsdaten und den in der Hostvorrichtung gespeicherten Daten zu halten.
  16. Intelligente Ablagespeichervorrichtung nach Anspruch 15, wobei die Beschleunigerschaltung einen dritten Zugriff von der Ablagespeichersteuerung basierend auf der Berechnungsinformation anfordert, eine Kohärenzverarbeitung für erste Daten anfordert, die über den dritten Zugriff empfangen werden, und die ersten Daten in der Beschleunigerspeichervorrichtung speichert, wenn die Kohärenzverarbeitung möglich ist.
  17. Intelligente Ablagespeichervorrichtung nach Anspruch 13, wobei die intelligente Schnittstelle eine interne Verbindung enthält, die den Datenbus, der dem CXL.mem-Protokoll und dem CXL.io-Protokoll entspricht, direkt verbindet.
  18. Intelligente Ablagespeichervorrichtung nach Anspruch 17, ferner aufweisend einen Protokoll-Handler, der konfiguriert ist, einen von der Hostvorrichtung empfangenen Befehl zu parsen, den Befehl an die Ablagespeichersteuerung zu senden, wenn eine in dem Befehl enthaltene Adresse zu der Ablagespeichervorrichtung gehört, und den Befehl über die interne Verbindung an die Speichersteuerungsschaltung zu senden, wenn die Adresse zu der Speichervorrichtung gehört.
  19. Intelligente Ablagespeichervorrichtung nach Anspruch 18, wobei der Protokoll-Handler enthält: einen Ablagespeicherprotokoll-Handler, der zwischen der Ablagespeichersteuerung und der intelligenten Schnittstelle verbunden ist; und einen Speicherprotokoll-Handler, der zwischen der Speichersteuerungsschaltung und der intelligenten Schnittstelle verbunden ist, wobei der Speicherprotokoll-Handler mit der intelligenten Schnittstelle über den Datenbus verbunden ist, der dem CXL.io-Protokoll entspricht, und den Datenbus, der dem CXL.mem-Protokoll entspricht.
  20. Intelligente Ablagespeichervorrichtung nach Anspruch 19, wobei die Speichersteuerungsschaltung die zweite Zugriffsoperation als Antwort auf den gesendeten Befehl ausführt und den Ablagespeicherprotokoll-Handler über ein Leistungsergebnis informiert.
DE102021121105.0A 2020-09-28 2021-08-13 Intelligente ablagespeichervorrichtung Pending DE102021121105A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2020-0126199 2020-09-28
KR20200126199 2020-09-28
KR10-2021-0007897 2021-01-20
KR1020210007897A KR20220042991A (ko) 2020-09-28 2021-01-20 스마트 스토리지 장치

Publications (1)

Publication Number Publication Date
DE102021121105A1 true DE102021121105A1 (de) 2022-03-31

Family

ID=80624245

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021121105.0A Pending DE102021121105A1 (de) 2020-09-28 2021-08-13 Intelligente ablagespeichervorrichtung

Country Status (3)

Country Link
US (1) US20220100669A1 (de)
CN (1) CN114328306A (de)
DE (1) DE102021121105A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230297520A1 (en) * 2022-03-21 2023-09-21 Micron Technology, Inc. Compute express link memory and storage module
US20230384960A1 (en) * 2022-05-31 2023-11-30 Samsung Electronics Co., Ltd. Storage system and operation method therefor
US20240193085A1 (en) * 2022-12-12 2024-06-13 Micron Technology, Inc. Data Storage Device with Memory Services based on Storage Capacity
US20240289270A1 (en) * 2023-02-27 2024-08-29 Micron Technology, Inc. Data Storage Devices with File System Managers
CN116880773B (zh) * 2023-09-05 2023-11-17 苏州浪潮智能科技有限公司 一种内存扩展装置及数据处理方法、系统
CN117112466B (zh) * 2023-10-25 2024-02-09 浪潮(北京)电子信息产业有限公司 一种数据处理方法、装置、设备、存储介质及分布式集群
CN117493237B (zh) * 2023-12-29 2024-04-09 苏州元脑智能科技有限公司 计算设备、服务器、数据处理方法和存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2503412B1 (fr) * 1981-04-03 1986-10-31 Cit Alcatel Dispositif de commande multiprocesseur
KR101438716B1 (ko) * 2011-08-09 2014-09-11 엘에스아이 코포레이션 I/o 디바이스 및 컴퓨팅 호스팅 상호동작
CN104380269B (zh) * 2012-10-22 2018-01-30 英特尔公司 高性能互连相干协议
US11194753B2 (en) * 2017-09-01 2021-12-07 Intel Corporation Platform interface layer and protocol for accelerators
US11509606B2 (en) * 2018-06-29 2022-11-22 Intel Corporation Offload of storage node scale-out management to a smart network interface controller
US12117956B2 (en) * 2019-03-04 2024-10-15 Intel Corporation Writes to multiple memory destinations
US10698842B1 (en) * 2019-04-10 2020-06-30 Xilinx, Inc. Domain assist processor-peer for coherent acceleration
WO2020236272A1 (en) * 2019-05-23 2020-11-26 Cray Inc. System and method for facilitating fine-grain flow control in a network interface controller (nic)
US20210042228A1 (en) * 2019-07-17 2021-02-11 Intel Corporation Controller for locking of selected cache regions
US11036650B2 (en) * 2019-09-19 2021-06-15 Intel Corporation System, apparatus and method for processing remote direct memory access operations with a device-attached memory
US11740958B2 (en) * 2019-11-27 2023-08-29 Intel Corporation Multi-protocol support on common physical layer
US20210373951A1 (en) * 2020-05-28 2021-12-02 Samsung Electronics Co., Ltd. Systems and methods for composable coherent devices
US20210014324A1 (en) * 2020-09-24 2021-01-14 Intel Corporation Cache and memory content management
US12066939B2 (en) * 2020-10-30 2024-08-20 Intel Corporation Cache line demote infrastructure for multi-processor pipelines

Also Published As

Publication number Publication date
US20220100669A1 (en) 2022-03-31
CN114328306A (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
DE102021121105A1 (de) Intelligente ablagespeichervorrichtung
EP3018588B1 (de) Speicherzugriffverarbeitungsverfahren, -vorrichtung und -system
DE112012005210B4 (de) Bereitstellen eines gemeinsamen Caching-Agenten für ein Kern- und integriertes Ein-/Ausgabe-(IO)-Modul
DE102019106669A1 (de) Verfahren und anordnungen zum verwalten von speicher in kaskadierten neuronalen netzen
DE102019105879A1 (de) Verwaltung von kohärenten Verknüpfungen und Mehr-Ebenen-Speicher
DE102018004327A1 (de) Systeme und Verfahren zum Zugreifen auf Massenspeicher als Arbeitsspeicher
DE102020132764A1 (de) Solid-state-drive mit externer softwareausführung zum bewirken von internen operationen des solid-state-drive
DE102010025307A1 (de) Verfahren und Vorrichtung zur Verringerung des Energieverbrauchs
DE102010044531B4 (de) Autonome Speicherarchitektur
DE102015014851A1 (de) Ressourcenzuteilung und -freigabe für die Energieverwaltung in Vorrichtungen
DE112010001467B4 (de) Steuerung von Blöcken einer On-Die-System-Struktur
DE102016211986A1 (de) Cache-kohärentes System, das master-seitigen Filter umfasst und Datenverarbeitungssystem, das diesen umfasst
DE102010044529B4 (de) Autonomes speicher-sub-system mit hardwarebeschleuniger
DE102016123744A1 (de) Ein-Chip-System mit Zugriffssteuereinheit und mobile Vorrichtung mit Ein-Chip-System
DE112012006227B4 (de) Systeme und verfahren für den remotezugriff auf den direkten speicher mit reduzierter latenzzeit
DE112020001937T5 (de) Vorausschauender datenvorabruf in einer datenspeicher-vorrichtung
DE112008001679T5 (de) Cache-Speicher mit konfigurierbarer Assoziativität
DE202010018020U1 (de) Opportunistische Verbesserung einer MMIO-Anfrageabwicklung aufgrund eines Zielberichts von Raumerfordernissen
WO2013110736A1 (de) Speichercontroller zur bereitstellung mehrerer definierter bereiche eines massenspeichermediums als unabhängige massenspeicher an einen master-betriebssystem - kern zur exklusiven bereitstellung an virutelle maschinen
DE102018005039A1 (de) System und verfahren für pro-agent-steuerung und - dienstqualität gemeinsam genutzter ressourcen in chip-mehrprozessor-plattformen
DE102018005453A1 (de) Methoden, um Cache-Kohärenz basierend auf Cache-Typ bereitzustellen
DE102020117350A1 (de) Speichersystem einschliesslich heterogener speicher, computersystem mit dem speichersystem und datenverwaltungsverfahren dafür
DE112012004926B4 (de) Gemeinsame Speichernutzung durch Prozessoren
DE112011105901T5 (de) Verfahren und Vorrichtung zur Energieeinsparung für First In First Out (FIF0)-Speicher
DE102018006849A1 (de) Verfahren, Vorrichtung, System für frühe granulare Seitenhinweise anhand einer PCIE-Vorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed