DE102018125297A1 - Speichereinrichtung, die Peer-to-Peer-Kommunikation mit externer Einrichtung ohne Eingriff eines Host durchführt - Google Patents

Speichereinrichtung, die Peer-to-Peer-Kommunikation mit externer Einrichtung ohne Eingriff eines Host durchführt Download PDF

Info

Publication number
DE102018125297A1
DE102018125297A1 DE102018125297.8A DE102018125297A DE102018125297A1 DE 102018125297 A1 DE102018125297 A1 DE 102018125297A1 DE 102018125297 A DE102018125297 A DE 102018125297A DE 102018125297 A1 DE102018125297 A1 DE 102018125297A1
Authority
DE
Germany
Prior art keywords
port
data
storage device
memory
interface circuit
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
DE102018125297.8A
Other languages
English (en)
Inventor
Hojun Shim
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 KR1020180079419A external-priority patent/KR102527832B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102018125297A1 publication Critical patent/DE102018125297A1/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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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
    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Es wird eine Speichereinrichtung (1301a) bereitgestellt. Die Speichereinrichtung (1301a) umfasst eine Universalschaltkreis (FPGA)-Leiterplatte (1350a), die mit einem ersten Port der Speichereinrichtung (1301a) verbunden ist, und einen Speicher-Controller (1331a), der eine erste Schnittstellenschaltung (1336a) und eine zweite Schnittstellenschaltung (1335a) umfasst. Die erste Schnittstellenschaltung (1336a) ist mit der FPGA-Leiterplatte (1350a) verbunden, die zweite Schnittstellenschaltung (1335a) ist mit einem zweiten Port der Speichereinrichtung (1301a) verbunden, wobei wenigstens ein Port von dem ersten Port und dem zweiten Port dazu ausgelegt ist, mit einer externen Speichereinrichtung (1301b) zu verbinden, und die FPGA-Leiterplatte (1350a) dazu ausgelegt ist, einen Weg zum Übertragen von Daten auf eine Peer-to-Peer-Weise zwischen dem Speicher-Controller (1331a) und der externen Speichereinrichtung (1301b) ohne Eingriff eines Host (1101) bereitzustellen.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität nach 35 U.S.C. §119 vor der koreanischen Patentanmeldung 10-2017-0154281 , eingereicht am 17. November 2017 im koreanischen Patentamt, und der koreanischen Patentanmeldung 10-2018-0079419 , eingereicht am 9. Juli 2018 im koreanischen Patentamt, deren Offenbarungen hier durch Verweis in ihrer Gesamtheit aufgenommen sind.
  • ERFINDUNGSGEBIET
  • Verfahren und Vorrichtungen, die mit beispielhaften Ausführungsformen vereinbar sind, beziehen sich auf eine elektronische Einrichtung und insbesondere auf Operationen und Ausgestaltungen einer Speichereinrichtung, die Daten speichert und ausgibt.
  • VERWANDTE TECHNIK
  • Eine elektronische Einrichtung führt ihre eigene Funktion gemäß Operationen elektronischer Schaltungen durch, die in der elektronischen Einrichtung enthalten sind. Die elektronische Einrichtung kann ihre eigene Funktion durchführen, während sie alleine arbeitet. In einigen Fällen kann die elektronische Einrichtung ihre eigene Funktion durchführen, während sie mit einer anderen elektronischen Einrichtung kommuniziert.
  • Eine Speichereinrichtung ist ein Beispiel für eine elektronische Einrichtung. Die Speichereinrichtung kann gemäß Operationen von Komponenten, die in der Speichereinrichtung enthalten sind, Daten speichern und ausgeben und somit einem Nutzer einen Speicherdienst bereitstellen. Die Speichereinrichtung kann Daten alleine managen oder Daten managen, während sie mit einer anderen elektronischen Einrichtung kommuniziert.
  • In den letzten Jahren haben Volumen und Art von verteilten Informationen drastisch zugenommen, und eine Kapazität von Speichereinrichtungen erhöht sich ebenfalls, um die große Menge an Daten zu managen. Um eine größere Menge an Daten zu speichern, können zusätzlich mehrere Speichereinrichtungen zusammen eingesetzt werden, um die Daten eines einzelnen elektronischen Systems zu managen. Die mehreren Speichereinrichtungen können Daten speichern und ausgeben, während sie miteinander kommunizieren, und eine Kapazität zum Speichern der größeren Mange an Daten bereitstellen.
  • Allerdings erhöht eine zu große Menge an Daten, die in den mehreren Speichereinrichtungen gemanagt werden, die Leistung jeder Speichereinrichtung, was zu einer zunehmenden Last zum Managen der Speichereinrichtungen und der Daten führt. Insbesondere wenn ein Host-System die volle Verantwortung für das Managen der Speichereinrichtungen und der Daten übernimmt, wird eine Arbeitsbelastung des Host-Systems schwerer.
  • KURZDARSTELLUNG
  • Die vorliegende Offenbarung kann eine Speichereinrichtung bereitstellen, die für eine Peer-to-Peer-Kommunikation mit anderen Speichereinrichtungen ohne Eingriff eines Host ausgelegt ist.
  • In einigen beispielhaften Ausführungsformen umfasst eine Speichereinrichtung Folgendes: eine Universalschaltkreis (FPGA)-Leiterplatte, die mit einem ersten Port der Speichereinrichtung verbunden ist, und einen Speicher-Controller, der eine erste Schnittstellenschaltung und eine zweite Schnittstellenschaltung umfasst, wobei die erste Schnittstellenschaltung mit der FPGA-Leiterplatte verbunden ist und die zweite Schnittstellenschaltung mit einem zweiten Port der Speichereinrichtung verbunden ist. Wenigstens ein Port von dem ersten Port und von dem zweiten Port ist dazu ausgelegt, mit einer externen Speichereinrichtung zu verbinden, und die FPGA-Leiterplatte ist dazu ausgelegt, einen Weg zum Übertragen von Daten auf eine Peer-to-Peer-Weise zwischen dem Speicher-Controller und der externen Speichereinrichtung ohne Eingriff eines Host bereitzustellen.
  • In einigen beispielhaften Ausführungsformen umfasst eine Speichereinrichtung einen Speicher-Controller, der eine erste Schnittstellenschaltung und eine zweite Schnittstellenschaltung umfasst, wobei die erste Schnittstellenschaltung mit einem ersten Port der Speichereinrichtung verbunden ist und die zweite Schnittstellenschaltung mit einem zweiten Port der Speichereinrichtung verbunden ist, und eine Speichereinrichtung. Die erste Schnittstellenschaltung ist dazu ausgelegt, in mehreren Operationsmodi zu arbeiten, die darauf basieren, ob der erste Port mit einer externen Einrichtung verbunden ist, und einer Art der externen Einrichtung, die mit dem ersten Port verbunden ist, und der Speicher-Controller ist dazu ausgelegt, Daten mit einer externen Speichereinrichtung, die mit dem ersten Port auf eine Peer-to-Peer-Weise verbunden ist, ohne Eingriff eines Host auszutauschen.
  • In einigen beispielhaften Ausführungsformen umfasst eine Speichereinrichtung einen Speicher-Controller, der zwischen einem ersten Port der Speichereinrichtung und einem zweiten Port der Speichereinrichtung zwischengeschaltet ist, und eine Operationslogikschaltung, die dazu ausgelegt ist, verarbeitete Daten zu generieren, indem sie eine Verarbeitungsoperation auf Basis von Daten durchführt, die aus dem Speicher-Controller oder dem zweiten Port empfangen worden sind. Die Speichereinrichtung ist dazu ausgelegt, die verarbeiteten Daten an die externe Speichereinrichtung über den ersten Port ohne Eingriff eines Host auszugeben, wenn der erste Port mit einer externen Speichereinrichtung verbunden ist.
  • In einigen beispielhaften Ausführungsformen umfasst eine Speichereinrichtung einen Speicher-Controller, der zwischen einem ersten Port der Speichereinrichtung und einem zweiten Port der Speichereinrichtung zwischengeschaltet ist, und eine Speichereinrichtung. Die Speichereinrichtung ist dazu ausgelegt, erste Daten an die externe Speichereinrichtung über den ersten Port ohne Eingriff eines Host auszugeben, wenn der erste Port mit einer externen Speichereinrichtung verbunden ist, wobei die ersten Daten auf Basis von wenigstens einem der Folgenden generiert werden, aus zweiten Daten, die in der Speichereinrichtung gespeichert sind, und aus dritten Daten, die über den zweiten Port empfangen worden sind.
  • In einigen beispielhaften Ausführungsformen umfasst eine Speichereinrichtung eine erste Speichereinrichtung, die einen ersten Port und einen zweiten Port umfasst, und eine zweite Speichereinrichtung, die einen dritten Port umfasst. Der zweite Port ist mit dem dritten Port verbunden, und die erste Speichereinrichtung ist dazu ausgelegt, mit der zweiten Speichereinrichtung über den zweiten Port und den dritten Port ohne Eingriff eines Host zu kommunizieren. Die erste Speichereinrichtung ist dazu ausgelegt, erste Daten über den zweiten Port auf Basis von wenigstens einem Datenelement aus den zweiten Daten, die über den ersten Port empfangen worden sind, und den dritten Daten, die in der ersten Speichereinrichtung gespeichert sind, auszugeben. Die zweite Speichereinrichtung ist dazu ausgelegt, vierte Daten auf Basis von wenigstens einem der Folgenden zu generieren, aus den ersten Daten, die über den dritten Port empfangen worden sind, und den fünften Daten, die in der zweiten Speichereinrichtung gespeichert sind. Ein Operationsergebnis, das einer Anforderung des Host entspricht, wird dem Host auf Basis der vierten Daten bereitgestellt.
  • Gemäß den beispielhaften Ausführungsformen können mehrere Speichereinrichtungen eine Peer-to-Peer-Kommunikation ohne den Eingriff eines Host durchführen. Dementsprechend kann sogar, wenn sich eine Menge an Daten erhöht und sich die Leistung jeder Speichereinrichtung erhöht, eine Last des Host beim Managen der Speichereinrichtungen und der Daten erheblich reduziert sein. Dies kann Entwurfskosten und Managementkosten des gesamten elektronischen Systems reduzieren.
  • Figurenliste
  • Die oben genannten und andere Aspekte, Merkmale und Vorteile werden besser anhand der folgenden ausführlichen Beschreibung in Verbindung mit den zugehörigen Zeichnungen verstanden, in denen:
    • 1 ein Blockdiagramm ist, das eine beispielhafte Ausgestaltung eines elektronischen Systems gemäß einigen beispielhaften Ausführungsformen veranschaulicht.
    • 2 ein konzeptionelles Diagramm ist, das eine mit einer Speichereinrichtung aus der 1 verknüpfte beispielhafte Implementierungsform veranschaulicht.
    • 3 und 4 Blockdiagramme sind, die beispielhafte, mit einem elektronischen System aus der 1 verknüpfte Ausgestaltungen veranschaulichen.
    • 5 ein Blockdiagramm ist, das eine beispielhafte, mit den Speichereinrichtungen aus der 1 verknüpfte Ausgestaltung veranschaulicht.
    • 6 bis 10 Blockdiagramme sind zum Beschreiben von beispielhaften Operationen, die mit den Speichereinrichtungen aus der 5 verknüpft sind.
    • 11 und 12 Blockdiagramme sind, die beispielhafte, mit den Speichereinrichtungen aus der 5 verknüpfte Ausgestaltungen veranschaulichen.
    • 13 und 14 Blockdiagramme sind, die beispielhafte, mit den Speichereinrichtungen aus der 1 verknüpfte Ausgestaltungen veranschaulichen.
    • 15 ein Blockdiagramm ist, das eine beispielhafte, mit den Speichereinrichtungen aus der 1 verknüpfte Ausgestaltung veranschaulicht.
    • 16 und 17 Flussdiagramme sind, die beispielhafte Operationen einer variablen Schnittstellenschaltung aus der 15 beschreiben.
    • 18 ein Blockdiagramm ist, das eine beispielhafte, mit den Speichereinrichtungen aus der 1 verknüpfte Ausgestaltung veranschaulicht.
    • 19 ein konzeptionelles Diagramm ist, das eine mit einem elektronischen System aus der 1 verknüpfte beispielhafte Implementierungsform veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 ist ein Blockdiagramm, das eine beispielhafte Ausgestaltung eines elektronischen Systems 1000 gemäß einigen beispielhaften Ausführungsformen veranschaulicht.
  • Das elektronische System 1000 kann einen Hauptprozessor 1101, einen Arbeitsspeicher 1200, ein Speichersystem 1300, einen Kommunikationsblock 1400, eine Nutzerschnittstelle 1500 und einen Bus 1600 umfassen. Zum Beispiel kann das elektronische System 1000 eine der folgenden elektronischen Einrichtungen sein, wie zum Beispiel ein Desktop-Computer, ein Laptop-Computer, ein Tablet-Computer, ein Smartphone, eine Wearable-Einrichtung, eine Videospielkonsole, eine Workstation, einer oder mehrere Server, ein Elektrofahrzeug, Haushaltsgeräte, eine medizinische Einrichtung und/oder dergleichen.
  • Der Hauptprozessor 1101 kann die gesamten Operationen des elektronischen Systems 1000 steuern. Zum Beispiel kann der Hauptprozessor 1101 in einem Universalprozessor, einem Spezialprozessor oder einem Anwendungsprozessor, die einen oder mehrere Prozessorkerne umfassen, implementiert sein.
  • Der Arbeitsspeicher 1200 kann Daten speichern, die in einer Operation des elektronischen Systems 1000 verwendet werden. Zum Beispiel kann der Arbeitsspeicher 1200 zeitweise Daten speichern, die vom Hauptprozessor 1101 verarbeitet worden sind oder verarbeitet werden sollen. Zum Beispiel kann der Arbeitsspeicher 1200 einen flüchtigen Speicher, wie zum Beispiel einen Direktzugriffsspeicher (Random Access Memory, RAM), einen statischen Direktzugriffsspeicher (Static Random Access Memory, SRAM), einen dynamischen Direktzugriffsspeicher (Dynamic Random Access Memory, DRAM) oder einen synchronen dynamischen Direktzugriffsspeicher (SDRAM), und/oder einen nichtflüchtigen Speicher, wie zum Beispiel ein Phasenwechsel-RAM (PRAM), ein magnetoresistives RAM (MRAM), ein resistives RAM (ReRAM) oder ein ferroelektrisches RAM (FRAM), umfassen.
  • Das Speichersystem 1300 kann eine oder mehrere Speichereinrichtungen umfassen. Zum Beispiel kann das Speichersystem 1300 die Speichereinrichtungen 1300a, 1300b und 1300c umfassen. 1 veranschaulicht drei Speichereinrichtungen 1300a, 1300b und 1300c, jedoch kann die Anzahl der Speichereinrichtungen, die im Speichersystem 1300 enthalten sind, verschiedenartig geändert oder modifiziert werden, so dass sie für die Anforderungen des elektronischen Systems 1000 geeignet ist.
  • Jede der Speichereinrichtungen 1300a, 1300b und 1300c kann Daten speichern, ungeachtet, ob die Stromversorgung angeschlossen ist. Zum Beispiel kann jede der Speichereinrichtungen 1300a, 1300b und 1300c einen nichtflüchtigen Speicher umfassen, wie zum Beispiel einen Flash-Speicher, ein PRAM, ein MRAM, ein ReRAM, ein FRAM und/oder dergleichen. Zum Beispiel kann jede der Speichereinrichtungen 1300a, 1300b und 1300c ein Speichermedium umfassen, wie zum Beispiel ein Festkörperlaufwerk (SSD), einen Kartenspeicher oder einen eingebetteten Speicher.
  • Der Kommunikationsblock 1400 kann wenigstens eines von verschiedenen drahtlosen/drahtgebundenen Kommunikationsprotokollen unterstützen, um mit einer externen Einrichtung bzw. einem externen System des elektronischen Systems 1000 zu kommunizieren. Die Nutzerschnittstelle 1500 kann verschiedene Eingangs-/Ausgangsschnittstellen umfassen, um in der Kommunikation zwischen einem Nutzer und dem elektronischen System 1000 zu arbitrieren.
  • Der Bus 1600 kann einen Kommunikationsweg zwischen Komponenten des elektronischen Systems 1000 bereitstellen. Die Komponenten des elektronischen Systems 1000 können Daten miteinander in Übereinstimmung mit einem Busformat des Busses 1600 austauschen. Zum Beispiel können zum Busformat eines oder mehrere von verschiedenen Schnittstellenprotokolle zählen, wie zum Beispiel Universal Serial Bus (USB), Small Computer System Interface (SCSI), Peripheral Component Interconnect Express (PCIe), Serial Advanced Technology Attachment (SATA), Serial Attached SCSI (SAS), Non-Volatile Memory Express (NVMe), Universal Flash Storage (UFS), Double Data Rate (DDR), Low Power DDR (LPDDR) und/oder dergleichen.
  • Nachstehend werden beispielhafte Ausgestaltungen, die mit dem PCIe-Protokoll verknüpft sind, und beispielhafte Ausführungsformen, die mit den Speichereinrichtungen 1300a, 1300b und 1300c verknüpft sind, beschrieben. Allerdings können die beispielhaften Ausführungsformen der vorliegenden Offenbarung verschiedenartig geändert oder modifiziert werden, damit sie in Bezug auf ein anderes Schnittstellenprotokoll als das PCIe-Protokoll eingesetzt werden. Zusätzlich können die beispielhaften Ausführungsformen der vorliegenden Offenbarung sowohl in irgendeiner elektronischen Einrichtung (z. B. dem Arbeitsspeicher 1200) eingesetzt werden, die in der Lage ist, Daten zu speichern und auszugeben, als auch in den Speichereinrichtungen 1300a, 1300b und 1300c. Die folgenden Beschreibungen werden bereitgestellt, um ein besseres Verständnis zu ermöglichen, und sollen die vorliegende Offenbarung nicht beschränken.
  • 2 ist ein konzeptionelles Diagramm, das eine mit der Speichereinrichtung 1300a aus der 1 verknüpfte beispielhafte Implementierungsform veranschaulicht.
  • In einigen beispielhaften Ausführungsformen kann die Speichereinrichtung 1300a eine Platine (PCB) 1307a umfassen. Die Speichereinrichtung 1300a kann einen oder mehrere Chips oder Packages umfassen, die auf der PCB 1307a montiert oder eingerichtet sind. Zum Beispiel können die Speichereinrichtungen 1310a und ein Speicher-Controller 1330a auf der PCB 1307a montiert oder eingerichtet sein.
  • Der Speicher-Controller 1330a kann die gesamten Operationen der Speichereinrichtung 1300a steuern und managen. Dazu kann der Speicher-Controller 1330a Hardware-Schaltungen umfassen (z. B. eine analoge Schaltung, eine Logikschaltung und/oder dergleichen), die dazu ausgelegt sind, vorgesehene Operationen durchzuführen. Zusätzlich oder alternativ kann der Speicher-Controller 1330a einen oder mehrere Prozessorkerne umfassen, die dazu ausgelegt sind, einen Anweisungssatz eines Programmcodes auszuführen, um vorgesehene Operationen durchzuführen.
  • Die Speichereinrichtungen 1310a können Speicher von einem oder mehreren Arten umfassen. Die Speichereinrichtungen 1310a können Daten unter der Steuerung des Speicher-Controllers 1330a speichern und ausgeben. Zum Beispiel können die Speichereinrichtungen 1310a mit dem Speicher-Controller 1330a über leitfähige Strukturen kommunizieren, die auf die PCB 1307a gedruckt sind.
  • In einigen beispielhaften Ausführungsformen kann die Speichereinrichtung 1300a dazu ausgelegt sein, mit anderen Einrichtungen außerhalb der Speichereinrichtung 1300a über einen Dual-Port zu kommunizieren. Zum Beispiel kann der Dual-Port der Speichereinrichtung 1300a einen ersten Port und einen zweiten Port umfassen, und die Speichereinrichtung 1300a kann über den ersten Port und den zweiten Port Daten aus einer anderen Einrichtung empfangen oder Daten an eine andere Einrichtung ausgeben. Wenn zum Beispiel die Speichereinrichtung 1300a ein SSD ist, kann die Speichereinrichtung 1300a als ein Dual-Port-SSD bezeichnet werden.
  • Zum Beispiel kann die Speichereinrichtung 1300a die Verbinder 1390a und 1395a umfassen, die dem Dual-Port entsprechen. Die Verbinder 1390a und 1395a können die Pins oder Strukturen 1391a und 1396a umfassen, die aus leitfähigem Material gebildet sind. Zum Beispiel kann jeder der Verbinder 1390a und 1395a direkt oder indirekt mit einer anderen Einrichtung verbunden sein (z. B. über eine leitfähige Leitung, ein Kabel und/oder dergleichen). In diesem Fall kann die Speichereinrichtung 1300a Daten mit der anderen Einrichtung über die Pins oder Strukturen 1391a und 1396a austauschen.
  • Zum Beispiel können der Verbinder 1390a und die Pins oder Strukturen 1391a dem ersten Port entsprechen, und der Verbinder 1395a und die Pins oder Strukturen 1396a können dem zweiten Port entsprechen. Zum Beispiel kann der Speicher-Controller 1330a mit den Pins oder Strukturen 1391a und 1396a über leitfähige Strukturen verbunden sein, die auf die PCB 1307a gedruckt sind. Dementsprechend kann der Speicher-Controller 1330a Daten über den ersten Port und den zweiten Port ausgeben oder empfangen.
  • Der erste Port und der zweite Port können eine unabhängige Kommunikation bereitstellen. Zum Beispiel kann eine Operation, Daten über den ersten Port auszugeben oder zu empfangen, unabhängig von einer Operation sein, Daten über den zweiten Port auszugeben oder zu empfangen.
  • Eine Ausgestaltung der Speichereinrichtung 1300a (z. B. die Anzahl an Speichereinrichtungen 1310a, die Anordnung der Speichereinrichtungen 1310a und des Speicher-Controllers 1330a, die Positionen und Formen der Verbinder 1390a und 1395a, die Positionen und Formen der Pins oder Strukturen 1391a und 1396a und/oder dergleichen) kann verschiedenartig geändert oder modifiziert werden, damit sie sich von der in der 2 veranschaulichten Ausgestaltung unterscheidet. Die beispielhafte Implementierungsform aus der 2 wird bereitgestellt, um ein besseres Verständnis zu ermöglichen, und soll die vorliegende Offenbarung nicht beschränken. Die Speichereinrichtungen 1300b und 1300c, andere Speichereinrichtungen des Speichersystems 1300 können so ausgelegt sein, dass sie mit der Speichereinrichtung 1300a identisch oder ähnlich sind.
  • 3 ist ein Blockdiagramm, das eine beispielhafte Ausgestaltung 1000a des elektronischen Systems 1000 aus der 1 veranschaulicht.
  • Die Ausgestaltung 1000a kann den Hauptprozessor 1101, einen Root-Complex 1003, einen Switch 1005, den Arbeitsspeicher 1200 und die Speichereinrichtungen 1300a und 1300b umfassen.
  • Der Root-Complex 1003 kann einen Datenfluss zwischen Komponenten des elektronischen Systems 1000 managen. Zum Beispiel kann der Root-Complex 1003 einen Datenweg steuern, kann eine Datenübertragung planen oder kann eine Kommunikationskollision auflösen. Zum Beispiel können der Hauptprozessor 1101, der Arbeitsspeicher 1200 und die Speichereinrichtungen 1300a und 1300b mit dem Root-Complex 1003 verbunden sein und können Daten miteinander austauschen, während sie miteinander über den Root-Complex 1003 kommunizieren.
  • In einigen Fällen kann der Switch 1005 des Weiteren mit dem Root-Complex 1003 verbunden sein, und die Speichereinrichtungen 1300a und 1300b können mit dem Root-Complex 1003 über den Switch 1005 verbunden sein. Zum Beispiel kann zum Switch 1005 ein PCIe-Switch oder eine andere Art von Switch zählen. Der Switch 1005 kann einen Datenweg zwischen dem Root-Complex 1003 und den Speichereinrichtungen 1300a und 1300b steuern. Der Root-Complex 1003 und der Switch 1005 können in einer Hardware-Schaltung für Datensteuerung und Datenübertragung implementiert sein.
  • In einigen Beispielen kann die Speichereinrichtung 1300a mit dem Switch 1005 über den Dual-Port verbunden sein. Zum Beispiel kann der erste Port der Speichereinrichtung 1300a einen Datenweg P11 zwischen der Speichereinrichtung 1300a und dem Switch 1005 bereitstellen, und der zweite Port der Speichereinrichtung 1300a kann einen Datenweg P12 zwischen der Speichereinrichtung 1300a und dem Switch 1005 bereitstellen. Gleichermaßen kann die Speichereinrichtung 1300b auch mit dem Switch 1005 über einen Dual-Port verbunden sein. Zusätzlich kann die Speichereinrichtung 1300c auch mit dem Switch 1005 über einen Dual-Port verbunden sein.
  • Der Hauptprozessor 1101 kann mit den Speichereinrichtungen 1300a und 1300b über den Root-Complex 1003 und den Switch 1005 kommunizieren. In der vorliegenden Offenbarung kann ein Objekt, das in der Lage ist, auf Komponenten (wie zum Beispiel die Speichereinrichtungen 1300a und 1300b) des elektronischen Systems 1000 zuzugreifen, als ein „Host“ bezeichnet werden. Der Hauptprozessor 1101 kann ein Beispiel für Objekte sein, die in der Lage sind, als der Host zu arbeiten. Allerdings ist die vorliegende Offenbarung nicht darauf beschränkt.
  • Wenn jede der Speichereinrichtungen 1300a und 1300b mit dem Hauptprozessor 1101 über den Dual-Port kommuniziert, kann die Zuverlässigkeit verbessert sein. Sogar wenn zum Beispiel ein Port der Speichereinrichtung 1300a eine Störung aufweist oder deaktiviert ist, kann der andere Port der Speichereinrichtung 1300a die Kommunikation unterstützen.
  • In dem Beispiel aus der 3 können die Speichereinrichtungen 1300a und 1300b miteinander über den Switch 1005 auf eine Peer-to-Peer-Weise kommunizieren. In diesem Fall kann ein Host (z. B. der Hauptprozessor 1101) in die Kommunikation zwischen den Speichereinrichtungen 1300a und 1300b eingreifen.
  • Wenn zum Beispiel Daten aus der Speichereinrichtung 1300a zur Speichereinrichtung 1300b über den Switch 1005 gesendet werden, kann der Hauptprozessor 1101 in das Steuern eines Datenweges, der auf die Speichereinrichtung 1300b gerichtet ist, und in das Mapping einer Speicheradresse eingreifen. Dazu kann der Hauptprozessor 1101 in das Verarbeiten von Daten eingreifen, die zwischen den Speichereinrichtungen 1300a und 1300b ausgetauscht werden.
  • Wenn indessen eine Kapazität jeder der Speichereinrichtungen 1300a und 1300b groß ist, kann eine große Menge an Daten zwischen den Speichereinrichtungen 1300a und 1300b ausgetauscht werden. Zusätzlich kann die Leistung jeder der Speichereinrichtungen 1300a und 1300b hoch sein, um die große Menge an Daten zu managen. Weil der Host in das Verarbeiten der Daten, die zwischen den Speichereinrichtungen 1300a und 1300b ausgetauscht werden, eingreift, kann in diesem Fall eine Arbeitsbelastung des Host beträchtlich werden.
  • 4 ist ein Blockdiagramm, das eine beispielhafte, mit dem elektronischen System 1000 aus der 1 verknüpfte Ausgestaltung 1000b veranschaulicht.
  • Die Ausgestaltung 1000b kann den Hauptprozessor 1101, den Root-Complex 1003, den Switch 1005, den Arbeitsspeicher 1200 und die Speichereinrichtungen 1300a und 1300b umfassen.
  • In der Ausgestaltung 1000b sind weder der erste Port noch der zweite Port der Speichereinrichtung 1300a mit dem Switch 1005 verbunden. Stattdessen kann der erste Port der Speichereinrichtung 1300a mit der Speichereinrichtung 1300b verbunden sein, und der zweite Port der Speichereinrichtung 1300a kann mit dem Switch 1005 verbunden sein.
  • Zum Beispiel kann der zweite Port der Speichereinrichtung 1300a einen Datenweg P21 zwischen der Speichereinrichtung 1300a und dem Switch 1005 bereitstellen, und der erste Port der Speichereinrichtung 1300a kann einen Datenweg P22 zwischen den Speichereinrichtungen 1300a und 1300b bereitstellen. Die Speichereinrichtung 1300a kann mit dem Hauptprozessor 1101 über den Datenweg P21, den Switch 1005 und den Root-Complex 1003 kommunizieren.
  • Gleichermaßen kann ein Port des Dual-Ports der Speichereinrichtung 1300b mit der Speichereinrichtung 1300a verbunden sein. Die Speichereinrichtung 1300a kann mit der Speichereinrichtung 1300b über den Datenweg P22 auf Peer-to-Peer-Weise kommunizieren. Zusätzlich kann die Speichereinrichtung 1300c auch mit der Speichereinrichtung 1300a oder 1300b über einen Port des Dual-Ports zur Peer-to-Peer-Kommunikation verbunden sein.
  • Der andere Port des Dual-Ports der Speichereinrichtung 1300b ist möglicherweise mit dem Switch 1005 oder nicht mit dem Switch 1005 verbunden. Wenn die Speichereinrichtung 1300b nicht mit dem Switch 1005 verbunden ist, kann die Speichereinrichtung 1300b mit dem Hauptprozessor 1101 über die Speichereinrichtung 1300a kommunizieren. Wenn die Speichereinrichtung 1300b mit dem Switch 1005 verbunden ist, kann die Speichereinrichtung 1300b mit dem Hauptprozessor 1101 über den Switch 1005 kommunizieren.
  • In der Ausgestaltung 1000b ist der Switch 1005 möglicherweise nicht in der Kommunikation zwischen den Speichereinrichtungen 1300a und 1300b erforderlich. Daten, die zwischen den Speichereinrichtungen 1300a und 1300b ausgetauscht werden, können von der Speichereinrichtung 1300a und/oder der Speichereinrichtung 1300b verarbeitet werden. Der Host (z. B. der Hauptprozessor 1101) greift möglicherweise gar nicht in die Verarbeitung der Daten ein, die zwischen den Speichereinrichtungen 1300a und 1300b ausgetauscht werden (oder greift minimal in die Verarbeitung der Daten ein).
  • Alle oder einige der Datenverarbeitungsoperationen, die durch den Host in der Ausgestaltung 1000a durchgeführt werden, können durch die Speichereinrichtungen 1300a und 1300b in der Ausgestaltung 1000b durchgeführt werden. Dementsprechend kann in der Ausgestaltung 1000b, sogar wenn sich eine Menge an Daten, die zwischen den Speichereinrichtungen 1300a und 1300b ausgetauscht werden, erhöht und die Leistung der Speichereinrichtungen 1300a und 1300b hoch wird, die Arbeitsbelastung des Host erheblich reduziert sein. Dies kann Entwurfskosten und Managementkosten des gesamten elektronischen Systems 1000 reduzieren.
  • 4 veranschaulicht, dass die Speichereinrichtung 1300a mit dem Switch 1005 verbunden ist. In einigen beispielhaften Ausführungsformen kann die Speichereinrichtung 1300a mit dem Root-Complex 1003 ohne den Switch 1005 verbunden sein. Das elektronische System 1000 kann verschiedenartig geändert oder modifiziert werden, so dass es sich von der Ausgestaltung 1000b unterscheidet.
  • 5 ist ein Blockdiagramm, das eine beispielhafte, mit den Speichereinrichtungen 1300a, 1300b und 1300c aus der 1 verknüpfte Ausgestaltung veranschaulicht.
  • In einigen beispielhaften Ausführungsformen können die Speichereinrichtungen 1300a, 1300b und 1300c die Speichereinrichtungen 1301a, 1301b bzw. 1301c umfassen. Ähnlich wie die unter Bezugnahme auf 4 beschriebenen können die Speichereinrichtungen 1301a, 1301b und 1301c miteinander ohne den Root-Complex 1003 oder den Switch 1005 verbunden sein, um auf eine Peer-to-Peer-Weise zu kommunizieren. Dazu kann jede der Speichereinrichtungen 1301a, 1301b und 1301c in einer Dual-Port-Struktur implementiert sein.
  • 5 veranschaulicht, dass die Speichereinrichtungen 1301a und 1301c direkt mit dem Hauptprozessor 1101 verbunden sind. Allerdings können in einigen beispielhaften Ausführungsformen der Root-Complex 1003 und/oder der Switch 1005 zwischen den Speichereinrichtungen 1301a und 1301c und dem Hauptprozessor 1101 bereitgestellt sein. In der vorliegenden Offenbarung können zu einer Verbindung zum Hauptprozessor 1101 eine direkte Verbindung (z. B. ohne den Root-Complex 1003 und den Switch 1005) und eine indirekte Verbindung (z. B. mit dem Root-Complex 1003 und/oder dem Switch 1005) zählen.
  • Die Speichereinrichtung 1301a kann wenigstens eine Speichereinrichtung 1310a, einen Speicher-Controller 1331a und einen Peer-to-Peer-Manager 1350a umfassen. Der Speicher-Controller 1331a kann dem Speicher-Controller 1330a entsprechen. Der Speicher-Controller 1331a kann die gesamten Operationen der Speichereinrichtung 1301a steuern und managen. Die Speichereinrichtung 1310a kann Daten unter der Steuerung des Speicher-Controllers 1331a speichern und ausgeben.
  • Der Speicher-Controller 1331a kann die Schnittstellenschaltungen 1335a und 1336a umfassen. Jede der Schnittstellenschaltungen 1335a und 1336a kann eine physikalische Schicht und/oder eine logische Schicht umfassen, die dazu ausgelegt sind, Daten, ein Signal und/oder ein Packet zu senden bzw. zu empfangen und zu verarbeiten, um zu ermöglichen, dass der Speicher-Controller 1331a mit einer Komponente außerhalb des Speicher-Controllers 1331a kommuniziert. Jede der Schnittstellenschaltungen 1335a und 1336a kann eine Hardware-Schaltung umfassen, die dazu ausgelegt ist, die Kommunikation zwischen dem Speicher-Controller 1331a und einer externen Komponente zu verarbeiten.
  • Zum Beispiel kann die Schnittstellenschaltung 1335a mit dem zweiten Port der Speichereinrichtung 1301a verbunden sein. Der zweite Port der Speichereinrichtung 1301a kann einen Datenweg P21a zwischen dem Speicher-Controller 1331a und dem Hauptprozessor 1101 bereitstellen. Die Speichereinrichtung 1301a kann mit dem Hauptprozessor 1101 über die Schnittstellenschaltung 1335a, den Datenweg P21a und den zweiten Port kommunizieren.
  • Zum Beispiel kann die Schnittstellenschaltung 1336a mit dem Peer-to-Peer-Manager 1350a verbunden sein. Ein Datenweg P23a kann zwischen der Schnittstellenschaltung 1336a und dem Peer-to-Peer-Manager 1350a bereitgestellt sein. Der Speicher-Controller 1331a kann mit dem Peer-to-Peer-Manager 1350a über die Schnittstellenschaltung 1336a und den Datenweg P23a kommunizieren.
  • Der Peer-to-Peer-Manager 1350a kann mit dem ersten Port der Speichereinrichtung 1301a verbunden sein. Der Peer-to-Peer-Manager 1350a kann sich zwischen dem ersten Port der Speichereinrichtung 1301a und dem Speicher-Controller 1331a befinden. Der Speicher-Controller 1331a kann sich zwischen dem ersten Port der Speichereinrichtung 1301a und dem zweiten Port der Speichereinrichtung 1301a befinden.
  • Die Speichereinrichtung 1301a kann mit einer anderen Einrichtung (z. B. der Speichereinrichtung 1301b) außerhalb der Speichereinrichtung 1301a über den ersten Port der Speichereinrichtung 1301a verbunden sein. Der erste Port der Speichereinrichtung 1301a kann einen Datenweg P22a zwischen dem Peer-to-Peer-Manager 1350a und der Speichereinrichtung 1301b bereitstellen. Die Speichereinrichtung 1301a kann mit der Speichereinrichtung 1301b über den Datenweg P22a und den ersten Port der Speichereinrichtung 1301a kommunizieren.
  • Der Peer-to-Peer-Manager 1350a kann einen internen Switch 1351a und eine Operationslogikschaltung 1352a umfassen. Der interne Switch 1351a und die Operationslogikschaltung 1352a können miteinander über einen internen Bus des Peer-to-Peer-Managers 1350a kommunizieren. Entsprechend den Operationen des internen Switch 1351a und der Operationslogikschaltung 1352a kann der Peer-to-Peer-Manager 1350a einen Weg bereitstellen (z. B. die Datenwege P22a und P23a), um Daten zwischen dem Speicher-Controller 1331a und der Speichereinrichtung 1301b auf Peer-to-Peer-Weise zu übertragen.
  • Der interne Switch 1351a kann einen Datenfluss, der aus der Speichereinrichtung 1301a über den ersten Port ausgegeben werden soll, und Daten, die von der Speichereinrichtung 1301a über den ersten Port empfangen werden, managen. Dementsprechend kann der Peer-to-Peer-Manager 1350a auf Basis von Daten, die mit dem Speicher-Controller 1331a ausgetauscht werden, Daten an die Speichereinrichtung 1301b über den ersten Port ausgeben oder Daten aus der Speichereinrichtung 1301b über den ersten Port empfangen.
  • Der interne Switch 1351a kann zum Managen eines Datenflusses in einer Hardware-Schaltung implementiert sein. Hier wird der Begriff „Switch“ verwendet, jedoch kann die Implementierung des internen Switch 1351a verschiedenartig geändert oder modifiziert werden. Zum Beispiel kann der interne Switch 1351a in einer Form eines internen Root-Complex implementiert sein, um einen Datenweg zu steuern, eine Datenübertragung zu planen oder eine Kommunikationskollision aufzulösen (ähnlich dem Root-Complex 1003). Alternativ kann der interne Switch 1351a in einer Form einer Kombination eines internen Root-Complex und eines Switch implementiert sein (ähnlich dem Root-Complex 1003 und dem Switch 1005).
  • Allerdings kann der interne Switch 1351a nur einen Datenfluss zwischen dem Speicher-Controller 1331a und dem ersten Port der Speichereinrichtung 1301a managen. Dementsprechend kann der interne Switch 1351a so implementiert sein, dass er eine Größe (z. B. eine Schaltungsgröße, eine Schaltungsfläche oder einen Schaltungsmaßstab) aufweist, die kleiner als eine Größe des Root-Complex 1003 und/oder des Switch 1005 ist.
  • Die Operationslogikschaltung 1352a kann eine Verarbeitungsoperation auf Basis von Daten durchführen, die im Peer-to-Peer-Manager 1350a empfangen worden sind. Zum Beispiel kann die Verarbeitungsoperation eine oder mehrere verschiedene Operationen umfassen, wie zum Beispiel eine Operation der Überwachung von Informationen (z. B. einer Datenmenge, eines Datenwegs, einer Adresse und/oder dergleichen), die mit den empfangenen Daten, einer Redundant Array of Inexpensive Disks (RAID-) Operation auf Basis der empfangenen Daten und einer Regulärausdrucksuchoperation auf Basis der empfangenen Daten verknüpft sind. Allerdings ist die vorliegende Offenbarung nicht auf dieses Beispiel beschränkt.
  • Zum Beispiel kann die Operationslogikschaltung 1352a eine Verarbeitungsoperation auf Basis von Daten durchführen, die aus dem Speicher-Controller 1331a empfangen worden sind, und kann die empfangenen Daten verarbeiten, um verarbeitete Daten zu generieren, die über den ersten Port der Speichereinrichtung 1301a ausgegeben werden sollen. Zum Beispiel kann die Operationslogikschaltung 1352a eine Verarbeitungsoperation auf Basis von Daten durchführen, die über den ersten Port der Speichereinrichtung 1301 empfangen worden sind, und kann die empfangenen Daten verarbeiten, um verarbeitete Daten zu generieren, die dem Speicher-Controller 1331a bereitgestellt werden sollen.
  • Dazu kann die Operationslogikschaltung 1352a in einer Hardware-Schaltung implementiert sein, die dazu ausgelegt ist, die Verarbeitungsoperation durchzuführen. In einigen beispielhaften Ausführungsformen kann der Peer-to-Peer-Manager 1350a in einer Form einer Universalschaltkreis (FPGA)-Leiterplatte oder von anwendungsspezifischen integrierten Schaltungen (Application Specific Integrated Circuits, ASICs) implementiert sein, die sich vom Speicher-Controller 1331a getrennt im Inneren eines Satzes der Speichereinrichtung 1301a befindet/befinden. Zum Beispiel kann die Operationslogikschaltung 1352a in einer rekonfigurierbaren Logikschaltung auf Basis einer Ausgestaltung der FPGA-Leiterplatte implementiert sein.
  • Dementsprechend kann der Peer-to-Peer-Manager 1350a die empfangenen Daten selbst verarbeiten oder konvertieren, um die verarbeiteten Daten oder die konvertierten Daten auszugeben, statt einfach einen Datenfluss zu managen. Die ausgegebenen Daten können dem Speicher-Controller 1331a bereitgestellt werden, oder sie können der Speichereinrichtung 1301b über den ersten Port der Speichereinrichtung 1301a bereitgestellt werden. Dazu kann der Peer-to-Peer-Manager 1350a zwei nachgeschaltete Ports umfassen, die mit dem Speicher-Controller und dem ersten Port der Speichereinrichtung 1301a verbunden sind.
  • Die Verarbeitungsoperation der Operationslogikschaltung 1352 kann durch den Hauptprozessor 1101 durchgeführt werden. Allerdings kann in beispielhaften Ausführungsformen die Speichereinrichtung 1301a die Verarbeitungsoperation unter Verwendung der Operationslogikschaltung 1352a durchführen, um die Arbeitsbelastung des Hauptprozessors 1101 zu reduzieren. Ein mit der Verarbeitungsoperation verknüpftes Beispiel wird unter Bezugnahme auf 6 bis 9 beschrieben.
  • Die Speichereinrichtung 1301b kann wenigstens eine Speichereinrichtung 1310b, einen Speicher-Controller 1331b und einen Peer-to-Peer-Manager 1350b umfassen. Der Speicher-Controller 1331b kann die Schnittstellenschaltungen 1335b und 1336b umfassen. Der Peer-to-Peer-Manager 1350b kann einen internen Switch 1351b und eine Operationslogikschaltung 1352b umfassen.
  • Der Peer-to-Peer-Manager 1350b kann mit der Speichereinrichtung 1301c über den ersten Port der Speichereinrichtung 1301b und einen Datenweg P24a verbunden sein. Die Schnittstellenschaltung 1335b kann mit der Speichereinrichtung 1301a über den zweiten Port der Speichereinrichtung 1301b und den Datenweg P22a verbunden sein. Die Schnittstellenschaltung 1336b kann mit dem Peer-to-Peer-Manager 1350b über einen Datenweg P25a verbunden sein.
  • Die Operationen und Ausgestaltungen der Speichereinrichtung 1301b, der Speichereinrichtung 1310b, des Speicher-Controllers 1331b, der Schnittstellenschaltungen 1335b und 1336b, des Peer-to-Peer-Managers 1350b, des internen Switch 1351b und der Operationslogikschaltung 1352b können im Wesentlichen identisch oder ähnlich zu denen der Speichereinrichtung 1301a, der Speichereinrichtung 1310a, des Speicher-Controllers 1331a, der Schnittstellenschaltungen 1335a und 1336a, des Peer-to-Peer-Managers 1350a, des internen Switch 1351a und der Operationslogikschaltung 1352a sein. Der Kürze halber wird eine redundante Beschreibung nachstehend weggelassen.
  • Die Speichereinrichtung 1301c kann wenigstens eine Speichereinrichtung 1310c, einen Speicher-Controller 1331c und einen Peer-to-Peer-Manager 1350c umfassen. Der Speicher-Controller 1331c kann die Schnittstellenschaltungen 1335c und 1336c umfassen. Der Peer-to-Peer-Manager 1350c kann einen internen Switch 1351c und eine Operationslogikschaltung 1352c umfassen.
  • Der Peer-to-Peer-Manager 1350c kann mit dem Hauptprozessor 1101 über den ersten Port der Speichereinrichtung 1301c und einen Datenweg P27a verbunden sein. Die Schnittstellenschaltung 1335c kann mit der Speichereinrichtung 1301b über den zweiten Port der Speichereinrichtung 1301c und den Datenweg P24a verbunden sein. Die Schnittstellenschaltung 1336c kann mit dem Peer-to-Peer-Manager 1350c über einen Datenweg P26a verbunden sein.
  • Die Operationen und Ausgestaltungen der Speichereinrichtung 1301c, der Speichereinrichtung 1310c, des Speicher-Controllers 1331c, der Schnittstellenschaltungen 1335c und 1336c, des Peer-to-Peer-Managers 1350c, des internen Switch 1351c und der Operationslogikschaltung 1352c können im Wesentlichen identisch oder ähnlich zu denen der Speichereinrichtung 1301a, der Speichereinrichtung 1310a, des Speicher-Controllers 1331a, der Schnittstellenschaltungen 1335a und 1336a, des Peer-to-Peer-Managers 1350a, des internen Switch 1351a und der Operationslogikschaltung 1352a sein. Der Kürze halber wird eine redundante Beschreibung nachstehend weggelassen.
  • In jeder der Speichereinrichtungen 1301a, 1301b und 1301c kann wenigstens ein Port des ersten Ports und des zweiten Ports mit einer anderen Speichereinrichtung verbunden sein. Unterdessen kann der andere Port, der nicht mit der anderen Speichereinrichtung verbunden ist, vom ersten Port und vom zweiten Port mit dem Host verbunden sein (z. B. dem Hauptprozessor 1101).
  • Wenn zum Beispiel in der Speichereinrichtung 1301b sowohl der erste Port als auch der zweite Port mit anderen Speichereinrichtungen verbunden sind, ist die Speichereinrichtung 1301b möglicherweise nicht mit dem Host verbunden. In diesem Fall kommuniziert die Speichereinrichtung 1301b möglicherweise nicht direkt mit dem Hauptprozessor 1101. Stattdessen kann die Speichereinrichtung 1301b mit dem Hauptprozessor 1101 über die Speichereinrichtung 1301a oder 1301c kommunizieren.
  • Einige Ports der Speichereinrichtungen 1301a, 1301b und 1301c sind möglicherweise nicht mit dem Hauptprozessor 1101 verbunden. Wenn allerdings die Datenwege P21a und P27a, die auf den Hauptprozessor 1101 gerichtet sind, bereitgestellt werden, kann die Zuverlässigkeit verbessert werden. Sogar falls der Datenweg P27a eine Störung aufweist oder deaktiviert ist, kann zum Beispiel der Datenweg P21a eine Kommunikation mit dem Hauptprozessor 1101 bereitstellen.
  • 6 bis 9 sind Blockdiagramme zum Beschreiben von beispielhaften Operationen, die mit den Speichereinrichtungen 1301a, 1301b und 1301c aus der 5 verknüpft sind.
  • Die beispielhaften Operationen aus den 6 bis 9 können mit dem Fall verknüpft sein, dass der Host (z. B. der Hauptprozessor 1101) die RAID-Operation (z. B. eine Paritätsoperation) in Bezug auf die Daten D1, D2 und D3 anfordert, die in den Speichereinrichtungen 1301a, 1301b und 1301c gespeichert sind. Die Operationslogikschaltungen 1352a, 1352b und 1352c können die RAID-Operation als die Verarbeitungsoperation durchführen.
  • Mit Bezug auf 6 kann der Speicher-Controller 1331a eine Anforderung REQ aus dem Hauptprozessor 1101 über den zweiten Port der Speichereinrichtung 1301a und die Schnittstellenschaltung 1335a empfangen. Die Anforderung REQ kann an die Speichereinrichtung 1301a und eine andere Speichereinrichtung (z. B. die Speichereinrichtungen 1301b und 1301c) gerichtet sein. Zum Beispiel kann die Anforderung REQ die Berechnung der Parität anfordern, die den Daten D1, D2 und D3 entspricht.
  • Mit Bezug auf 7 kann der Speicher-Controller die Operation, die in Bezug auf die Speichereinrichtung 1301a angefordert worden ist, als Antwort auf die Anforderung REQ durchführen. Zum Beispiel kann der Speicher-Controller 1331a die Speichereinrichtung 1310a so steuern, dass die Speichereinrichtung 1310a die Daten D1 ausgibt.
  • Zusätzlich kann der Speicher-Controller Daten, die mit der Operation verknüpft sind, die in Bezug auf eine andere Speichereinrichtung angefordert wird, mit dem Peer-to-Peer-Manager 1350a über die Schnittstellenschaltung 1336a als Antwort auf die Anforderung REQ austauschen. Zum Beispiel kann der Speicher-Controller 1331a die Daten D1 dem Peer-to-Peer-Manager 1350a bereitstellen.
  • Die Operationslogikschaltung 1352a kann die Verarbeitungsoperation auf Basis des wenigstens einen Datenelements von den Daten, die in der Speichereinrichtung 1310a gespeichert sind, und/oder der Daten, die über den zweiten Port der Speichereinrichtung 1301a empfangen worden sind, durchführen. Zum Beispiel kann die Operationslogikschaltung 1352a die Verarbeitungsoperation (z. B. eine Paritätsoperation) auf Basis der Daten D1 durchführen.
  • Die Operationslogikschaltung 1352a kann die Daten D1 verarbeiten, um die verarbeiteten Daten D1' zu generieren. Die Daten D1' können in einer Operation verwendet werden, die in der Speichereinrichtung 1301b durchgeführt werden soll. Die Paritätsoperation ist nur auf einem Datenelement D1 durchgeführt worden, und die Daten D1' können identisch mit den Daten D1 sein.
  • Der interne Switch 1351a kann einen Fluss der Daten D1 und D1' managen. Der interne Switch 1351a kann die Daten D1 aus dem Speicher-Controller 1331a empfangen und die Daten D1'an den ersten Port der Speichereinrichtung 1301a ausgeben. Dementsprechend kann der Peer-to-Peer-Manager 1350a die Daten D1' an die Speichereinrichtung 1301b ohne Eingriff des Host ausgeben.
  • Die Speichereinrichtung 1301a kann mit der Speichereinrichtung 1301b über den ersten Port der Speichereinrichtung 1301a und den zweiten Port der Speichereinrichtung 1301b ohne Eingriff des Host kommunizieren. Der Speicher-Controller 1331b kann die Daten D1' aus der Speichereinrichtung 1301a über den zweiten Port der Speichereinrichtung 1301b und die Schnittstellenschaltung 1335b empfangen.
  • Mit Bezug auf 8 kann der Speicher-Controller 1331b die Operation, die in Bezug auf die Speichereinrichtung 1301b angefordert worden ist, durchführen. Zum Beispiel kann der Speicher-Controller 1331b die Speichereinrichtung 1310b so steuern, dass die Speichereinrichtung 1310b die Daten D2 ausgibt. Dazu kann der Speicher-Controller 1331b zum Beispiel Informationen, die mit den Daten D2 verknüpft sind, und die Anforderung REQ aus der Speichereinrichtung 1301a empfangen, zusammen mit dem Empfangen der Daten D1'. Der Speicher-Controller 1331b kann die Daten D1' und D2 dem Peer-to-Peer-Manager 1350b über die Schnittstellenschaltung 1336b bereitstellen.
  • Die Operationslogikschaltung 1352b kann die Verarbeitungsoperation auf Basis des wenigstens einen Datenelements von den Daten, die in der Speichereinrichtung 1310b gespeichert sind, und/oder der Daten, die über den zweiten Port der Speichereinrichtung 1301b empfangen worden sind, durchführen. Zum Beispiel kann die Operationslogikschaltung 1352b die Paritätsoperation auf Basis der Daten D1' und D2 durchführen. Die Operationslogikschaltung 1352b kann die Daten D1' und D2 verarbeiten, um die verarbeiteten Daten D2' zu generieren.
  • Die von der Operationslogikschaltung 1352a durchgeführte Paritätsoperation kann einen ersten Abschnitt (z. B. eine partielle Operation an den Daten D1) der Operation umfassen, die vom Hauptprozessor 1101 angefordert worden ist. Da die Speichereinrichtung 1301a die Daten D1' an die Speichereinrichtung 1301b ausgibt, kann die Operationslogikschaltung 1352b einen zweiten Abschnitt (z. B. eine partielle Operation an den Daten D1' und D2) der Operation durchführen, die vom Hauptprozessor 1101 angefordert worden ist. Hier überschneidet sich die Operation des zweiten Abschnitts möglicherweise nicht mit der Operation des ersten Abschnitts.
  • Da die Operationslogikschaltung 1352b die Paritätsoperation durchführt, können die Daten D2' so generiert werden, dass sie sich jeweils von den Daten D1' und den Daten D2 unterscheiden. Die Daten D2' können in einer Operation verwendet werden, die in der Speichereinrichtung 1301c durchgeführt werden soll.
  • Der interne Switch 1351b kann einen Fluss der Daten D1', D2 und D2' managen. Der interne Switch 1351b kann die Daten D1' und D2 aus dem Speicher-Controller 1331b empfangen und kann die Daten D2' an den ersten Port der Speichereinrichtung 1301b ausgeben. Der Peer-to-Peer-Manager 1350b kann die Daten D2' an die Speichereinrichtung 1301c ohne Eingriff des Host ausgeben.
  • Die Speichereinrichtung 1301b kann mit der Speichereinrichtung 1301c über den ersten Port der Speichereinrichtung 1301b und den zweiten Port der Speichereinrichtung 1301c ohne Eingriff des Host kommunizieren. Der Speicher-Controller 1331c kann die Daten D2' aus der Speichereinrichtung 1301b über den zweiten Port der Speichereinrichtung 1301c und die Schnittstellenschaltung 1335c empfangen.
  • Mit Bezug auf 9 kann der Speicher-Controller 1331c die Speichereinrichtung 1310c so steuern, dass die Speichereinrichtung 1310c die Daten D3 ausgibt. Der Speicher-Controller 1331c kann die Daten D2' und D3 dem Peer-to-Peer-Manager 1350c über die Schnittstellenschaltung 1336c bereitstellen.
  • Die Operationslogikschaltung 1352c kann die Paritätsoperation auf Basis der Daten D2' und D3 durchführen. Die Operationslogikschaltung 1352c kann eine Parität P als verarbeitete Daten generieren. Die Parität P kann ein Operationsergebnis sein, das der Anforderung REQ des Hauptprozessors 1101 entspricht.
  • Der interne Switch 1351c kann die Daten D2' und D3 aus dem Speicher-Controller 1331b empfangen und kann die Parität P an den ersten Port der Speichereinrichtung 1301c ausgeben. Die Speichereinrichtung 1301c kann die Parität P über den ersten Port der Speichereinrichtung 1301c ausgeben. Dementsprechend kann die Parität P dem Hauptprozessor 1101 bereitgestellt werden.
  • Die Operation, die vom Hauptprozessor 1101 angefordert wird, um die Parität P zu ermitteln, kann verteilt auf die Speichereinrichtungen 1301a, 1301b und 1301c durchgeführt werden. Der Hauptprozessor 1101 greift möglicherweise nicht in die Paritätsoperation ein, und somit kann die Arbeitsbelastung des Hauptprozessors 1101 reduziert sein. Jede der Operationslogikschaltungen 1352a, 1352b und 1352c kann einen Teil der Operation durchführen. Da die partiellen Operationen nacheinander durchgeführt werden, kann die Operation abgeschlossen werden, und die Parität P kann ermittelt werden.
  • 10 ist ein Blockdiagramm zur Beschreibung von beispielhaften Operationen, die mit den Speichereinrichtungen 1301a, 1301b und 1301c aus der 5 verknüpft sind.
  • In einigen Fällen ist der Datenweg P27a aus der 5 möglicherweise nicht verbunden. Zum Beispiel kann der Datenweg P27a ausgefallen oder deaktiviert sein. Zum Beispiel wird der Datenweg P27a möglicherweise nicht bereitgestellt, um eine Schaltungsausgestaltung zu vereinfachen.
  • In diesen Fällen kann die Speichereinrichtung 1301c der Speichereinrichtung 1301b die Parität P über den zweiten Port der Speichereinrichtung 1301c und den ersten Port der Speichereinrichtung 1301b bereitstellen. Auf diese Weise kann die Parität P dem Hauptprozessor 1101 über die Speichereinrichtungen 1301b und 1301a bereitgestellt werden. Die Speichereinrichtung 1301 a kann die Parität P über den zweiten Port der Speichereinrichtung 1301a an den Hauptprozessor 1101 ausgeben.
  • Eine Richtung eines Weges zum Übertragen der Parität P an den Hauptprozessor 1101 in dem Beispiel aus der 10 kann entgegengesetzt zu einer Richtung eines Weges zum Senden der Daten in dem Beispiel aus den 6 bis 9 sein. Die Schnittstellenschaltungen 1335a, 1336a, 1335b, 1336b, 1335c und 1336c und die Peer-to-Peer-Manager 1350a, 1350b und 1350c können eine bidirektionale Kommunikation unterstützen.
  • Beispiele für die Operationen sind unter Bezugnahme auf 6 bis 10 beschrieben worden. Allerdings werden die Beschreibungen bereitgestellt, um ein besseres Verständnis zu ermöglichen, und sollen die vorliegende Offenbarung nicht beschränken. Die Operationen der Speichereinrichtungen 1301a, 1301b und 1301c können verschiedenartig geändert oder modifiziert werden, um eine Peer-to-Peer-Kommunikation zwischen den Speichereinrichtungen 1301a, 1301b und 1301c bereitzustellen, um eine Verarbeitungsoperation, wie zum Beispiel die Paritätsoperation, durchzuführen. Zusätzlich versteht es sich ohne Weiteres, dass beispielhafte Ausführungsformen auch ebenso in Bezug auf die verschiedenen Verarbeitungsoperationen als auch die Paritätsoperation angewendet werden können.
  • 11 bis 12 sind Blockdiagramme, die beispielhafte Ausgestaltungen veranschaulichen, die mit den Speichereinrichtungen 1301a, 1301b und 1301c aus der 5 verknüpft sind.
  • Mit Bezug auf 11 kann der Hauptprozessor 1101 mit den Speichereinrichtungen 1301a, 1301b und 1301c über die Datenwege P21b und P27b kommunizieren. Die Speichereinrichtungen 1301a, 1301b und 1301c können miteinander auf eine Peer-to-Peer-Weise über die Datenwege P22b bis P26b kommunizieren. Die Datenwege P21b bis P27b können den Datenwegen P21a bis P27a entsprechen.
  • Anders als die beispielhaften Operationen aus den 6 bis 10 kann die Speichereinrichtung 1301c in dem Beispiel aus der 11 eine Anforderung aus dem Hauptprozessor 1101 empfangen. Der Peer-to-Peer-Manager 1350c kann eine Verarbeitungsoperation als Antwort auf die Anforderung des Hauptprozessors 1101 durchführen und kann somit dem Speicher-Controller 1331c verarbeitete Daten bereitstellen.
  • Auf diese Weise können die Peer-to-Peer-Manager 1350c, 1350b und 1350a eine Operation, die vom Hauptprozessor 1101 angefordert worden ist, verteilt durchführen, und somit kann ein Operationsergebnis generiert werden. Das Operationsergebnis kann über den Speicher-Controller der Speichereinrichtung 1301a an den Hauptprozessor 1101 ausgeben werden.
  • In einigen beispielhaften Ausführungsformen wird möglicherweise keine Operationslogikschaltung zwischen dem Hauptprozessor 1101 und dem Speicher-Controller 1331a bereitgestellt. In einigen Fällen kann zusätzliche Verarbeitung für die Daten angefordert werden, die aus dem Speicher-Controller an den Hauptprozessor 1101 ausgegeben werden. Zum Beispiel kann eine zusätzliche Paritätsoperation für verarbeitete Daten, die aus dem Peer-to-Peer-Manager 1350a bereitgestellt werden, und Daten, die in der Speichereinrichtung 1310a der Speichereinrichtung 1301a gespeichert sind, angefordert werden, und der Speicher-Controller kann die verarbeiteten Daten und die gespeicherten Daten dem Hauptprozessor 1101 bereitstellen.
  • In diesem Beispiel kann der Hauptprozessor 1101 die zusätzliche Paritätsoperation durchführen. Der Hauptprozessor 1101 greift partiell in die Verarbeitungsoperation ein, jedoch können die Peer-to-Peer-Manager 1350c, 1350b und 1350a die meisten Abschnitte der Operation durchführen. Zusätzlich greift der Hauptprozessor 1101 möglicherweise nicht in die Kommunikation zwischen den Speichereinrichtungen 1301a, 1301b und 1301c ein. Dementsprechend kann der Eingriff des Hauptprozessors 1101 minimiert sein.
  • Mit Bezug auf 12 ist in einigen Fällen der Datenweg P21b aus der 11 möglicherweise nicht verbunden. Zum Beispiel kann der Datenweg P21b ausgefallen oder deaktiviert sein. Zum Beispiel wird der Datenweg P21b möglicherweise nicht bereitgestellt, um eine Schaltungsausgestaltung zu vereinfachen. In diesem Fall kann das Operationsergebnis des Peer-to-Peer-Managers 1350a dem Hauptprozessor 1101 über die Speichereinrichtungen 1301b und 1301c bereitgestellt werden. Eine Richtung eines Weges zum Senden des Operationsergebnisses an den Hauptprozessor 1101 in dem Beispiel aus der 12 kann entgegengesetzt zu einer Richtung eines Weges zum Übertragen der Daten in dem Beispiel aus der 11 sein.
  • In Bezug auf die beispielhaften Ausführungsformen, die unter Bezugnahme auf 5 bis 12 beschrieben worden sind, kann jede der Schnittstellenschaltungen 1335a, 1336a, 1335b, 1336b, 1335c und 1336c mit dem Hauptprozessor 1101 oder nachgeschalteten Ports der Peer-to-Peer-Manager 1350a, 1350b und 1350c verbunden sein. Dementsprechend können die Schnittstellenschaltungen 1335a, 1336a, 1335b, 1336b, 1335c und 1336c so arbeiten, dass die jeweiligen Speichereinrichtungen 1301a, 1301b und 1301c als Endpunkteinrichtungen arbeiten.
  • 13 und 14 sind Blockdiagramme, die beispielhafte, mit der Speichereinrichtung 1300a aus der 1 verknüpfte Ausgestaltungen veranschaulichen.
  • Mit Bezug auf 13 kann in einigen beispielhaften Ausführungsformen die Speichereinrichtung 1300a eine Speichereinrichtung 1302a umfassen. Die Speichereinrichtung 1302a kann wenigstens eine Speichereinrichtung 1310a, einen Speicher-Controller 1332a und eine Operationslogikschaltung 1355a umfassen. Der Speicher-Controller 1332a kann eine Schnittstellenschaltung 1337a und eine variable Schnittstellenschaltung 1338a umfassen.
  • Der Speicher-Controller 1332a, die Schnittstellenschaltung 1337a und die Operationslogikschaltung 1355a können dem Speicher-Controller 1331a, der Schnittstellenschaltung 1335a bzw. der Operationslogikschaltung 1352a entsprechen. Der Speicher-Controller 1332a kann die gesamten Operationen der Speichereinrichtung 1302a steuern und managen. Die Schnittstellenschaltung 1337a kann die Kommunikation mit einer Einrichtung A (z. B. einem Host oder einer anderen Speichereinrichtung) außerhalb der Speichereinrichtung 1302a über einen zweiten Port der Speichereinrichtung 1302a unterstützen.
  • Die Operationslogikschaltung 1355a kann eine Verarbeitungsoperation durchführen, um verarbeitete Daten zu generieren. Die Operationslogikschaltung 1355a kann Daten mit einer Einrichtung B (z. B. einem Host oder einer anderen Speichereinrichtung) außerhalb der Speichereinrichtung 1302a über einen ersten Port der Speichereinrichtung 1302a austauschen. Die Operationslogikschaltung 1355a kann mit der variablen Schnittstellenschaltung 1338a verbunden sein.
  • Der interne Switch 1351a und die Operationslogikschaltung 1352a, die unter Bezugnahme auf 5 bis 12 beschrieben worden sind, können auf einer einzigen Komponente implementiert sein (z. B. einer einzigen FPGA-Leiterplatte, einem einzelnen Chip oder dergleichen). Allerdings können in einigen beispielhaften Ausführungsformen der interne Switch 1351a und die Operationslogikschaltung 1352a in separaten Komponenten implementiert sein (z. B. separaten Chips, separaten Schaltungen oder dergleichen). Wenn der interne Switch 1351a von der Operationslogikschaltung 1352a getrennt ist, kann der interne Switch 1351a in einigen beispielhaften Ausführungsformen innerhalb des Speicher-Controllers implementiert sein.
  • Zum Beispiel kann die variable Schnittstellenschaltung 1338a des Speicher-Controllers 1332a Ausgestaltungen des internen Switch 1351a umfassen und kann Operationen des internen Switch 1351a durchführen. Die variable Schnittstellenschaltung 1338a kann in einem Operationsmodus arbeiten, der aus mehreren Operationsmodi ausgewählt wird. Der Operationsmodus kann auf Basis davon, ob der erste Port der Speichereinrichtung 1302a mit der Einrichtung B verbunden ist, und einer Art der verbundenen Einrichtung B ausgewählt werden.
  • Zum Beispiel kann der Operationsmodus der variablen Schnittstellenschaltung 1338a einen Endpunkt-Operationsmodus umfassen, der mit einer Operation einer Endpunkteinrichtung verknüpft ist (um z. B. die Speichereinrichtung 1302a zu unterstützen, so dass die Speichereinrichtung 1302a als eine Endpunkteinrichtung arbeitet). Zum Beispiel kann der Operationsmodus der variablen Schnittstellenschaltung 1338a einen Switch-Operationsmodus umfassen, der mit der Kommunikation mit der Einrichtung B verknüpft ist (um z. B. die Kommunikation mit der Einrichtung B zu unterstützen).
  • Dazu kann die variable Schnittstellenschaltung 1338a eine Hardware-Schaltung einer physikalischen Schicht und/oder einer logischen Schicht umfassen, die dazu ausgelegt ist, Daten, ein Signal und/oder ein Paket zu senden bzw. zu empfangen. Zusätzlich kann die variable Schnittstellenschaltung 1338a eine Hardware-Schaltung eines Root-Complex und/oder einen Switch umfassen, um den Datenaustausch mit der Einrichtung B zu managen. Die variable Schnittstellenschaltung 1338a kann auf Basis des ausgewählten Operationsmodus unterschiedlich arbeiten.
  • Mit Bezug auf 14 kann in einigen beispielhaften Ausführungsformen die Speichereinrichtung 1300a eine Speichereinrichtung 1303a umfassen. Die Speichereinrichtung 1303a kann wenigstens eine Speichereinrichtung 1310a und einen Speicher-Controller 1333a umfassen. Der Speicher-Controller 1333a kann die Schnittstellenschaltung 1337a, die variable Schnittstellenschaltung 1338a und eine eingebettete Operationslogikschaltung 1339a umfassen. Der Speicher-Controller 1333a kann dem Speicher-Controller entsprechen und kann die gesamten Operationen der Speichereinrichtung 1303a steuern und managen.
  • Die Schnittstellenschaltung 1337a kann mit einem zweiten Port der Speichereinrichtung 1303a verbunden sein und die Kommunikation mit einer Einrichtung A über den zweiten Port der Speichereinrichtung 1303a unterstützen. Die variable Schnittstellenschaltung 1338a kann mit einem ersten Port der Speichereinrichtung 1303a verbunden sein und die Kommunikation mit einer Einrichtung B über den ersten Port der Speichereinrichtung 1303a unterstützen. Die variable Schnittstellenschaltung 1338a kann in einem Operationsmodus arbeiten, der auf Basis davon, ob der erste Port der Speichereinrichtung 1303a mit der Einrichtung B verbunden ist, und einer Art der verbundenen Einrichtung B ausgewählt wird.
  • In einigen beispielhaften Ausführungsformen kann die Operationslogikschaltung 1352a oder 1355a auch innerhalb des Speicher-Controllers 1331a implementiert sein. Zum Beispiel kann die eingebettete Operationslogikschaltung 1339a des Speicher-Controllers 1333a Ausgestaltungen der Operationslogikschaltung 1352a oder 1355a umfassen und Operationen der Operationslogikschaltung 1352a oder 1355a durchführen.
  • Die Schnittstellenschaltung 1337a, die variable Schnittstellenschaltung 1338a und die eingebettete Operationslogikschaltung 1339a können miteinander über einen internen Bus des Speicher-Controllers 1333a kommunizieren. Zum Beispiel kann die eingebettete Operationslogikschaltung 1339a in einer Form einer eingebetteten FPGA oder von eingebetteten ASICs implementiert sein. Zum Beispiel kann die eingebettete Operationslogikschaltung 1339a in einer rekonfigurierbaren Logikschaltung implementiert sein.
  • Die eingebettete Operationslogikschaltung 1339a kann eine Verarbeitungsoperation durchführen. Die eingebettete Operationslogikschaltung 1339a kann Daten verarbeiten, die über den ersten Port der Speichereinrichtung 1303a empfangen worden sind, um verarbeitete Daten zu generieren, die über den zweiten Port der Speichereinrichtung 1303a ausgegeben werden sollen. Die eingebettete Operationslogikschaltung 1339a kann Daten verarbeiten, die über den zweiten Port der Speichereinrichtung 1303a empfangen worden sind, um verarbeitete Daten zu generieren, die über den ersten Port der Speichereinrichtung 1303a ausgegeben werden sollen.
  • 15 ist ein Blockdiagramm, das eine beispielhafte, mit den Speichereinrichtungen 1300a, 1300b und 1300c aus der 1 verknüpfte Ausgestaltung veranschaulicht.
  • In einigen beispielhaften Ausführungsformen können die Speichereinrichtungen 1300a, 1300b und 1300c die Speichereinrichtungen 1303a, 1303b bzw. 1303c umfassen. Jede der Speichereinrichtungen 1303a, 1303b und 1303c kann in einer Dual-Port-Struktur implementiert sein, und die Speichereinrichtungen 1303a, 1303b und 1303c können miteinander in einer Peer-to-Peer-Weise ohne Eingriff des Host (z. B. des Hauptprozessors 1101) kommunizieren.
  • Die Speichereinrichtung 1303b kann wenigstens eine Speichereinrichtung 1310b und einen Speicher-Controller 1333b umfassen. Der Speicher-Controller 1333b kann eine Schnittstellenschaltung 1337b, eine variable Schnittstellenschaltung 1338b und eine eingebettete Operationslogikschaltung 1339b umfassen. Ausgestaltungen und Operationen des Speicher-Controllers 1333b, der Schnittstellenschaltung 1337b, der variablen Schnittstellenschaltung 1338b und der eingebetteten Operationslogikschaltung 1339b können im Wesentlichen mit denen des Speicher-Controllers 1333a, der Schnittstellenschaltung 1337a, der variablen Schnittstellenschaltung 1338a und der eingebetteten Operationslogikschaltung 1339a identisch oder diesen ähnlich sein.
  • Die Speichereinrichtung 1303c kann wenigstens eine Speichereinrichtung 1310c und einen Speicher-Controller 1333c umfassen. Der Speicher-Controller 1333c kann eine Schnittstellenschaltung 1337c, eine variable Schnittstellenschaltung 1338c und eine eingebettete Operationslogikschaltung 1339c umfassen. Ausgestaltungen und Operationen des Speicher-Controllers 1333c, der Schnittstellenschaltung 1337c, der variablen Schnittstellenschaltung 1338c und der eingebetteten Operationslogikschaltung 1339c können im Wesentlichen mit denen des Speicher-Controllers 1333a, der Schnittstellenschaltung 1337a, der variablen Schnittstellenschaltung 1338a und der eingebetteten Operationslogikschaltung 1339a identisch oder diesen ähnlich sein. Der Kürze halber wird eine redundante Beschreibung nachstehend weggelassen.
  • Die Schnittstellenschaltung 1337a kann mit dem zweiten Port der Speichereinrichtung 1303a verbunden sein. Der zweite Port der Speichereinrichtung 1303a kann einen Datenweg P21c zwischen dem Speicher-Controller 1333a und dem Hauptprozessor 1101 bereitstellen. Dementsprechend kann die Speichereinrichtung 1303a mit dem Hauptprozessor 1101 kommunizieren und Daten mit dem Hauptprozessor 1101 über den Datenweg P21c austauschen.
  • Die eingebettete Operationslogikschaltung 1339a kann eine Verarbeitungsoperation auf Basis des wenigstens einen Datenelements von den Daten, die in der Speichereinrichtung 1310a gespeichert sind, und/oder der Daten, die über den zweiten Port (oder den ersten Port) der Speichereinrichtung 1303a empfangen worden sind, durchführen. Die eingebettete Operationslogikschaltung 1339a kann die Verarbeitungsoperation durchführen, um verarbeitete Daten zu generieren. Die verarbeiteten Daten können an eine andere Einrichtung (z. B. den Hauptprozessor 1101, die Speichereinrichtung 1303b und/oder dergleichen) über den ersten Port (oder den zweiten Port) der Speichereinrichtung 1303a ausgegeben werden.
  • Die variable Schnittstellenschaltung 1338a kann mit dem ersten Port der Speichereinrichtung 1303a verbunden sein. Die Schnittstellenschaltung 1337b kann mit dem zweiten Port der Speichereinrichtung 1303b verbunden sein. Der erste Port der Speichereinrichtung 1303a und der zweite Port der Speichereinrichtung 1303b können einen Datenweg P22c zwischen dem Speicher-Controller 1333a und dem Speicher-Controller 1333b bereitstellen. Dementsprechend kann die Speichereinrichtung 1303a mit der Speichereinrichtung 1303b kommunizieren und kann Daten mit der Speichereinrichtung 1303b in einer Peer-to-Peer-Weise ohne Eingriff des Hauptprozessors 1101 austauschen.
  • Die eingebettete Operationslogikschaltung 1339b kann eine Verarbeitungsoperation auf Basis des wenigstens einen Datenelements von den Daten, die in der Speichereinrichtung 1310b gespeichert sind, und/oder von Daten, die über den zweiten Port (oder den ersten Port) der Speichereinrichtung 1303b empfangen worden sind, durchführen. Die eingebettete Operationslogikschaltung 1339b kann die Verarbeitungsoperation durchführen, um verarbeitete Daten zu generieren. Die verarbeiteten Daten können an eine andere Einrichtung (z. B. die Speichereinrichtung 1303a oder 1303c) über den ersten Port (oder den zweiten Port) der Speichereinrichtung 1303b ausgegeben werden.
  • Gleichermaßen können der erste Port der Speichereinrichtung 1303b und der zweite Port der Speichereinrichtung 1303c einen Datenweg P24c zwischen dem Speicher-Controller 1333b und dem Speicher-Controller 1333c bereitstellen. Die Speichereinrichtung 1303b kann mit der Speichereinrichtung 1303c kommunizieren und Daten mit der Speichereinrichtung 1303c über die variable Schnittstellenschaltung 1338b, den Datenweg P24c und die Schnittstellenschaltung 1337c auf eine Peer-to-Peer-Weise ohne Eingriff des Hauptprozessors 1101 austauschen.
  • Der erste Port der Speichereinrichtung 1303c kann einen Datenweg P27c zwischen dem Speicher-Controller 1333c und dem Hauptprozessor 1101 bereitstellen. Die Speichereinrichtung 1303c kann mit dem Hauptprozessor 1101 kommunizieren und Daten mit dem Hauptprozessor 1101 über die variable Schnittstellenschaltung 1338c und den Datenweg P27c austauschen. Die eingebettete Operationslogikschaltung 1339c kann verarbeitete Daten auf Basis von wenigstens einem Datenelement von Daten, die über den ersten Port und/oder den zweiten Port der Speichereinrichtung 1303c empfangen worden sind, und von Daten, die in der Speichereinrichtung 1310c gespeichert worden sind, generieren.
  • Zum Beispiel kann der Speicher-Controller 1333a über die Schnittstellenschaltung 1337a eine Anforderung empfangen, die an die Speichereinrichtungen 1303a, 1303b und 1303c gerichtet ist. Der Speicher-Controller 1333a kann die Operation, die in Bezug auf die Speichereinrichtung 1303a angefordert worden ist, durchführen. Der Speicher-Controller 1333a kann über die variable Schnittstellenschaltung 1338a Daten ausgeben oder empfangen, die mit der Operation verknüpft sind, die in Bezug auf die Speichereinrichtungen 1303b und 1303c angefordert worden ist.
  • Die eingebetteten Operationslogikschaltungen 1339a, 1339b und 1339c können die Operation verteilt durchführen, die vom Hauptprozessor 1101 angefordert worden ist. Dementsprechend kann der Speicher-Controller 1333c Daten eines Operationsergebnisses, das der Anforderung des Hauptprozessors 1101 entspricht, an den Hauptprozessor 1101 über die variable Schnittstellenschaltung 1338c ausgeben. In einigen Fällen kann der Speicher-Controller 1333c Daten oder eine Anforderung aus dem Hauptprozessor 1101 über die variable Schnittstellenschaltung 1338c empfangen.
  • Die Operationen und Ausgestaltungen der Speichereinrichtungen 1303a, 1303b und 1303c können denen ähnlich sein, die unter Bezugnahme auf 5 bis 12 beschrieben werden. In einigen Fällen werden die Datenwege P21c oder P27c möglicherweise nicht bereitgestellt, und die Speicher-Controller 1333a, 1333b und 1333c können eine bidirektionale Kommunikation unterstützen. 15 veranschaulicht eine Ausgestaltung, die mit der Speichereinrichtung 1303a aus der 14 verknüpft ist, jedoch versteht sich ohne Weiteres, dass die Speichereinrichtung 1302a aus der 13 ebenfalls in einer ähnlichen Weise eingesetzt werden kann, wie die, die unter Bezugnahme auf 5 bis 12 und 15 beschrieben worden sind.
  • Jede der Schnittstellenschaltungen 1337a, 1337b und 1337c kann mit dem Hauptprozessor 1101 oder einem nachgeschalteten Port verbunden sein. Die Schnittstellenschaltungen 1337a, 1337b und 1337c können im Endpunkt-Operationsmodus arbeiten. Die variable Schnittstellenschaltung 1338c kann mit dem Hauptprozessor 1101 verbunden sein und somit im Endpunkt-Operationsmodus arbeiten. Da die variable Schnittstellenschaltung 1338c im Endpunkt-Operationsmodus arbeitet, kann der erste Port der Speichereinrichtung 1303c als ein nachgeschalteter Port verstanden werden.
  • Die variablen Schnittstellenschaltungen 1338a und 1338b können jeweils mit den Speichereinrichtungen 1303b und 1303c verbunden sein. Jede der variablen Schnittstellenschaltungen 1338a und 1338b kann im Switch-Operationsmodus arbeiten, um die Kommunikation mit einer externen Speichereinrichtung zu unterstützen. Im Switch-Operationsmodus können die variablen Schnittstellenschaltungen 1338a und 1338b eine Funktion eines Root-Complex und/oder eines Switch bereitstellen, um den Datenaustausch zu managen. Da die variablen Schnittstellenschaltungen 1338a und 1338b im Switch-Operationsmodus arbeiten, kann der erste Port jeder der Speichereinrichtungen 1303a und 1303b als ein vorgeschalteter Port verstanden werden.
  • 15 veranschaulicht, dass jede der Speichereinrichtungen 1303a, 1303b und 1303c eine variable Schnittstellenschaltung umfasst. In einigen beispielhaften Ausführungsformen kann jede der Speichereinrichtungen 1303a, 1303b und 1303c zwei variable Schnittstellenschaltungen umfassen. Zum Beispiel kann die Schnittstellenschaltung 1337a der Speichereinrichtung 1303a auch in einer variablen Schnittstellenschaltung implementiert sein. In diesem Fall kann die Schnittstellenschaltung 1337a eine Kommunikation mit einer externen Speichereinrichtung ebenso wie die Kommunikation mit dem Hauptprozessor 1101 unterstützen, und somit kann die Flexibilität für die Verbindung der Speichereinrichtung 1303a verbessert sein.
  • 16 ist ein Flussdiagramm, das eine beispielhafte Operation der variablen Schnittstellenschaltung aus der 15 beschreibt.
  • Wenn die Stromversorgung an eine Speichereinrichtung angeschlossen ist und die Speichereinrichtung eingeschaltet ist, kann die Speichereinrichtung eine Ausgestaltung initialisieren (S110). Zum Beispiel kann die Speichereinrichtung während einer Hochlaufoperation Zustände von Komponenten, einen Zustand der Verbindung zu einer externen Einrichtung, einen eingestellten Wert und/oder dergleichen erkennen und kon-Fig.ieren.
  • Danach kann die Speichereinrichtung einen Kopplungszustand mit der verbundenen externen Einrichtung einstellen (S120). Der Kopplungszustand kann bereitgestellt werden, damit die gegenüberliegende Einrichtung erkannt wird, und einen Umstand für die Kommunikation mit der gegenüberliegenden Einrichtung einrichten. Um den Kopplungszustand einzustellen, kann die Speichereinrichtung der externen Einrichtung Informationen (z. B. eine Einrichtungsart, eine Kommunikationsfähigkeit, eine Ausgestaltung einer Sender-/Empfängerschaltung und/oder dergleichen) über die Speichereinrichtung bereitstellen und Informationen über die externe Einrichtung aus der externen Einrichtung empfangen.
  • Gemäß dem Kopplungszustand kann die Speichereinrichtung die Informationen der verbundenen externen Einrichtung beziehen (S130). Zum Beispiel kann die Speichereinrichtung 1303a erkennen, dass eine externe Einrichtung, die über die variable Schnittstellenschaltung 1338a verbunden ist, eine andere Speichereinrichtung 1303b ist, und die Speichereinrichtung 1303c kann erkennen, dass eine externe Einrichtung, die über die variable Schnittstellenschaltung 1338c verbunden ist, der Hauptprozessor 1101 ist. In einigen beispielhaften Ausführungsformen kann die Speichereinrichtung ungeachtet des Kopplungszustands eine Art einer externen Einrichtung über einen zusätzlichen Pin erkennen (z. B. einen universellen Eingabe-/Ausgabe- (General Purpose Input/Output, GPIO-) Pin).
  • Die Speichereinrichtung kann einen Operationsmodus einer Schnittstellenschaltung auf Basis der Informationen der verbundenen externen Einrichtung auswählen (S140). Zum Beispiel kann der Speicher-Controller 1333a die variable Schnittstellenschaltung 1338a steuern, damit sie als Antwort auf die Verbindung zu einer anderen Speichereinrichtung 1303b im Switch-Operationsmodus arbeitet, und der Speicher-Controller 1333c kann die variable Schnittstellenschaltung 1338c steuern, damit sie als Antwort auf die Verbindung zum Hauptprozessor 1101 im Endpunkt-Operationsmodus arbeitet.
  • 17 ist ein Flussdiagramm, das eine beispielhafte Operation der variablen Schnittstellenschaltung aus der 15 beschreibt.
  • Zum Beispiel kann eine variable Schnittstellenschaltung zuerst versuchen, im Switch-Operationsmodus zu arbeiten. Im versuchten Switch-Operationsmodus kann die variable Schnittstellenschaltung ein Testsignal senden (S210). Das Testsignal kann so ausgelegt sein, dass es dazu geeignet ist, zu identifizieren, ob eine externe Einrichtung an die variable Schnittstellenschaltung angeschlossen ist und eine Art der externen Einrichtung. Bei einem anderen Beispiel kann die variable Schnittstellenschaltung zuerst versuchen, im Endpunkt-Operationsmodus zu arbeiten, und ein Testsignal senden.
  • Die variable Schnittstellenschaltung oder ein Speicher-Controller kann bestimmen, ob eine Antwort entsprechend dem Testsignal empfangen wird (S220). Wenn keine Antwort empfangen wird (Nein auf S220), kann dies bedeuten, dass die variable Schnittstellenschaltung nicht mit der externen Einrichtung verbunden ist. In diesem Fall kann die variable Schnittstellenschaltung im Endpunkt-Operationsmodus arbeiten oder abgeschaltet werden (S240). Das Abschalten kann einen Zustand bedeuten, in dem eine vorgesehene Funktion oder Operation nicht durchgeführt wird, wenn keine Stromversorgung angeschlossen ist.
  • Wenn eine Antwort empfangen wird (Ja auf S220), kann dies bedeuten, dass die variable Schnittstellenschaltung mit der externen Einrichtung verbunden ist. Zum Beispiel kann eine Antwort aus einer Endpunkteinrichtung (z. B. einer Speichereinrichtung) so implementiert sein, dass sie sich von einer Antwort aus einem Host (z. B. dem Hauptprozessor 1101) unterscheidet. In diesem Fall kann die variable Schnittstellenschaltung oder der Speicher-Controller eine Art der externen Einrichtung entsprechend der Antwort bestimmen (kann z. B. bestimmen, ob die Antwort mit der Endpunkteinrichtung oder dem Host verknüpft ist) (S230).
  • Wenn die Antwort mit der Endpunkteinrichtung (Ja auf S230) verknüpft ist, kann die variable Schnittstellenschaltung im Switch-Operationsmodus arbeiten (S250). Zum Beispiel kann die variable Schnittstellenschaltung 1338a im Switch-Operationsmodus auf Basis der Antwort aus der Speichereinrichtung 1303b eine Operation eines Root-Complex und/oder eines Switch bereitstellen.
  • Wenn die Antwort mit dem Host (Nein auf S230) verknüpft ist, kann die variable Schnittstellenschaltung im Endpunkt-Operationsmodus arbeiten (S260). Zum Beispiel kann die variable Schnittstellenschaltung 1338c die Kommunikation mit der Endpunkteinrichtung im Endpunkt-Operationsmodus auf Basis der Antwort aus dem Hauptprozessor 1101 unterstützen.
  • 18 ist ein Blockdiagramm, das eine beispielhafte, mit den Speichereinrichtungen 1300a, 1300b und 1300c aus der 1 verknüpfte Ausgestaltung veranschaulicht.
  • In einigen beispielhaften Ausführungsformen können die Speichereinrichtungen 1300a, 1300b und 1300c die Speichereinrichtungen 1304a, 1301b, 1301c, 1304d und 1304e umfassen. Ähnlich wie in der beispielhaften Ausgestaltung aus der 5 können die Speichereinrichtungen 1304a, 1301b und 1301c miteinander verbunden sein und miteinander auf eine Peer-to-Peer-Weise kommunizieren.
  • Zum Beispiel kann ein Peer-to-Peer-Manager 1357a drei nachgeschaltete Ports umfassen. Zwei nachgeschaltete Ports der drei nachgeschalteten Ports können mit den Speicher-Controllern 1331a bzw. 1331b verbunden sein. Der andere nachgeschaltete Port der drei nachgeschalteten Ports kann mit einem Speicher-Controller 1331d der Speichereinrichtung 1304d verbunden sein.
  • Ähnlich der Verbindung zwischen den Speichereinrichtungen 1304a, 1301b, 1301c können die Speichereinrichtungen 1304a, 1304d und 1304e miteinander verbunden sein und miteinander auf eine Peer-to-Peer-Weise kommunizieren. Ein Peer-to-Peer-Manager 1350d kann mit den Speicher-Controllern 1331d und 1331e über zwei nachgeschaltete Ports verbunden sein. Ein Peer-to-Peer-Manager 1350e kann mit dem Speicher-Controller 1331e und dem Hauptprozessor 1101 über die beiden nachgeschalteten Ports verbunden sein.
  • Die Peer-to-Peer-Manager 1357a, 1350b, 1350c, 1350d und 1350e können einen Datenfluss managen und können eine Operation, die vom Hauptprozessor 1101 angefordert worden ist, verteilt durchführen. Es versteht sich ohne Weiteres, dass die Verbindung zwischen den Speichereinrichtungen abhängig von der Anzahl an nachgeschalteten Ports, die in jedem Peer-to-Peer-Manager enthalten sind, verschiedenartig geändert oder modifiziert werden kann. Solche Änderungen oder Modifikationen können gleichermaßen auf die beispielhaften Ausgestaltungen angewendet werden, die unter Bezugnahme auf 13 bis 15 beschrieben werden.
  • 19 ist ein konzeptionelles Diagramm, das eine mit einem elektronischen System 1000 aus der 1 verknüpfte beispielhafte Implementierungsform veranschaulicht.
  • Zum Beispiel kann das elektronische System 1000 in einem Server 1000c implementiert sein. Die Speichereinrichtungen 1300a, 1300b und 1300c können in einer Dual-Port-Struktur implementiert sein und mit dem Server 1000c verbunden oder in diesem eingesetzt sein.
  • Der Verbinder 1390a der Speichereinrichtung 1300a kann über ein Kabel P21d und einen Verbinder 1007a mit einer Rückwandplatine 1007 verbunden sein. 19 veranschaulicht eine Verbindung, die über das Kabel P21d implementiert ist. Allerdings kann der Verbinder 1390a in einigen beispielhaften Ausführungsformen direkt mit dem Verbinder 1007a verbunden sein.
  • Der Verbinder 1395a der Speichereinrichtung 1300a kann über ein Kabel P22d mit einem Verbinder 1390b der Speichereinrichtung 1300b verbunden sein. Ein Verbinder 1395b der Speichereinrichtung 1300b kann über ein Kabel P24d mit einem Verbinder 1390c der Speichereinrichtung 1300c verbunden sein. Ein Verbinder 1395c der Speichereinrichtung 1300c kann über ein Kabel P27d und einen Verbinder 1007c mit der Rückwandplatine 1007 verbunden sein; in einigen beispielhaften Ausführungsformen ist der Verbinder 1395c möglicherweise nicht mit der Rückwandplatine 1007 verbunden.
  • Auf diese Weise können die Speichereinrichtungen 1300a, 1300b und 1300c miteinander auf eine Peer-to-Peer-Weise kommunizieren. Die Peer-to-Peer-Verbindung zwischen den Speichereinrichtungen 1300a, 1300b und 1300c kann vollständig von der Rückwandplatine 1007 getrennt sein. Dementsprechend greift der Hauptprozessor 1101 möglicherweise nicht in die Kommunikation zwischen den Speichereinrichtungen 1300a, 1300b und 1300c ein.
  • Der Hauptprozessor 1101 kann über leitfähige Leitungen L21 mit der Rückwandplatine 1007 verbunden sein und kann somit mit der Speichereinrichtung 1300a kommunizieren. Der Hauptprozessor 1101 kann mit der Speichereinrichtung 1300c über leitfähige Leitungen L27 kommunizieren; in einigen Fällen werden die leitfähigen Leitungen L27 möglicherweise nicht bereitgestellt.
  • Die obigen Beschreibungen sollen beispielhafte Ausgestaltungen und Operationen zum Implementieren der vorliegenden Offenbarung bereitstellen. Die vorliegende Offenbarung kann, zusätzlich zu den oben beschriebenen beispielhaften Ausführungsformen, Implementierungen umfassen, die durch einfaches Ändern oder Modifizieren der oben beschriebenen beispielhaften Ausführungsformen erreicht werden können. Die vorliegende Offenbarung kann auch Implementierungen umfassen, die durch einfaches Ändern oder Modifizieren der oben beschriebenen beispielhaften Ausführungsformen in der Zukunft erreicht werden können.
  • 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
    • KR 1020170154281 [0001]
    • KR 1020180079419 [0001]

Claims (25)

  1. Speichereinrichtung, umfassend: eine Universalschaltkreis (FPGA)-Leiterplatte (1350a), die mit einem ersten Port der Speichereinrichtung verbunden ist; und einen Speicher-Controller (1331a), der eine erste Schnittstellenschaltung (1336a) und eine zweite Schnittstellenschaltung (1335a) umfasst, wobei die erste Schnittstellenschaltung (1336a) mit der FPGA-Leiterplatte (1350a) verbunden ist, wobei die zweite Schnittstellenschaltung (1335a) mit einem zweiten Port der Speichereinrichtung (1301a) verbunden ist, wobei wenigstens ein Port von dem ersten Port und dem zweiten Port mit einer externen Speichereinrichtung (1301b) verbunden sein soll und wobei die FPGA-Leiterplatte (1350a) dazu ausgelegt ist, einen Weg zum Übertragen von Daten in einer Peer-to-Peer-Weise zwischen dem Speicher-Controller (1331a) und der externen Speichereinrichtung (1301b) ohne Eingriff eines Host bereitzustellen.
  2. Speichereinrichtung nach Anspruch 1, wobei die Speichereinrichtung ein Dual-Port-Festkörperlaufwerk (SSD) umfasst, um Daten über den ersten Port und den zweiten Port zu senden und zu empfangen, und wobei die FPGA-Leiterplatte (1350a) getrennt vom Speicher-Controller (1331a) im Inneren eines Gerätes der Dual-Port-SSD implementiert ist.
  3. Speichereinrichtung nach Anspruch 1, wobei ein Port von dem ersten Port und dem zweiten Port, der nicht mit der externen Speichereinrichtung (1301b) verbunden ist, dazu ausgelegt ist, sich mit dem Host (1101) zu verbinden.
  4. Speichereinrichtung nach Anspruch 1, wobei der Speicher-Controller (1331a) des Weiteren ausgelegt ist: eine Anforderung (REQ), die an die Speichereinrichtung (1301a) und die externe Speichereinrichtung (1301b) gerichtet ist, über den zweiten Port und die zweite Schnittstellenschaltung (1335a) zu empfangen, auf Basis der Anforderung (REQ) eine erste Operation, die in Bezug auf die Speichereinrichtung (1301a) angefordert worden ist, durchzuführen und Daten (D1), die mit einer zweiten Operation verknüpft sind, die von der externen Speichereinrichtung (1301b) auf Basis der Anforderung mit der FPGA-Leiterplatte (1350a) durchgeführt worden ist, über die erste Schnittstellenschaltung (1336a) auszutauschen.
  5. Speichereinrichtung nach Anspruch 4, wobei die FPGA-Leiterplatte (1350a) dazu ausgelegt ist, Daten (D1') mit der externen Speichereinrichtung (1301b) über den ersten Port auf Basis der mit dem Speicher-Controller (1331a) ausgetauschten Daten (D1) zu senden und zu empfangen.
  6. Speichereinrichtung nach Anspruch 1, wobei die FPGA-Leiterplatte (1350a) einen internen Root-Complex (1351a) umfasst, der dazu ausgelegt ist, einen Datenfluss zwischen dem Speicher-Controller (1331a) und dem ersten Port zu managen.
  7. Speichereinrichtung nach Anspruch 1, wobei die FPGA-Leiterplatte (1350a) eine Operationslogikschaltung (1352a) umfasst, die dazu ausgelegt ist, Daten (D1'), die über den ersten Port ausgegeben werden sollen, durch Verarbeiten von Daten (D1) zu generieren, die aus dem Speicher-Controller (1331a) empfangen worden sind, oder Daten, die dem Speicher-Controller (1331a) bereitgestellt werden sollen, durch Verarbeiten von Daten zu generieren, die über den ersten Port empfangen worden sind.
  8. Speichereinrichtung, umfassend: einen Speicher-Controller (1333a), der eine erste Schnittstellenschaltung (1338a) und eine zweite Schnittstellenschaltung (1337a) umfasst, wobei die erste Schnittstellenschaltung (1338a) mit einem ersten Port der Speichereinrichtung (1303a) verbunden ist, und die zweite Schnittstellenschaltung (1337a) mit einem zweiten Port der Speichereinrichtung (1303a) verbunden ist; und eine Speichereinrichtung (1310a), die unter der Steuerung des Speicher-Controllers arbeiten (1333a) soll, wobei die erste Schnittstellenschaltung (1338a) dazu ausgelegt ist, auf Basis davon, ob der erste Port mit einer externen Einrichtung verbunden ist und einer Art der externen Einrichtung, die mit dem ersten Port verbunden ist, in mehreren Operationsmodi zu arbeiten, und wobei der Speicher-Controller (1333a) dazu ausgelegt ist, Daten mit einer externen Speichereinrichtung (1303b), die mit dem ersten Port auf eine Peer-to-Peer-Weise verbunden ist, ohne Eingriff eines Host (1101) auszutauschen.
  9. Speichereinrichtung nach Anspruch 8, wobei die mehreren Operationsmodi einen ersten Operationsmodus und einen zweiten Operationsmodus umfassen, wobei die erste Schnittstellenschaltung (1338a) dazu ausgelegt ist, auf Basis davon, dass die externe Einrichtung eine Endpunkteinrichtung ist, in dem ersten Operationsmodus zu arbeiten und wobei die erste Schnittstellenschaltung (1338a) dazu ausgelegt ist, auf Basis davon, dass die externe Einrichtung eine externe Speichereinrichtung (1303b) ist, in dem zweiten Operationsmodus zu arbeiten.
  10. Speichereinrichtung nach Anspruch 9, wobei die erste Schnittstellenschaltung (1338a) dazu ausgelegt ist, im zweiten Operationsmodus Daten zwischen dem Speicher-Controller (1333a) und der externen Speichereinrichtung (1303b) über den ersten Port zu senden und zu empfangen.
  11. Speichereinrichtung nach Anspruch 9, wobei der Speicher-Controller (1333a) dazu ausgelegt ist, im ersten Operationsmodus Daten mit dem Host (1101) über die erste Schnittstellenschaltung und den ersten Port zu senden und zu empfangen.
  12. Speichereinrichtung nach Anspruch 9, wobei die erste Schnittstellenschaltung (1338a) im ersten Operationsmodus arbeitet oder abgeschaltet wird, wenn der erste Port nicht mit der externen Einrichtung verbunden ist.
  13. Speichereinrichtung nach Anspruch 8, wobei der Speicher-Controller (1333a), wenn der erste Port mit der externen Einrichtung verbunden ist, ausgelegt ist: eine Anforderung, die an die Speichereinrichtung (1303a) und die externe Speichereinrichtung (1303b) gerichtet ist, über den zweiten Port und die zweite Schnittstellenschaltung (1337a) zu empfangen, und auf Basis der Anforderung eine erste Operation, die in Bezug auf die Speichereinrichtung (1303a) angefordert worden ist, durchzuführen und Daten, die mit einer zweiten Operation verknüpft sind, die von der externen Speichereinrichtung (1303b) auf Basis der Anforderung durchgeführt worden ist, über die erste Schnittstellenschaltung (1338a) und den ersten Port zu senden und zu empfangen.
  14. Speichereinrichtung nach Anspruch 8, wobei der Speicher-Controller (1333a) des Weiteren ein eingebettetes FPGA (1339a) umfasst, das dazu ausgelegt ist, Daten zu generieren, die über den zweiten Port ausgegeben werden sollen, indem Daten verarbeitet werden, die über den ersten Port empfangen worden sind, oder Daten zu generieren, die über den ersten Port ausgegeben werden sollen, indem Daten verarbeitet werden, die über den zweiten Port empfangen worden sind.
  15. Speichereinrichtung, umfassend: einen Speicher-Controller (1331a), der zwischen einem ersten Port der Speichereinrichtung (1301a) und einem zweiten Port der Speichereinrichtung (1301a) zwischengeschaltet ist, und eine Operationslogikschaltung (1352a), die dazu ausgelegt ist, verarbeitete Daten (D1') zu generieren, indem eine Verarbeitungsoperation auf Basis von Daten (D1), die aus dem Speicher-Controller (1331a) oder dem zweiten Port empfangen worden sind, durchgeführt wird, wobei die Speichereinrichtung (1301a) dazu ausgelegt ist, wenn der erste Port mit einer externen Speichereinrichtung (1301b) verbunden ist, die verarbeiteten Daten (D1') an die externe Speichereinrichtung (1301b) über den ersten Port ohne Eingriff eines Host (1101) auszugeben.
  16. Speichereinrichtung nach Anspruch 15, wobei die verarbeiteten Daten (D1') so generiert werden, dass sie sich von den empfangenen Daten (D1) unterscheiden.
  17. Speichereinrichtung nach Anspruch 15, wobei die von der Operationslogikschaltung (1352a) durchgeführte Verarbeitungsoperation einen ersten Abschnitt einer durch den Host (1101) angeforderten Operation umfasst.
  18. Speichereinrichtung nach Anspruch 17, wobei die Speichereinrichtung (1331a) dazu ausgelegt ist, die verarbeiteten Daten (D1') an die externe Speichereinrichtung (1301b) auszugeben, so dass die externe Speichereinrichtung (1301b) einen zweiten Abschnitt der durch den Host (1101) angeforderten Operation auf Basis der verarbeiteten Daten (D1') durchführt, und wobei der zweite Abschnitt sich nicht mit dem ersten Abschnitt überschneidet.
  19. Speichereinrichtung, umfassend: eine Speichereinrichtung (1301b), einen Speicher-Controller (1331b), der zwischen einem ersten Port der Speichereinrichtung (1301b) und einem zweiten Port der Speichereinrichtung (1301b) zwischengeschaltet ist, und wobei die Speichereinrichtung (1301b) dazu ausgelegt ist, wenn der erste Port mit einer externen Speichereinrichtung (1301c) verbunden ist, erste Daten (D2') an die externe Speichereinrichtung (1301c) über den ersten Port ohne Eingriff eines Host (1101) auszugeben, wobei die ersten Daten (D2') auf Basis von wenigstens einem von zweiten Daten (D2), die in der Speichereinrichtung (1301b) gespeichert sind, und von dritten Daten (D1'), die über den zweiten Port empfangen worden sind.
  20. Speichereinrichtung nach Anspruch 19, wobei die ersten Daten (D2') so generiert werden, dass sie sich jeweils von den zweiten Daten (D2) und den dritten Daten (D1') unterscheiden.
  21. Speichereinrichtung nach Anspruch 19, die des Weiteren einen Peer-to-Peer-Manager (1350b) umfasst, der dazu ausgelegt ist, einen Weg zum Übertragen von Daten in einer Peer-to-Peer-Weise zwischen dem Speicher-Controller (1331b) und der externen Speichereinrichtung (1301c) bereitzustellen.
  22. Speichereinrichtung nach Anspruch 21, wobei der Peer-to-Peer-Manager (1350b) folgendes umfasst: einen internen Switch (1351b), der dazu ausgelegt ist, einen Fluss wenigstens eines von den zweiten Daten (D2) und den dritten Daten (D1'), und einen Fluss der ersten Daten (D2) zu managen; und eine Operationslogikschaltung (1352b), die dazu ausgelegt ist, die ersten Daten (D2) auf Basis der wenigstens einen von den zweiten Daten (D2) und den dritten Daten (D1') zu generieren.
  23. Speichereinrichtung nach Anspruch 19, wobei der Speicher-Controller (1331b) folgendes umfasst: eine variable Schnittstellenschaltung, die mit dem ersten Port verbunden ist, wobei die variable Schnittstellenschaltung dazu ausgelegt ist, in mehreren Operationsmodi zu arbeiten; und eine eingebettete Operationslogikschaltung, die dazu ausgelegt ist, die ersten Daten auf Basis der wenigstens einen aus den zweiten Daten und den dritten Daten zu generieren.
  24. Speichereinrichtung nach Anspruch 23, wobei zu den mehreren Operationsmodi ein Switch-Operationsmodus zum Unterstützen der Kommunikation mit der externen Speichereinrichtung und ein Endpunkt-Operationsmodus zum Unterstützen der Operation einer Endpunkteinrichtung zählen, und wobei die variable Schnittstellenschaltung ausgelegt ist: im Switch-Operationsmodus zu arbeiten, wenn der erste Port mit der externen Speichereinrichtung (1301c) verbunden ist, und im Endpunkt-Operationsmodus zu arbeiten, wenn der erste Port mit dem Host (1101) verbunden ist.
  25. Speichersystem, umfassend: eine erste Speichereinrichtung (1301b), die einen ersten Port und einen zweiten Port umfasst, und eine zweite Speichereinrichtung (1301c) , die einen dritten Port umfasst, wobei der zweite Port mit dem dritten Port verbunden ist und die erste Speichereinrichtung (1301b) dazu ausgelegt ist, mit der zweiten Speichereinrichtung (1301c) über den zweiten Port und den dritten Port ohne Eingriff eines Host (1101) zu kommunizieren, wobei die erste Speichereinrichtung (1301b) dazu ausgelegt ist, erste Daten (D2') über den zweiten Port auf Basis von wenigstens einem Datenelement von zweiten Daten (D1') , die über den ersten Port empfangen worden sind, und dritten Daten (D2), die in der ersten Speichereinrichtung gespeichert sind, auszugeben, wobei die zweite Speichereinrichtung (1301c) dazu ausgelegt ist, vierte Daten auf Basis von wenigstens einem aus den Folgenden zu generieren, den ersten Daten (D2'), die über den dritten Port empfangen worden sind, und den fünften Daten (D3), die in der zweiten Speichereinrichtung gespeichert sind, und wobei ein Operationsergebnis (P), das einer Anforderung (REQ) des Host (1101) entspricht, dem Host (1101) auf Basis der vierten Daten bereitgestellt wird.
DE102018125297.8A 2017-11-17 2018-10-12 Speichereinrichtung, die Peer-to-Peer-Kommunikation mit externer Einrichtung ohne Eingriff eines Host durchführt Pending DE102018125297A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2017-0154281 2017-11-17
KR20170154281 2017-11-17
KR1020180079419A KR102527832B1 (ko) 2017-11-17 2018-07-09 호스트의 개입 없이 외부 장치와 피어-투-피어 통신을 수행하는 스토리지 장치
KR10-2018-0079419 2018-07-09

Publications (1)

Publication Number Publication Date
DE102018125297A1 true DE102018125297A1 (de) 2019-05-23

Family

ID=66336344

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018125297.8A Pending DE102018125297A1 (de) 2017-11-17 2018-10-12 Speichereinrichtung, die Peer-to-Peer-Kommunikation mit externer Einrichtung ohne Eingriff eines Host durchführt

Country Status (3)

Country Link
US (3) US10628364B2 (de)
CN (1) CN109799952B (de)
DE (1) DE102018125297A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018125297A1 (de) * 2017-11-17 2019-05-23 Samsung Electronics Co., Ltd. Speichereinrichtung, die Peer-to-Peer-Kommunikation mit externer Einrichtung ohne Eingriff eines Host durchführt
KR102645140B1 (ko) * 2018-12-06 2024-03-07 삼성전자주식회사 Fpga를 포함하는 메모리 시스템 및 이의 동작 방법
KR20210069481A (ko) 2019-12-03 2021-06-11 삼성전자주식회사 메모리 컨트롤러를 포함하는 스토리지 장치 및 비휘발성 메모리 시스템과 이의 동작 방법
KR20210072503A (ko) 2019-12-09 2021-06-17 삼성전자주식회사 스토리지 장치와 재구성 가능 로직 칩을 포함하는 스토리지 장치 세트 및 이를 포함하는 스토리지 시스템
EP3859510B1 (de) * 2020-01-23 2023-05-17 Samsung Electronics Co., Ltd. Speichervorrichtung und speichersystem zur ausführung von offloaded-aufgaben vom host
KR20210095761A (ko) 2020-01-23 2021-08-03 삼성전자주식회사 호스트로부터 오프로드된 작업을 수행하는 스토리지 장치 및 스토리지 시스템
US11386015B2 (en) * 2020-04-22 2022-07-12 Netapp, Inc. Methods for managing storage systems with dualport solid-state disks accessible by multiple hosts and devices thereof
KR20210145513A (ko) * 2020-05-25 2021-12-02 삼성전자주식회사 디스플레이 장치 및 그 제어 방법
US11880568B2 (en) 2021-11-17 2024-01-23 Seagate Technology Llc On demand configuration of FPGA interfaces
US11983428B2 (en) * 2022-06-07 2024-05-14 Western Digital Technologies, Inc. Data migration via data storage device peer channel

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180079419A (ko) 2015-11-05 2018-07-10 코닌클리케 필립스 엔.브이. 시리얼 그레인을 요리하기 위한 방법 및 장치

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437493B2 (en) * 2001-09-28 2008-10-14 Dot Hill Systems Corp. Modular architecture for a network storage controller
KR100606242B1 (ko) * 2004-01-30 2006-07-31 삼성전자주식회사 불휘발성 메모리와 호스트간에 버퍼링 동작을 수행하는멀티 포트 휘발성 메모리 장치, 이를 이용한 멀티-칩패키지 반도체 장치 및 이를 이용한 데이터 처리장치
US7447834B2 (en) * 2005-06-29 2008-11-04 Emc Corproation Managing serial attached small computer systems interface communications
TW200727139A (en) * 2006-01-06 2007-07-16 Tyan Computer Corp Computer system and memory bridge thereof
JP5391994B2 (ja) * 2009-10-19 2014-01-15 富士通株式会社 ストレージシステム,制御装置および診断方法
CN103080917B (zh) 2010-06-18 2014-08-20 Lsi公司 可扩展存储装置
US8560878B2 (en) * 2011-03-23 2013-10-15 Hitachi, Ltd. System and method for failure detection by a storage expander preceding an expander experiencing a failure
US8812899B1 (en) * 2011-09-29 2014-08-19 Emc Corporation Managing read caching
JP5998884B2 (ja) 2012-11-30 2016-09-28 富士通株式会社 ストレージ装置、およびモジュール間データ転送方法
EP3116967B1 (de) * 2014-03-11 2019-05-15 Rohm and Haas Company Wässrige klebstoffzusammensetzung
US9852779B2 (en) 2014-03-12 2017-12-26 Futurewei Technologies, Inc. Dual-port DDR4-DIMMs of SDRAM and NVRAM for SSD-blades and multi-CPU servers
KR101631461B1 (ko) 2014-09-30 2016-06-17 주식회사 네오셈 메모리 소자 테스트 장치 및 방법
CN106796544A (zh) * 2014-10-03 2017-05-31 新加坡科技研究局 主动存储单元和阵列
US9804783B1 (en) 2014-10-17 2017-10-31 Sk Hynix Memory Solutions Inc. Hierarchical host controller for SSD device
US9710167B2 (en) 2014-10-30 2017-07-18 ScaleFlux Direct non-volatile cache access across devices
KR102430561B1 (ko) * 2015-09-11 2022-08-09 삼성전자주식회사 듀얼 포트 디램을 포함하는 메모리 모듈
US20170091127A1 (en) 2015-09-25 2017-03-30 Intel Corporation Techniques to Couple with a Storage Device via Multiple Communication Ports
KR102387973B1 (ko) 2015-12-01 2022-04-19 삼성전자주식회사 이중화 저장 장치, 그것을 포함한 서버 시스템 및 그것의 동작 방법
KR102631351B1 (ko) * 2016-10-07 2024-01-31 삼성전자주식회사 피어-투 피어 통신을 수행할 수 있는 저장 장치와 이를 포함하는 데이터 저장 시스템
US10318476B2 (en) * 2017-05-24 2019-06-11 Netapp, Inc. Systems and methods for using resources in a networked computing environment
US20190034306A1 (en) * 2017-07-31 2019-01-31 Intel Corporation Computer System, Computer System Host, First Storage Device, Second Storage Device, Controllers, Methods, Apparatuses and Computer Programs
DE102018125297A1 (de) * 2017-11-17 2019-05-23 Samsung Electronics Co., Ltd. Speichereinrichtung, die Peer-to-Peer-Kommunikation mit externer Einrichtung ohne Eingriff eines Host durchführt
US10592144B2 (en) * 2018-08-03 2020-03-17 Western Digital Technologies, Inc. Storage system fabric with multichannel compute complex

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180079419A (ko) 2015-11-05 2018-07-10 코닌클리케 필립스 엔.브이. 시리얼 그레인을 요리하기 위한 방법 및 장치

Also Published As

Publication number Publication date
US20210294769A1 (en) 2021-09-23
CN109799952B (zh) 2024-04-23
US20200250121A1 (en) 2020-08-06
US11816055B2 (en) 2023-11-14
CN109799952A (zh) 2019-05-24
US20190155777A1 (en) 2019-05-23
US10628364B2 (en) 2020-04-21
US11055251B2 (en) 2021-07-06

Similar Documents

Publication Publication Date Title
DE102018125297A1 (de) Speichereinrichtung, die Peer-to-Peer-Kommunikation mit externer Einrichtung ohne Eingriff eines Host durchführt
DE69636663T2 (de) System und Verfahren zur Zugriffsverteilung von Mehrfachspeichermatrixen zwischen Mehrfachwirtrechnersystemen
US9135190B1 (en) Multi-profile memory controller for computing devices
DE102017104448A1 (de) Datenspeichervorrichtung
DE69930307T2 (de) Datenspeichersystem
DE102017113576A1 (de) Auf PCI Express basierender Speichereinsatz mit Zweifachport, der Einzelport-Speichercontroller enthält
DE112017003699T5 (de) Speicher-Sled für Daten-Center-bezogene Abwendungen
DE112013006549T5 (de) Computersystem und Datensteuerverfahren
DE112013006643B4 (de) Speichersystem und steuerungsverfahren für speichersystem
US9442877B2 (en) Storage device
EP0951682A1 (de) IO- UND SPEICHERBUSSYSTEM FÜR DFPs SOWIE BAUSTEINE MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN
DE102011014588A1 (de) Multicasting-Schreibanforderungen an Mehrfachspeicher-Controller
DE102015109359A1 (de) Interner Speicher, externer Speicher, der mit diesem kommunizieren kann, und Datenverarbeitungssystem mit diesen Speichern
DE102019111128A1 (de) Speichereinrichtung, welche eine Mehrzahl von Protokollen adaptiv unterstützt
KR20120135205A (ko) 설정가능한 상호접속 시스템
DE10048402B4 (de) Datenspeichersystem
CN106796544A (zh) 主动存储单元和阵列
CN108958642A (zh) 存储器***及其操作方法
CN110609659A (zh) 用于执行读取命令的NVMeoF RAID实现方法
DE112021001470T5 (de) Konfigurieren von datenverarbeitungsknoten in einer dreidimensionalen netztopologie
US6636934B1 (en) Fiber channel port by-pass selector section for dual ported disk drives
KR102527832B1 (ko) 호스트의 개입 없이 외부 장치와 피어-투-피어 통신을 수행하는 스토리지 장치
DE102018110704A1 (de) Speicherungsvorrichtung für ein vorausgehendes Verwalten einer Schreibdaten zuzuweisenden physischen Adresse
EP2825968A2 (de) Modulares serversystem, i/o-modul und switching-verfahren
DE112013000379T5 (de) Synchronisieren von lokalen und entfernt angeordneten Speichereinheiten

Legal Events

Date Code Title Description
R012 Request for examination validly filed