DE102017113576B4 - Auf PCI Express basierender Speichereinsatz mit Zweifachport, der Einzelport-Speichercontroller enthält - Google Patents

Auf PCI Express basierender Speichereinsatz mit Zweifachport, der Einzelport-Speichercontroller enthält Download PDF

Info

Publication number
DE102017113576B4
DE102017113576B4 DE102017113576.6A DE102017113576A DE102017113576B4 DE 102017113576 B4 DE102017113576 B4 DE 102017113576B4 DE 102017113576 A DE102017113576 A DE 102017113576A DE 102017113576 B4 DE102017113576 B4 DE 102017113576B4
Authority
DE
Germany
Prior art keywords
pcie
memory controller
switch
port
pcie switch
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.)
Active
Application number
DE102017113576.6A
Other languages
English (en)
Other versions
DE102017113576A1 (de
Inventor
Pinchas Herman
Vijay Karamcheti
Rodney M. Mullendore
William H. Radke
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of DE102017113576A1 publication Critical patent/DE102017113576A1/de
Application granted granted Critical
Publication of DE102017113576B4 publication Critical patent/DE102017113576B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

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)
  • Mathematical Physics (AREA)
  • Information Transfer Systems (AREA)

Abstract

Ein Speichereinsatz kann einen Speichercontroller umfassen, der einen einzigen PCIe-Port und einen PCIe-Schalter umfasst. Der PCIe-Schalter kann einen kommunikativ mit einem ersten PCIe-Koppelfeld gekoppelten ersten PCIe-Port, einen kommunikativ mit einem zweiten, anderen PCIe-Koppelfeld gekoppelten zweiten PCIe-Port und einen kommunikativ mit dem einzigen PCIe-Port des Speichercontrollers gekoppelten dritten PCIe-Port umfassen. Der erste PCIe-Port und der zweite PCIe-Port können dafür ausgelegt sein, selektiv kommunikativ mit einer nicht transparenten Brücke (NTB) des PCIe-Schalters gekoppelt zu werden.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft allgemein netzwerkangeschlossene Speicherungssysteme.
  • STAND DER TECHNIK
  • Netzwerkangeschlossene Speicherungs- bzw. NAS-Systeme, die in Unternehmensanwendungen verwendet werden, können als hoch verfügbare Systeme ausgelegt sein, die Redundanz enthalten, um Auswirkungen von Ausfall von Komponenten im System zu mindern. Zum Beispiel kann eine hoch verfügbare NAS zwei Mengen von Netzwerkports in die NAS, zwei Steuer-CPUs und zwei Schaltnetzwerke zum Anschluss an Speichereinsätze umfassen. Jeder Speichereinsatz kann zwei Ports umfassen, wobei jeder jeweilige Port zum Anschluss des Speichereinsatzes an ein jeweiliges der zwei Schaltnetzwerke verwendet wird. HOU, Rui[et al.]: Cost effective data center servers. In: High Performance Computer Architecture(HPCA2013), 2013 IEEE 19th International Symposium on. IEEE, 2013. S. 179-187 offenbart eine Architektur mit verteilten Speichern, einen Speichercontroller mit einem einzigen PCIe-Port, einen PCIe-Schalter, umfassend: einen kommunikativ mit einem ersten PCIe-Koppelfeld gekoppelten ersten PCIe-Port; einen kommunikativ mit einem zweiten, anderen PCIe-Koppelfeld gekoppelten zweiten PCIe-Port, einen kommunikativ mit dem einzigen PCIe-Port des Speichercontrolelrs gekoppelten dritten PCIe-Port, wobei der erste PCIe-Port und der zweite PCIe-Port dafür ausgelegt sind, selektiv kommunikativ mit einer nicht transparenten Brücke des PCIe-Schalters gekoppelt zu werden, weiterhin eine Archtektur, umfassend: eine erste Steuer-CPU, eine zweite Steuer-CPU, einen kommunikativ mit der ersten Steuer-CPU gekoppelten ersten PCIe-Schalter, einen kommunikativ mit der zweiten Steuer-CPU gekoppelten zweiten PCIe-Schalter und weiterhin Verfahren mit den folgenden Schritten: ein Speichercontroller empfängt einen Zuweisungsbefehl einer nicht transparenten Brücke von einer Steuer-CPU, wobei der Speichercontroller einen einzigen PCIe-Port umfasst und einen PCIe-Schalter umfasst und wobei der PCIe-Schalter einen kommunikativ mit einem ersten PCIe-Koppelfeld gekoppelten ersten PCIe-Port, einen kommunikativ mit einem zweiten anderen PCIe-Koppelfeld gekoppelten zweiten PCIe-Port und einen kommunikativ mit dem einzigen PCIe-Port des Speichercontrollers gekoppelten dritten PCIe-Port umfasst; und der Speichercontrolelr übermittelt auf der Basis des NTB-Zuweisungsbefehls einen Befehl zu dem PCe-Schalter, um zu bewirken, dass sich die NTB kommunikativ entweder mit dem ersten PCIe-Port des PCIe-Schalters oder dem zweiten PCIe-Port des PCIe-Schalters koppelt.
  • US 2012 0 166 699 A1 offenbart einen hoch verfügbaren PCIe-Speichereinsatz.
  • Non-transparent Bridging with IDT 89HPES32NT24G2 PCI Express NTB Switch. Application Note AN-724. Integrated Device Technology, Inc, 2009. URL:https://www.idt.com/document/apn/724-non-transparent-bridging-idt-pes32nt24g2-pcie-switch [abgerufen am 27.02.2018] offenbart technischen Hintergrund zu der Erfindung.
  • KURZFASSUNG
  • In einigen Beispielen beschreibt die Offenbarung einen Speichereinsatz mit einem Speichercontroller, der einen einzigen PCIe-Port und einen PCIe-Schalter umfasst. Der PCIe-Schalter kann einen kommunikativ mit einem ersten PCIe-Koppelfeld gekoppelten ersten PCIe-Port, einen kommunikativ mit einem zweiten, anderen PCIe-Koppelfeld gekoppelten zweiten PCIe-Port und einen kommunikativ mit dem einzigen PCIe-Port des Speichercontrollers gekoppelten dritten PCIe-Port umfassen. Der erste PCIe-Port und der zweite PCIe-Port können dafür ausgelegt sein, selektiv kommunikativ mit einer nicht transparenten Brücke (NTB) des PCIe-Schalters gekoppelt zu werden.
  • In einigen Beispielen beschreibt die Offenbarung ein netzwerkangeschlossenes Speicherungssystem mit einer ersten Steuer-CPU, einer zweiten Steuer-CPU, einem kommunikativ mit der ersten Steuer-CPU gekoppelten ersten PCIe-Schalter, einem kommunikativ mit der zweiten Steuer-CPU gekoppelten zweiten PCIe-Schalter und einem Speichereinsatz. Der Speichereinsatz kann einen Speichercontroller umfassen, der einen einzigen PCIe-Port und einen dritten PCIe-Schalter umfasst. Der dritte PCIe-Schalter kann einen kommunikativ mit dem ersten PCIe-Schalter gekoppelten ersten PCIe-Port, einen kommunikativ mit dem zweiten PCIe-Schalter gekoppelten zweiten PCIe-Port und einen kommunikativ mit dem einzigen PCIe-Port des Speichercontrollers gekoppelten dritten PCIe-Port umfassen. Der erste PCIe-Port und der zweite PCIe-Port können dafür ausgelegt sein, selektiv kommunikativ mit einer nicht transparenten Brücke (NTB) des dritten PCIe-Schalters gekoppelt zu werden.
  • In einigen Beispielen beschreibt die Offenbarung ein Verfahren, das umfasst, dass ein Speichercontroller eines Speichereinsatzes einen Zuweisungsbefehl einer nicht transparenten Brücke (NTB) von einer Steuer-CPU empfängt. Der Speichercontroller kann einen einzigen PCIe-Port umfassen. Der Speichereinsatz kann den Speichercontroller und einen PCIe-Schalter umfassen. Der PCIe-Schalter kann einen kommunikativ mit einem ersten PCIe-Koppelfeld gekoppelten ersten PCIe-Port, einen kommunikativ mit einem zweiten, anderen PCIe-Koppelfeld gekoppelten zweiten PCIe-Port und einen kommunikativ mit dem einzigen PCIe-Port des Speichercontrollers gekoppelten dritten PCIe-Port umfassen. Das Verfahren kann außerdem umfassen, dass der Speichercontroller auf der Basis des NTB-Zuweisungsbefehls einen Befehl zu dem PCIe-Schalter übermittelt, um zu bewirken, dass sich die NTB kommunikativ entweder mit dem ersten PCIe-Port des PCIe-Schalters oder dem zweiten PCIe-Port des PCIe-Schalters koppelt.
  • Die Einzelheiten eines oder mehrerer Beispiele werden in den beigefügten Zeichnungen und der nachfolgenden Beschreibung dargelegt. Andere Merkmale, Aufgaben und Vorteile werden aus der Beschreibung und den beigefügten Zeichnungen und aus den Ansprüchen ersichtlich.
  • Figurenliste
    • 1 ist eine konzeptuelle und schematische Blockdarstellung einer beispielhaften Speicherungsumgebung, in der ein netzwerkangeschlossenes Speicher- bzw. NAS-System als Speicherungsvorrichtung für mehrere Hostvorrichtungen fungieren kann, gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung.
    • 2 ist eine konzeptuelle und schematische Blockdarstellung eines beispielhaften Speichereinsatzes gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung.
    • 3 ist eine konzeptuelle und schematische Blockdarstellung eines beispielhaften Speicherungs-Blade gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung.
    • 4 ist ein Flussdiagramm einer beispielhaften Technik, um eine nicht transparente Brücke einem PCIe-Port zuzuweisen, gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die vorliegende Offenbarung beschreibt einen Speichereinsatz mit mindestens einem Speichercontroller, der einen einzigen PCIe-Port (Peripheral Component Interconnect Express) und einen PCIe-Schalter umfasst, der zwei PCIe-Ports umfasst, ausgelegt zum Verbinden des Speichereinsatzes mit externen Vorrichtungen, wie etwa jeweiligen PCIe-Koppelfeldern. Der PCIe-Schalter erlaubt die Verwendung des Einzelport-Speichercontrollers in einem Zweifachport-System, wodurch Einzelport-Speichercontroller in hoch verfügbaren netzwerkangeschlossenen Speicher- bzw. NAS-Systemen verwendet werden können. Dadurch können im Handel erhältliche auf PCIe basierende Speichercontroller in hoch verfügbaren NAS-Systemen verwendet werden, statt die Entwicklung neuer auf PCIe basierender Speichercontroller mit Zweifachport für die Verwendung in hoch verfügbaren NAS-Systemen zu erfordern.
  • Damit der Einzelport-Speichercontroller in einem Zweifachport-System verwendet werden kann, umfasst der PCIe-Schalter eine nicht transparente Brücke (NTB). Eine NTB erlaubt die Verbindung zweier PCIe-Koppelfelder mit einem einzigen Schalter und kann verhindern, dass Vorrichtungen auf dem ersten PCIe-Koppelfeld voll in das zweite PCIe-Koppelfeld sehen und umgekehrt. Stattdessen kann die NTB ein Fenster für mit dem ersten PCIe-Koppelfeld verbundene Vorrichtungen zum Sehen in das zweite PCIe-Koppelfeld und umgekehrt bereitstellen. Da jedes PCIe-Koppelfeld ein jeweiliges Adressenschema verwendet, kann die NTB Adressenübersetzung zwischen den von den jeweiligen PCIe-Koppelfeldern verwendeten Adressen bereitstellen, wodurch Vorrichtungen aus dem zweiten PCIe-Koppelfeld auf Vorrichtungen aus dem ersten PCIe-Koppelfeld zugreifen können und umgekehrt. Auf diese Weise erlaubt die Bereitstellung eines PCIe-Schalters, der eine NTB auf einem der PCIe-Ports des PCIe-Schalters umfasst, die Verwendung eines Einzelport-Speichercontrollers in einem Zweifachport-NAS-System.
  • 1 ist eine konzeptuelle und schematische Blockdarstellung einer beispielhaften Speicherungsumgebung 10, in der ein NAS-System 16 als Datenspeicherungsvorrichtung für Hostvorrichtungen 12 fungieren kann, gemäß einer oder mehreren Techniken der vorliegenden Offenbarung. Zum Beispiel können die Hostvorrichtungen 12 nichtflüchtige Speichervorrichtungen, die in dem NAS-System 16 enthalten sind, zum Speichern und Abrufen von Daten verwenden.
  • Die Speicherungsumgebung 10 kann mehrere Hostvorrichtungen 12 umfassen, die Daten in einer oder mehreren Speicherungsvorrichtungen, wie etwa dem NAS-System 16 speichern und/oder daraus abrufen können. Wie in 1 dargestellt, können die Hostvorrichtungen 12 über ein erstes Schaltnetzwerk 14a und ein zweites Schaltnetzwerk 14b (zusammen „Schaltnetzwerke 14“) mit dem NAS-System 16 kommunizieren. Die Hostvorrichtungen 12 wären zum Beispiel beliebige von vielfältigen Vorrichtungen, darunter Computerserver, Datenverarbeitungscluster auf Cloud-Basis, Desktop-Computer, Notebook-(d.h. Laptop-)Computer, Tablet-Computer, Set-Top-Boxen, Telefonhandapparate, wie etwa sogenannte „Smartphones“, sogenannte „Smartpads“, Fernseher, Kameras, Anzeigevorrichtungen, digitale Medienplayer, Videospielkonsolen, Video-Streamingvorrichtungen und dergleichen.
  • Die Schaltnetzwerke 14 können einen Datenbus zum Austausch von Daten mit den Hostvorrichtungen 12 und/oder einen Steuerbus zum Austausch von Befehlen mit den Hostvorrichtungen 12 umfassen. In einigen Beispielen kann jedes der Schaltnetzwerke 14 ein geschaltetes Koppelfeld umfassen, in dem alle Hostvorrichtungen 12 über Schalter mit jedem der Netzwerkports 20A und 20B verbunden sind. Die Schaltnetzwerke 14 können eine beliebige geeignete Netzwerktransporttechnologie benutzen. Zum Beispiel können die Schaltnetzwerke 14 Ethernet und/oder InfiniBand und/oder Fibre Channel und/oder dergleichen benutzen. Durch Bereitstellung von zwei Schaltnetzwerken 14A und 14B ist die Speicherungsumgebung 10 von den Hostvorrichtungen 12 zu den Speichereinsätzen 30A-30N (zusammen „Speichereinsätze 30“) voll zweifach-portig. Wenn eines des ersten Schaltnetzwerks 14A oder des zweiten Schaltnetzwerks 14B ausfällt, können sich die Hostvorrichtungen 12 auf diese Weise immer noch unter Verwendung des anderen des Schaltnetzwerks 14A oder des zweiten Schaltnetzwerks 14B mit dem NAS-System 16 verbinden.
  • Jedes der Schaltnetzwerke 14 ist kommunikativ mit dem NAS-Speicherungssystem 16 gekoppelt. Zum Beispiel ist in 1 das erste Schaltnetzwerk 14A kommunikativ mit den ersten Netzwerkports 20A der ersten Steuerplatine 18A des NAS-Systems 16 gekoppelt. Ähnlich ist in 1 das zweite Schaltnetzwerk 14B kommunikativ mit zweiten Netzwerkports 20B der zweiten Steuerplatine 18B des NAS-Systems 16 gekoppelt.
  • Das NAS-System 16 umfasst zwei Steuerplatinen 18A und 18B (zusammen „Steuerplatinen 18“), wodurch wieder Redundanz für ein hoch verfügbares System bereitgestellt wird. Die Steuerplatinen 18 enthalten Komponenten zum Steuern des NAS-Systems 16, darunter Steuer-CPUs 22A und 22B (zusammen „Steuer-CPUs 22“), DRAM 26A und 26B (zusammen „DRAM 26“) und PCIe-Schalter 24A und 24B (zusammen „PCIe-Schalter 24“).
  • Die Steuerplatine 18A umfasst einen oder mehrere erste Netzwerkports 20A, die kommunikativ mit dem ersten Schaltnetzwerk 14A gekoppelt sind und Kommunikation zwischen der ersten Steuerplatine 18A (z.B. der ersten Steuer-CPU 22A) und den Hostvorrichtungen 12 erlauben. Die ersten Netzwerkports 20A können ein beliebiges Protokoll, eine beliebige Netzwerktransporttechnologie und einen beliebigen Verbinderformfaktor implementieren, und sie können jeweils auf der von den Schaltnetzwerken 14 verwendeten Technologie basieren.
  • Ein oder mehrere erste Netzwerkports 20A sind kommunikativ mit der ersten Steuer-CPU 22A gekoppelt. Zum Beispiel können ein oder mehrere erste Netzwerkports 20A und die erste Steuer-CPU 22A mit einer gemeinsamen Leiterplatte (PCB) verbunden und unter Verwendung einer oder mehrerer elektrischer Leiterbahnen auf oder in der PCB kommunikativ gekoppelt sein.
  • Die erste Steuer-CPU 22A steuert den Betrieb des NAS-Systems 16 alleine oder in Kombination mit der zweiten CPU 22B auf der zweiten Steuerplatine 18B. Die erste Steuer-CPU 22A kann auch als Controller des NAS-Systems 16 bezeichnet werden. Die erste Steuer-CPU 22A kann eine beliebige Art von Prozessor sein, darunter zum Beispiel ein Mikroprozessor, ein digitaler Signalprozessor (DSB), eine anwendungsspezifische integrierte Schaltung (ASIC), ein am Einsatzort programmierbares Gatearray (FPGA) oder beliebige andere äquivalente integrierte oder diskrete Logikschaltkreise, sowie beliebige Kombinationen solcher Komponenten. In einigen Beispielen kann die erste Steuer-CPU 22A einen Prozessor auf x86-Basis umfassen, wie etwa den von Intel® oder AMD® erhältlichen Prozessor auf x86-Basis.
  • Über die Schaltnetzwerke 14 empfängt die erste Steuer-CPU 22A Befehle von den Hostvorrichtungen 12 und tauscht Daten mit diesen aus. Die erste Steuer-CPU 22A bewirkt, dass das NAS-System 16 die Befehle zum Speichern oder Abrufen von Daten aus den Speichereinsätzen 30 ausführt. Die von den Hostvorrichtungen 12 empfangenen Befehle können Lesebefehle und Schreibbefehle umfassen. Die erste Steuer-CPU 22A führt auch andere Funktionen aus, wie etwa eine Flash-Übersetzungsschicht (Abbildung oder Umleitung von logisch zu physisch), Befehlswarteschlangen, Schreibaggregation, Lese-Cache-Speicherung, Verschlüsselung und Entschlüsselung von Daten, Komprimierung und Dekomprimierung von Daten, Fehlerkorrekturcode zur Ermöglichung der Wiederherstellung von fehlerhaften Daten, RAID-Befehle und Hintergrundsystemaufgaben wie Abnutzungsnivellierung, Müllabfuhr, Verfolgung des Systemstatus oder dergleichen.
  • In einigen Beispielen kann die erste Steuerplatine 18A ein FPGA 28A umfassen, das als Offload-Prozessor fungiert. Das FPGA 28A kann dafür ausgelegt sein, eine oder mehrere Operationen anstelle der Steuer-CPU 22A auszuführen, um eine Arbeitslast der CPU 22A zu verringern. Zum Beispiel kann das FPGA 28A die Steuer-CPU 22A von einem oder mehreren von Schreibwarteschlangenverwaltung, Komprimierung, Verschlüsselung, RAID-Berechnung, Dekomprimierung, Entduplikation, Entschlüsselung, Lese-Cache-Speicherung oder dergleichen entlasten. In einigen Beispielen kann die erste Steuerplatine 18A das FPGA 28A weglassen, die zweite Steuerplatine 18B das FPGA 28B weglassen oder beides.
  • Die erste Steuerplatine 18A umfasst auch ersten DRAM 26A. Der erste DRAM 26A ist Arbeitsspeicher für die erste Steuer-CPU 22A, und das erste FPGA 28A und Speichercontroller der Speichereinsätze 30A können über den ersten PCIe-Schalter 24A auf den ersten DRAM 26A zugreifen. Der erste DRAM 26A kann Daten in Bezug auf den Betrieb der ersten Steuer-CPU 22A, des FPGA 28A und der Speichercontroller der Speichereinsätze 30A speichern, darunter zum Beispiel Task-Warteschlangen wie etwa Lesewarteschlangen, Schreibwarteschlangen oder dergleichen; Lesepuffer; Tabellen der Übersetzung von logischen in physische Adressen oder dergleichen.
  • Die erste Steuerplatine 18A umfasst auch einen ersten PCIe-Schalter 24A. Der erste PCIe-Schalter 24A verbindet verschiedene Vorrichtungen oder Komponenten mit einem PCIe-Koppelfeld, darunter die CPU 22A, das FPGA 28A und die Speichereinsätze 30. In einigen Beispielen stellt wie in 1 gezeigt der erste PCIe-Schalter 24A auch eine Kommunikationsverbindung mit dem zweiten PCIe-Schalter 24B der zweiten Steuerplatine 18B bereit. In einigen Beispielen kann, statt einen einzigen ersten PCIe-Schalter 24A bereitzustellen, die erste Steuerplatine 18A mehrere erste PCIe-Schalter 24A umfassen, wie etwa einen primären PCIe-Schalter und einen Hilfs-PCIe-Schalter. In einigen Beispielen, bei denen die erste Steuerplatine 18A einen primären PCIe-Schalter und einen Hilfs-PCIe-Schalter umfasst, kann der primäre PCIe-Schalter Zugang zu Speichereinsätzen 30 bereitstellen, die bezüglich einer Schicht der ersten Steuerplatine 18A (z.B. einer Teilmenge von Speichereinsätzen 30) lokal sind, und der Hilfs-PCIe-Schalter kann Zugang zu Speichereinsätzen 30 bereitstellen, die bezüglich einer Schicht der zweiten Steuerplatine 18B (z.B. einer zweiten Teilmenge von Speichereinsätzen 30) lokal sind. Auf diese Weise kann der erste PCIe-Schalter 24A, gleichgültig, ob es sich um einen einzigen Schalter oder mehrere Schalter handelt, der ersten Steuer-CPU 22A und dem ersten FPGA 28A Zugang zu allen Speichereinsätzen 30 bereitstellen.
  • Ähnlich umfasst die zweite Steuerplatine 18B zweite Netzwerkports 20B, eine zweite Steuer-CPU 22B, zweiten DRAM 26B, einen zweiten PCIe-Schalter 24B und ein zweites FPGA 28B. Die zweiten Netzwerkports 20B, die zweite Steuer-CPU 22B, der zweite DRAM 26B, der zweite PCIe-Schalter 24B und das zweite FPGA 28B können jeweils den ersten Netzwerkports 20A, der ersten Steuer-CPU 22A, dem ersten DRAM 26A, dem ersten PCIe-Schalter 24A und dem ersten FPGA 28A ähnlich oder im Wesentlichen gleich sein.
  • In einigen Beispielen können die erste Steuer-CPU 22A und die zweite Steuer-CPU 22B beide gleichzeitig aktiv sein, was hier als Aktiv-Aktiv-Konfiguration bezeichnet wird. In anderen Beispielen kann von der ersten Steuer-CPU 22A und der zweiten Steuer-CPU 22B eine aktiv sein, und die andere kann passiv oder im Leerlauf sein, was als Aktiv-Passiv-Konfiguration bezeichnet wird. Die passive oder leerlaufende Steuer-CPU ist im Fall eines Ausfalls der aktiven Steuer-CPU anwesend.
  • In Beispielen, in denen die erste Steuer-CPU 22A und die zweite Steuer-CPU 22B in einer Aktiv-Aktiv-Konfiguration oder einer Aktiv-Passiv-Konfiguration sind, können die erste Steuer-CPU 22A und die zweite Steuer-CPU 22B Daten austauschen, um Zustandsinformationen zu unterhalten, wie etwa Koordination von Schreibaktualisierungen an Speichereinsätzen 30. Wie in 1 gezeigt, können in einigen Beispielen die erste Steuer-CPU 22A und die zweite Steuer-CPU 22B kommunikativ durch eine dedizierte Verbindung gekoppelt sein.
  • In einigen Beispielen kann das NAS-System 16 zusätzliche Komponenten umfassen, die in 1 nicht gezeigt sind. Zum Beispiel kann das NAS-System 16 eine oder mehrere Stromversorgungen umfassen und kann eine Midplane umfassen, die Signale zwischen Speichereinsätzen 30 und Steuerplatinen 18 routet. Ferner kann in einigen Beispielen die erste Steuerplatine 18A in eine Steuerplatine mit ersten Netzwerkports 20A, der ersten Steuer-CPU 22A und erstem DRAM 26A; und eine Routerplatine mit dem ersten PCIe-Schalter 24A und dem ersten FPGA 28A aufgetrennt sein. Ähnlich kann die zweite Steuerplatine 18B in eine Steuerplatine mit zweiten Netzwerkports 20B, der zweiten Steuer-CPU 22B und zweiten DRAM 26B; und eine Routerplatine mit dem zweiten PCIe-Schalter 24B und dem zweiten FPGA 28B aufgetrennt sein.
  • Die erste Steuer-CPU 22A und die zweite Steuer-CPU 22B sind jeweils ein Wurzelport eines PCIe-Koppelfelds, das um den ersten PCIe-Schalter 24A bzw. den zweiten PCIe-Schalter 24B herum zentriert ist. Jedes PCIe-Koppelfeld benutzt sein eigenes Adressenschema, das während der Erhebung zugewiesen wird, die durch den PCIe-Treiber durchgeführt wird, der durch die jeweilige Steuer-CPU ausgeführt wird. Es kann verhindert werden, dass Vorrichtungen aus einem PCIe-Koppelfeld voll in das andere PCIe-Koppelfeld sehen können, um Wettbewerb zwischen Vorrichtungen und Adressenschemata zu verhindern. Dementsprechend können die PCIe-Schalter 24A und 24B durch einen Port mit einer nicht transparenten Brücke (NTB) verbunden werden. Eine NTB erlaubt Verbindung der zwei PCIe-Koppelfelder über PCIe-Schalter 24 und verhindert, dass Vorrichtungen auf dem ersten PCIe-Koppelfeld voll in das zweite PCIe-Koppelfeld sehen und umgekehrt. Stattdessen kann die NTB ein Fenster für eine mit dem ersten PCIe-Koppelfeld verbundene Vorrichtung zum Sehen in das zweite PCIe-Koppelfeld und umgekehrt bereitstellen. Ferner kann die NTB Adressenübersetzung zwischen den durch die jeweiligen PCIe-Koppelfelder verwendeten Adressen bereitstellen, wodurch Vorrichtungen aus dem zweiten PCIe-Koppelfeld auf Vorrichtungen aus dem ersten PCIe-Koppelfeld zugreifen können und umgekehrt. In einigen Beispielen ist von der ersten Steuer-CPU 22A und der zweiten Steuer-CPU 22B eine als Master-Steuer-CPU und die andere als Slave-Steuer-CPU festgelegt.
  • Da das NAS-System 16 ein hoch verfügbares Zweifachport-System ist, umfasst jeder der Speichereinsätze 30 zwei Ports - eine Verbindung mit jedem des ersten PCIe-Schalters 24A und des zweiten PCIe-Schalters 24B. Dementsprechend ist jeder Speichereinsatz der Speichereinsätze 30 mit dem ersten PCIe-Koppelfeld und dem zweiten PCIe-Koppelfeld verbunden.
  • Gemäß Beispielen der vorliegenden Offenbarung umfasst mindestens ein Speichereinsatz der Speichereinsätze 30 einen Einzelport-Speichercontroller. Zur Ermöglichung der Verwendung eines Einzelport-Controllers in einem Zweifachport-Speichereinsatz kann der Speichereinsatz auch einen PCIe-Schalter umfassen, der zwei externe Ports umfasst (die den Speichereinsatz mit den PCIe-Schaltern 24A und 24B verbinden). Die externen Ports können selektiv kommunikativ mit einer NTB gekoppelt werden. Die NTB erlaubt die Verbindung der zwei PCIe-Koppelfelder über den PCIe-Schalter in dem Speichereinsatz und verhindert, dass Vorrichtungen auf dem ersten PCIe-Koppelfeld voll in das zweite PCIe-Koppelfeld sehen und umgekehrt. Stattdessen kann die NTB ein Fenster für eine mit dem ersten PCIe-Koppelfeld verbundene Vorrichtung zum Sehen in das zweite PCIe-Koppelfeld und umgekehrt bereitstellen. Ferner kann die NTB Adressenübersetzung zwischen den durch die jeweiligen PCIe-Koppelfelder verwendeten Adressen bereitstellen, wodurch Vorrichtungen aus dem zweiten PCIe-Koppelfeld auf Vorrichtungen aus dem ersten PCIe-Koppelfeld zugreifen können und umgekehrt. In einigen Beispielen zählt die Master-Steuer-CPU die Speichereinsätze 30 auf und die NTB ist kommunikativ mit dem Port gekoppelt, der mit dem PCIe-Koppelfeld der Slave-Steuer-CPU gekoppelt ist. Die NTB führt dann Adressenübersetzung zwischen dem ersten PCIe-Koppelfeld (von dem die Speichereinsätze 30 Teil sind) und dem zweiten PCIe-Koppelfeld durch. Auf diese Weise können beide Steuer-CPU 22 auf die Speichereinsätze zugreifen, worin ein Einzelport-Controller enthalten ist, obwohl der Controller nur einen einzigen Port umfasst.
  • 2 ist eine konzeptuelle und schematische Blockdarstellung eines beispielhaften Speichereinsatzes 30A gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung. Wie in 2 gezeigt, umfasst der Speichereinsatz 30A ein erstes Speicherungs-Blade 32A und ein zweites Speicherungs-Blade 32B. Das erste Speicherungs-Blade 32A kann als Mother-Blade bezeichnet werden und umfasst einen PCIe-Schalter 34. Das zweite Speicherungs-Blade 32B kann als Daughter-Blade bezeichnet werden und ist optional.
  • Das erste Speicherungs-Blade 32A umfasst den PCIe-Schalter 34 mit einer NTB 36, einen ersten Einzelport-Speichercontroller 38A und eine erste Vielzahl von nichtflüchtigen Speicherungsvorrichtungen 40AA-40AN (zusammen „NVM-Vorrichtungen 40A“). Die NVM-Vorrichtungen 40A können eine beliebige Art von nichtflüchtigen Speicherungsvorrichtungen umfassen. Einige Beispiele für NVM-Vorrichtungen 40A wären, aber ohne Beschränkung darauf, Flash-Speicher-Vorrichtungen, Phasenänderungs-Speicher- bzw. PCM-Vorrichtungen, resistive Direktzugriffsspeicher- bzw. ReRAM-Vorrichtungen, magnetoresistive Direktzugriffs-Speicher- bzw. MRAM-Vorrichtungen, ferroelektrischer Direktzugriffsspeicher (F-RAM), holografische Speicher-Vorrichtungen und eine beliebige andere Art von nichtflüchtigen Speicherungsvorrichtungen. Jede der NVM-Vorrichtungen 40A ist z.B. durch einen dedizierten Kanal mit einem ersten Einzelport-Speichercontroller 38A verbunden.
  • Der erste Einzelport-Speichercontroller 38A steuert den Betrieb des Speicherungs-Blade z.B. auf der Basis von Befehlen, die von den Steuer-CPUs 22 oder FPGAs 28 (1) empfangen werden. In einigen Beispielen kann der erste Einzelport-Speichercontroller 38A ein voll ausgestatteter Speichercontroller sein und kann Funktionalität für eines oder mehrere von Müllabfuhr, Abnutzungsnivellierung, Verschlüsselung, Entschlüsselung, Komprimierung, Dekomprimierung, Fehlerkorrekturcode, Befehlswarteschlangen, Lesepufferung, Schreibaggregation oder dergleichen bereitstellen oder ausführen. In anderen Beispielen kann der erste Einzelport-Speichercontroller 38A eine verringerte Menge von Funktionalität implementieren, da die Steuer-CPUs 22 und FPGAs 28 einen Teil der Funktionalität eines besser ausgestatteten Speichercontrollers implementieren können. Zum Beispiel kann der erste Einzelport-Speichercontroller 38A Programmier-, Lösch- und Leseoperationen ausführen, und übrige Funktionalität kann durch die Steuer-CPUs 22 und FPGAs 28 ausgeführt werden. Der erste Einzelport-Speichercontroller 38A ist mit dem PCIe-Schalter 34 durch einen einzigen PCIe-Port kommunikativ gekoppelt (z.B. elektrisch gekoppelt). In einigen Beispielen, in denen mehrere NVM-Vorrichtungen 40A Flash-Vorrichtungen sind, kann der erste Einzelport-Speichercontroller 38A als Flash-Controller bezeichnet werden.
  • Das zweite Speicherungs-Blade 32B ist dem ersten Speicherungs-Blade 32A ähnlich, umfasst aber nicht den PCIe-Schalter 34. Stattdessen umfasst das zweite Speicherungs-Blade 32B einen zweiten Einzelport-Speichercontroller 38B und eine zweite Vielzahl von NVM-Vorrichtungen 40BA-40BN (zusammen „zweite Vielzahl von NVM-Vorrichtungen 40B“). Der zweite Einzelport-Speichercontroller 38B und die zweite Vielzahl von NVM-Vorrichtungen 40B-40B können dem ersten Einzelport-Speichercontroller 38A und der ersten Vielzahl von NVM-Vorrichtungen 40A-40A jeweils ähnlich oder im Wesentlichen gleich sein.
  • In dem Beispiel von 2 ist der PCIe-Schalter 34 ein 2-zu-2-Schalter. In einigen Beispielen, wie etwa wenn der Speichereinsatz 30A das zweite Speicherungs-Blade 32B weglässt, kann der PCIe-Schalter 34 ein 2-zu-1-Schalter sein. Wie in 2 gezeigt, umfasst der PCIe-Schalter 34 einen kommunikativ (z.B. elektrisch) mit dem ersten PCIe-Schalter 24A gekoppelten ersten PCIe-Port, einen kommunikativ (z.B. elektrisch) mit dem zweiten PCIe-Schalter 24B gekoppelten zweiten PCIe-Port, einen kommunikativ (z.B. elektrisch) mit dem ersten Einzelport-Speichercontroller 38A gekoppelten dritten PCIe-Port und einen kommunikativ (z.B. elektrisch) mit dem zweiten Einzelport-Speichercontroller 38B gekoppelten vierten PCIe-Port. Auf diese Weise koppelt der PCIe-Schalter 34 kommunikativ jeden der Speichercontroller 38 mit jedem der PCIe-Schalter 24.
  • Der PCIe-Schalter 34 umfasst auch die NTB 36. In dem Beispiel von 2 ist die NTB 36 mit dem zweiten PCIe-Port gekoppelt, der kommunikativ mit dem zweiten PCIe-Schalter 24B gekoppelt ist. Daraus folgt, dass die zweite Steuer-CPU 22B die Slave-Steuer-CPU ist und die erste Steuer-CPU 22A die Master-Steuer-CPU ist. In einigen Beispielen kann der PCIe-Schalter 34 Logik oder Schalter umfassen, die es der NTB erlauben, selektiv einem beliebigen Port des PCIe-Schalters 34 zugewiesen zu werden. In einigen Beispielen kann der PCIe-Schalter 34 (z.B. durch den ersten Einzelport-Speichercontroller 38A oder eine der Steuer-CPUs 22) so gesteuert werden, dass die NTB 36 dem PCIe-Schalter zugewiesen wird, der der Slave-Steuer-CPU zugeordnet ist.
  • Wie oben beschrieben erlaubt die NTB 36 Verbindung der zwei PCIe-Koppelfelder (eines ist dem ersten PCIe-Schalter 24A zugeordnet und das andere dem zweiten PCIe-Schalter 24B) über den PCIe-Schalter 34, verhindert, dass Vorrichtungen auf dem ersten PCIe-Koppelfeld voll in das zweite PCIe-Koppelfeld sehen und umgekehrt. Stattdessen kann die NTB 36 ein Fenster für mit dem ersten PCIe-Koppelfeld verbundene Vorrichtungen zum Sehen in das zweite PCIe-Koppelfeld und umgekehrt bereitstellen. Da der Speichereinsatz 30A durch die erste Steuer-CPU 22A aufgezählt werden und Teil des ersten PCIe-Koppelfelds sein kann, kann die NTB 36 der zweiten Steuer-CPU 22B und dem zweiten FPGA 28B erlauben, den Speichereinsatz 30A zu sehen. Ferner kann die NTB 36 bidirektionale Adressenübersetzung zwischen den durch das erste PCIe-Koppelfeld (mit der ersten Steuer-CPU 22A, dem ersten FPGA 28A und dem Speichereinsatz 30A) verwendeten Adressen und durch das zweite PCIe-Koppelfeld (mit der zweiten Steuer-CPU 22B und dem zweiten FPGA 28B) verwendeten Adressen bereitstellen, wodurch die zweite Steuer-CPU 22B und das zweite FPGA 28B aus dem zweiten PCIe-Koppelfeld auf den Speichereinsatz 30A und die erste und zweite Vielzahl von NVM-Vorrichtungen 40A und 40B zugreifen können.
  • 3 ist eine konzeptuelle und schematische Blockdarstellung eines beispielhaften Speicherungs-Blade 32A gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung. Wie in 3 gezeigt und ähnlich wie das Speicherungs-Blade 32A von 2 umfasst das Speicherungs-Blade 32A einen PCIe-Schalter 34, einen ersten Einzelport-Speichercontroller 38A und eine Vielzahl von NVM-Vorrichtungen 40A. In dem Beispiel von 3 umfasst der PCIe-Schalter 34 vier PCIe-Ports: einen kommunikativ (z.B. elektrisch) mit dem ersten PCIe-Schalter 24A gekoppelten ersten PCIe-Port, einen kommunikativ (z.B. elektrisch) mit dem zweiten PCIe-Schalter 24B gekoppelten zweiten PCIe-Port, einen kommunikativ (z.B. elektrisch) mit dem ersten Einzelport-Speichercontroller 38A gekoppelten dritten PCIe-Port und einen kommunikativ (z.B. elektrisch) mit dem zweiten Einzelport-Speichercontroller 38B gekoppelten vierten PCIe-Port. Wie oben beschrieben kann in anderen Beispielen der PCIe-Schalter 34 drei Ports umfassen und kann eine Verbindung mit dem zweiten Einzelport-Speichercontroller 38B weglassen, z.B. in Beispielen, in denen der Speicherungsbehälter, der das Speicherungs-Blade 32A umfasst, kein zweites Speicherungs-Blade umfasst.
  • Im Gegensatz zu dem in 2 gezeigten Beispiel wurde in dem Beispiel von 3 die NTB 36 nicht einem PCIe-Port zugewiesen. Ferner umfasst in dem Beispiel von 3 das Speicherungs-Blade 32A zusätzliche Merkmale, darunter eine Schaltsteuerschnittstelle 42, eine erste Seitenband-Steuerschnittstelle 44A und eine zweite Seitenband-Steuerschnittstelle 44B.
  • Die Schaltsteuerschnittstelle 42 koppelt kommunikativ (z.B. elektrisch) den ersten Einzelport-Speichercontroller 38A und den PCIe-Schalter 34. Zum Beispiel kann die Schaltsteuerschnittstelle 42 zwei oder mehr elektrische Bahnen umfassen, von denen eine oder mehrere dem Empfang und eine oder mehrere dem Senden dediziert sind. Als weiteres Beispiel kann die Schaltsteuerschnittstelle 42 nur unidirektionale Kommunikation von dem ersten Einzelport-Speichercontroller 38A zu dem PCIe-Schalter 34 ermöglichen und kann somit eine oder mehrere elektrische Bahnen umfassen, die dem Senden von dem ersten Einzelport-Speichercontroller 38A dediziert sind.
  • Der erste Einzelport-Speichercontroller 38A kann dafür ausgelegt sein, über die Schaltsteuerschnittstelle 42 einen Befehl zu dem PCIe-Schalter 34 zu übermitteln, um zu bewirken, dass die NTB 36 entweder dem ersten PCIe-Port des PCIe-Schalters 34 oder dem zweiten PCIe-Port des PCIe-Schalters 34 zugewiesen wird. Anders ausgedrückt, kann der erste Einzelport-Speichercontroller 38A dafür ausgelegt sein, über die Schaltsteuerschnittstelle 42 einen Befehl zu dem PCIe-Schalter 34 zu übermitteln, um zu bewirken, dass die NTB 36 kommunikativ (z.B. elektrisch) entweder mit dem ersten PCIe-Port des PCIe-Schalters 34 oder dem zweiten PCIe-Port des PCIe-Schalters 34 gekoppelt wird. Auf diese Weise kann der erste Einzelport-Speichercontroller 38A bewirken, dass die NTB 36 einem Port zugewiesen wird, der einem PCIe-Schalter (z.B. dem ersten PCIe-Schalter 24A oder dem zweiten PCIe-Schalter 24B) zugeordnet ist, der einer Slave-Steuer-CPU (entweder der ersten Steuer-CPU 22A oder der zweiten Steuer-CPU 22B) zugeordnet ist.
  • In einigen Beispielen kann der erste Einzelport-Speichercontroller 38A während des PCIe-Aufzählungsprozesses beim Herauffahren des NAS-Systems 16 (1) oder bei Failover von der ersten Steuer-CPU 22A als Master zu der zweiten Steuer-CPU 22B als Master oder umgekehrt einen NTB-Zuweisungsbefehl von der ersten Steuer-CPU 22A oder der zweiten Steuer-CPU 22B empfangen. Die erste Seitenband-Steuerschnittstelle 44A koppelt kommunikativ (z.B. elektrisch) den ersten Einzelport-Speichercontroller 38A mit dem ersten PCIe-Schalter, FPGA 28A oder der CPU 22A (z.B. über eine Midplane, einen E/A-Port oder eine Standardschnittstelle, wie etwa einen UART (Universal Asynchronous Receiver/Transmitter), einen I2C-Controller (Inter-Integrated Circuit) oder dergleichen) und ist dafür ausgelegt, es dem ersten Einzelport-Speichercontroller 38A zu erlauben, mit dem ersten PCIe-Schalter 24A (einer ersten externen Vorrichtung) zu kommunizieren, während der PCIe-Schalter 34 umgangen wird. Ähnlich koppelt die zweite Seitenband-Steuerschnittstelle 44B kommunikativ (z.B. elektrisch) den ersten Einzelport-Speichercontroller 38A mit dem zweiten PCIe-Schalter 24B und ist dafür ausgelegt, es dem ersten Einzelport-Speichercontroller 38A zu erlauben, mit dem zweiten PCIe-Schalter 24B (einer zweiten externen Vorrichtung) zu kommunizieren, während der PCIe-Schalter 34 umgangen wird. In einigen Beispielen umfasst jede der ersten Seitenband-Steuerschnittstelle 44A und der zweiten Seitenband-Steuerschnittstelle 44B (zusammen „Seitenband-Steuerschnittstellen 44“) eine erste Kommunikationsverbindung (z.B. elektrische Bahn), die dem Senden dediziert ist, und eine zweite Kommunikationsverbindung (z.B. elektrische Bahn), die zum Empfangen dediziert ist.
  • Auf diese Weise erlauben die Seitenband-Steuerschnittstellen 44 dem ersten Einzelport-Speichercontroller 38A, einen NTB-Zuweisungsbefehl von einer Master-Steuer-CPU (z.B. entweder der ersten Steuer-CPU 22A oder der zweiten Steuer-CPU 22B) während des durch den PCIe-Treiber ausgeführten Vorrichtungsaufzählungsprozesses zu empfangen. Als Reaktion auf Empfang des NTB-Zuweisungsbefehls kann der erste Einzelport-Speichercontroller 38A ausgelegt sein zum Übermitteln eines Befehls auf der Basis des NTB-Zuweisungsbefehls zu dem PCIe-Schalter 34 über die Schaltsteuerschnittstelle 42, um zu bewirken, dass die NTB 36 kommunikativ (z.B. elektrisch) entweder mit dem ersten PCIe-Port des PCIe-Schalters 34 oder dem zweiten PCIe-Port des PCIe-Schalters 34 gekoppelt wird. Auf diese Weise kann die Master-Steuer-CPU, ohne sich auf den PCIe-Schalter zu verlassen (der mit Bezug auf die NTB 36 nicht korrekt konfiguriert sein kann), bewirken, dass die NTB 36 dem PCIe-Port des PCIe-Schalters zugewiesen wird, der der Slave-Steuer-CPU zugeordnet ist.
  • In einigen Beispielen benutzen die Einzelport-Speichercontroller 38 DRAM 26 (1) für Task-Warteschlangen, wie etwa Schreibwarteschlangen, Lesewarteschlangen oder dergleichen. Zum Beispiel können Steuer-CPUs 22 Tasks zu jeweiligen Warteschlangen hinzufügen, die jeweiligem DRAM 26 zugeordnet sind (z.B. kann die erste Steuer-CPU 22A Tasks zu jeweiligen Task-Warteschlangen hinzufügen, die im ersten DRAM 26A gespeichert sind, und die zweite Steuer-CPU 22B kann Tasks zu jeweiligen Task-Warteschlangen hinzufügen, die im zweiten DRAM 26B gespeichert sind), und die Einzelport-Speichercontroller 38 können auf die jeweiligen Task-Warteschlangen zugreifen, um Tasks zur Ausführung zu erhalten. Ein Teil der Steuerlogik für die Task-Warteschlangen kann durch die Steuer-CPUs 22 ausgeführt werden, und ein Teil der Steuerlogik für die Task-Warteschlangen kann durch die Einzelport-Speichercontroller 38 ausgeführt werden. Da die Einzelport-Speichercontroller 38 einen einzigen Port aufweisen, können die Einzelport-Speichercontroller 38 jedoch nicht ohne weiteres dafür ausgelegt werden, auf Task-Warteschlangen zuzugreifen, die beiden Steuer-CPUs 22 zugeordnet sind.
  • Gemäß einigen Beispielen der vorliegenden Offenbarung kann jeder Einzelport-Speichercontroller 38 eine definierte Anzahl von Task-Warteschlangen unterstützen. Für jeden Einzelport-Speichercontroller 38 kann die Gesamtzahl von Task-Warteschlangen durch die Anzahl der Steuer-CPUs 22 dividiert werden, und eine jeweilige Anzahl von Task-Warteschlangen kann jeder jeweiligen Steuer-CPU der Steuer-CPUs 22 dediziert werden. In einigen Beispielen können die Task-Warteschlangen nummeriert oder anderweitig identifiziert werden; somit können die Einzelport-Speichercontroller 38 und Steuer-CPUs 22 wissen, welche Speicherungswarteschlangen sich in welchem DRAM 26 befinden.
  • Zum Beispiel kann jeder Einzelport-Speichercontroller 38 1024 Task-Warteschlangen unterstützen. Da die NAS 16 zwei Steuer-CPUs 22A und 22B umfasst, können die Task-Warteschlangen halbiert werden, und für jeden Einzelport-Speichercontroller 38 können 512 Task-Warteschlangen der ersten Steuer-CPU 22A zugeordnet oder zugewiesen werden und 512 Task-Warteschlangen können der zweiten Steuer-CPU 22B zugeordnet oder zugewiesen werden. In einigen Beispielen können die Einzelport-Speichercontroller 38 eine Angabe der zugewiesenen Ports zu der ersten Steuer-CPU 22A und zweiten Steuer-CPU 22B z.B. durch ein Signal über den Midplane-Verbinder übermitteln.
  • 4 ist ein Flussdiagramm einer beispielhaften Technik, um eine nicht transparente Brücke einem PCIe-Port zuzuweisen, gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung. Die Technik von 3 wird mit Bezug auf die Speicherungsumgebung 10 von 1, den Speichereinsatz 30A von 2 und das Speicherungs-Blade 32A von 3 beschrieben, obwohl andere Vorrichtungen und Systeme die Technik von 4 implementieren können und die Speicherungsumgebung 10 von 1, der Speichereinsatz 30A von 2 und das Speicherungs-Blade 32A von 3 andere Techniken ausführen können.
  • Die Technik von 4 umfasst, dass ein Speichercontroller (z.B. erster Einzelport-Speichercontroller 38A) eines Speichereinsatzes 30A einen NTB-Zuweisungsbefehl von einer Steuer-CPU (z.B. der ersten Steuer-CPU 22A oder der zweiten Steuer-CPU 22B) empfängt (52). Wie mit Bezug auf 2 und 3 beschrieben umfasst der Speichercontroller (z.B. der erste Einzelport-Speichercontroller 38A) einen einzigen PCIe-Port. Der Speichereinsatz 30A umfasst den Speichercontroller (z.B. den ersten Einzelport-Speichercontroller 38A) und einen PCIe-Schalter 34. Der PCIe-Schalter 34 umfasst einen kommunikativ mit einem ersten PCIe-Koppelfeld gekoppelten ersten PCIe-Port, einen kommunikativ mit einem zweiten, anderen PCIe-Koppelfeld gekoppelten zweiten PCIe-Port und einen kommunikativ mit dem einzigen PCIe-Port des Speichercontrollers (z.B. des ersten Einzelport-Speichercontrollers 38A) gekoppelten dritten PCIe-Port. Der NTB-Zuweisungsbefehl kann eine Angabe umfassen, welche Steuer-CPU die Master-Steuer-CPU ist (z.B. die erste Steuer-CPU 22A oder die zweite Steuer-CPU 22B), welcher PCIe-Port des PCIe-Schalters 34 der NTB 36 zuzuweisen ist, welcher PCIe-Port des PCIe-Schalters 34 mit einem PCIe-Schalter (24A oder 24B) verbunden ist, der der Master-Steuer-CPU (z.B. der ersten Steuer-CPU 22A oder der zweiten Steuer-CPU 22B) zugeordnet ist, welcher PCIe-Port des PCIe-Schalters 34 mit einem PCIe-Schalter (24A oder 24B) verbunden ist, der der Slave-Steuer-CPU (z.B. der ersten Steuer-CPU 22A oder der zweiten Steuer-CPU 22B) zugeordnet ist oder dergleichen.
  • Die Technik von 4 umfasst außerdem, dass der Speichercontroller (z.B. der erste Einzelport-Speichercontroller 38A) auf der Basis des NTB-Zuweisungsbefehls einen Befehl zu dem PCIe-Schalter 34 übermittelt, um zu bewirken, dass sich die NTB 36 entweder mit dem ersten PCIe-Port des PCIe-Schalters 34 oder dem zweiten PCIe-Port des PCIe-Schalters 34 kommunikativ koppelt (z.B. elektrisch koppelt oder diesem zugewiesen wird) (54). Wie oben beschrieben kann in einigen Beispielen die NTB 36 mit dem PCIe-Port des PCIe-Schalters 34, der mit der Slave-Steuer-CPU (z.B. der ersten Steuer-CPU 22A oder der zweiten Steuer-CPU 22B) verbunden ist, über den jeweiligen PCIe-Schalter 24a oder 24B kommunikativ gekoppelt (z.B. elektrisch gekoppelt oder zugewiesen) werden. Als Ergebnis wird der andere PCIe-Port (der nicht der NTB 36 zugeordnet ist) der Master-Steuer-CPU (z.B. der ersten Steuer-CPU 22A oder der zweiten Steuer-CPU 22B) zugeordnet und stellt eine transparente Verbindung mit dem PCIe-Koppelfeld bereit, das der Master-Steuer-CPU zugeordnet ist (z.B. ist keine Adressenübersetzung für Vorrichtungen erforderlich, die dem PCIe-Koppelfeld zugeordnet sind, das der Master-Steuer-CPU zugeordnet ist, um auf den Speichereinsatz 30A zuzugreifen.
  • Obwohl die obigen Beispiele mit Bezug auf einen Controller einer Speicherungsvorrichtung beschrieben wurden, können die hier beschriebenen Beispiele in anderen Szenarien durch einen anderen Prozessor, wie etwa einen Vielzweckprozessor, implementiert werden, und die Tabelle der Übersetzung von logischen in physische Datenadressen kann zum Beispiel ein Übersetzungs-Lookaside-Puffer sein.
  • Die in der vorliegenden Offenbarung beschriebenen Techniken können mindestens teilweise in Hardware, Software, Firmware oder einer beliebigen Kombination davon implementiert werden. Zum Beispiel können verschiedene Aspekte der beschriebenen Techniken in einem oder mehreren Prozessoren implementiert werden, darunter ein oder mehrere Mikroprozessoren, digitale Signalprozessoren (DSP), anwendungsspezifische integrierte Schaltungen (ASIC), am Einsatzort programmierbare Gatearrays (FPGA) oder beliebige andere äquivalente integrierte oder diskrete Logikschaltkreise, sowie beliebige Kombinationen solcher Komponenten. Der Ausdruck „Prozessor“ oder „Verarbeitungsschaltkreise“ kann sich im Allgemeinen auf beliebige der obigen Logikschaltkreise alleine oder in Kombination mit anderen Logikschaltkreisen oder beliebige andere äquivalente Schaltkreise beziehen. Eine Steuereinheit, die Hardware umfasst, kann auch eine oder mehrere der Techniken der vorliegenden Offenbarung ausführen.
  • Solche Hardware, Software und Firmware kann in derselben Vorrichtung oder in getrennten Vorrichtungen implementiert werden, um die verschiedenen in der vorliegenden Offenbarung beschriebenen Techniken zu unterstützen. Zusätzlich können beliebige der beschriebenen Einheiten, Module oder Komponenten zusammen oder getrennt als diskrete, aber interoperable Logikvorrichtungen implementiert werden. Die Abbildung verschiedener Merkmale als Module oder Einheiten soll verschiedene Funktionsaspekte hervorheben und bedeutet nicht unbedingt, dass solche Module oder Einheiten durch getrennte Hardware-, Firmware- oder Softwarekomponenten realisiert werden müssen. Funktionalität, die einem oder mehreren Modulen oder einer oder mehreren Einheiten zugeordnet ist, kann stattdessen durch getrennte Hardware-, Firmware- oder Softwarekomponenten ausgeführt oder in gemeinsame oder getrennte Hardware-, Firmware- oder Softwarekomponenten integriert werden.
  • Die in der vorliegenden Offenbarung beschriebenen Techniken können auch in einem Herstellungsartikel realisiert oder codiert werden, der ein mit Anweisungen codiertes computerlesbares Speichermedium umfasst. In einem Herstellungsartikel, einschließlich eines codierten computerlesbaren Speichermediums, eingebettete oder codierte Anweisungen können bewirken, dass ein oder mehrere programmierbare Prozessoren oder andere Prozessoren eine oder mehrere der hier beschriebenen Techniken implementieren, wie etwa, wenn in dem computerlesbaren Speichermedium enthaltene oder codierte Anweisungen durch den einen oder die mehreren Prozessoren ausgeführt werden. Computerlesbare Speichermedien wären zum Beispiel RAM (Random Access Memory), ROM (Read Only Memory), PROM (Programmable Read Only Memory), EPROM (Erasable Programmable Read Only Memory), EEPROM (Electronically Erasable Programmable Read Only Memory), Flash-Speicher, eine Festplatte, CD-ROM (Compact Disc ROM), eine Diskette, eine Kassette, magnetische Medien, optische Medien oder andere computerlesbare Medien. In einigen Beispielen kann ein Herstellungsartikel ein oder mehrere computerlesbare Speichermedien umfassen.
  • In einigen Beispielen kann ein computerlesbares Speichermedium ein nicht transitorisches Medium umfassen. Der Ausdruck „nicht transitorisch“ kann angeben, dass das Speichermedium nicht in einer Trägerwelle oder einem ausgebreiteten Signal realisiert ist. In bestimmten Beispielen kann ein nicht transitorisches Speichermedium Daten speichern, die sich mit der Zeit (z.B. in RAM oder Cache) ändern.

Claims (12)

  1. Speichereinsatz, umfassend: einen Speichercontroller mit einem einzigen PCIe-Port; einen PCIe-Schalter, umfassend: einen kommunikativ mit einem ersten PCIe-Koppelfeld gekoppelten ersten PCIe-Port; einen kommunikativ mit einem zweiten, anderen PCIe-Koppelfeld gekoppelten zweiten PCIe-Port; einen kommunikativ mit dem einzigen PCIe-Port des Speichercontrollers gekoppelten dritten PCIe-Port, wobei der erste PCIe-Port und der zweite PCIe-Port dafür ausgelegt sind, selektiv kommunikativ mit einer nicht transparenten Brücke (NTB) des PCIe-Schalters gekoppelt zu werden, ferner umfassend: eine erste Seitenband-Steuerschnittstelle, die kommunikativ mit dem Speichercontroller gekoppelt und dafür ausgelegt ist, dem Speichercontroller zu erlauben, mit einer ersten externen Vorrichtung zu kommunizieren, während der PCIe-Schalter umgangen wird; eine zweite Seitenband-Steuerschnittstelle, die kommunikativ mit dem Speichercontroller gekoppelt und dafür ausgelegt ist, dem Speichercontroller zu erlauben, mit einer zweiten externen Vorrichtung zu kommunizieren, während der PCIe-Schalter umgangen wird, wobei der Speichercontroller einen NTB-Zuweisungsbefehl von der ersten externen Vorrichtung oder der zweiten externen Vorrichtung empfängt, wobei der Speichereinsatz ferner Folgendes umfasst: eine Schaltsteuerschnittstelle, die den Speichercontroller kommunikativ mit dem PCIe-Schalter koppelt, wobei der Speichercontroller dafür ausgelegt ist, auf der Basis des NTB-Zuweisungsbefehls über die Schaltsteuerschnittstelle einen Befehl zu dem PCIe-Schalter zu übermitteln, um zu bewirken, dass sich die NTB kommunikativ entweder mit dem ersten PCIe-Port des PCIe-Schalters oder mit dem zweiten PCIe-Port des PCIe-Schalters koppelt.
  2. Speichereinsatz nach Anspruch 1, ferner umfassend: eine Schaltsteuerschnittstelle, die den Speichercontroller kommunikativ mit dem PCIe-Schalter koppelt, wobei der Speichercontroller dafür ausgelegt ist, einen NTB-Zuweisungsbefehl über die Schaltsteuerschnittstelle zu dem PCIe-Schalter zu übermitteln, um zu bewirken, dass sich die NTB kommunikativ entweder mit dem ersten PCIe-Port des Schalters oder dem zweiten PCIe-Port des PCIe-Schalters koppelt.
  3. Speichereinsatz nach Anspruch 1, wobei der Speichercontroller einen ersten Speichercontroller umfasst; der Speichereinsatz ferner einen zweiten Speichercontroller umfasst, der einen einzigen PCIe-Port umfasst; und der PCIe-Schalter ferner einen kommunikativ mit dem einzigen PCIe-Port des zweiten Speichercontrollers gekoppelten vierten PCIe-Port umfasst.
  4. Speichereinsatz nach Anspruch 3, der ferner ein erstes Speicherungs-Blade und ein zweites Speicherungs-Blade umfasst, wobei das erste Speicherungs-Blade den PCIe-Schalter, den ersten Speichercontroller und eine erste Vielzahl von nichtflüchtigen Speichervorrichtungen umfasst und wobei das zweite Speicherungs-Blade den zweiten Speichercontroller und eine zweite Vielzahl von nichtflüchtigen Speicherungsvorrichtungen umfasst.
  5. Netzwerkangeschlossenes Speicherungs- bzw. NAS-System, umfassend: eine erste Steuer-CPU; eine zweite Steuer-CPU; einen kommunikativ mit der ersten Steuer-CPU gekoppelten ersten PCIe-Schalter; einen kommunikativ mit der zweiten Steuer-CPU gekoppelten zweiten PCIe-Schalter; und einen Speichereinsatz, wobei der Speichereinsatz Folgendes umfasst: einen Speichercontroller, der einen einzigen PCIe-Port umfasst; und einen dritten PCIe-Schalter, umfassend: einen kommunikativ mit dem ersten PCIe-Schalter gekoppelten ersten PCIe-Port; einen kommunikativ mit dem zweiten PCIe-Schalter gekoppelten zweiten PCIe-Port; einen kommunikativ mit dem einzigen PCIe-Port des Speichercontrollers gekoppelten dritten PCIe-Port, wobei der erste PCIe-Port und der zweite PCIe-Port dafür ausgelegt sind, selektiv kommunikativ mit einer nicht transparenten Brücke (NTB) des dritten PCIe-Schalters gekoppelt zu werden, wobei der Speichereinsatz ferner Folgendes umfasst: eine erste Seitenband-Steuerschnittstelle, die kommunikativ mit dem Speichercontroller gekoppelt und dafür ausgelegt ist, dem Speichercontroller zu erlauben, mit der ersten Steuer-CPU zu kommunizieren, während der dritte PCIe-Schalter umgangen wird; eine zweite Seitenband-Steuerschnittstelle, die kommunikativ mit dem Speichercontroller gekoppelt und dafür ausgelegt ist, dem Speichercontroller zu erlauben, mit der zweiten Steuer-CPU zu kommunizieren, während der dritte PCIe-Schalter umgangen wird, wobei der Speichercontroller einen NTB-Zuweisungsbefehl von der ersten Steuer-CPU oder der zweiten Steuer-CPU empfängt, wobei der Speichereinsatz ferner Folgendes umfasst: eine Schaltsteuerschnittstelle, die den Speichercontroller kommunikativ mit dem dritten PCIe-Schalter koppelt, wobei der Speichercontroller dafür ausgelegt ist, auf der Basis des NTB-Zuweisungsbefehls über die Schaltsteuerschnittstelle einen Befehl zu dem dritten PCIe-Schalter zu übermitteln, um zu bewirken, dass sich die NTB kommunikativ entweder mit dem ersten PCIe-Port des dritten PCIe-Schalters oder mit dem zweiten PCIe-Port des dritten PCIe-Schalters koppelt.
  6. NAS-System nach Anspruch 5, wobei der Speichereinsatz ferner Folgendes umfasst: eine Schaltsteuerschnittstelle, die den Speichercontroller kommunikativ mit dem dritten PCIe-Schalter koppelt, wobei der Speichercontroller dafür ausgelegt ist, einen NTB-Zuweisungsbefehl über die Schaltsteuerschnittstelle zu dem dritten PCIe-Schalter zu übermitteln, um zu bewirken, dass sich die NTB kommunikativ entweder mit dem ersten PCIe-Port des PCIe-Schalters oder mit dem zweiten PCIe-Port des PCIe-Schalters koppelt.
  7. NAS-System nach Anspruch 5, wobei der Speichercontroller einen ersten Speichercontroller umfasst; der Speichereinsatz ferner einen zweiten Speichercontroller umfasst, der einen einzigen PCIe-Port umfasst; und der PCIe-Schalter ferner einen kommunikativ mit dem einzigen PCIe-Port des zweiten Speichercontrollers gekoppelten vierten PCIe-Port umfasst.
  8. NAS-System nach Anspruch 7, wobei der Speichereinsatz ferner ein erstes Speicherungs-Blade und ein zweites Speicherungs-Blade umfasst, wobei das erste Speicherungs-Blade den dritten PCIe-Schalter, den ersten Speichercontroller und eine erste Vielzahl von nichtflüchtigen Speichervorrichtungen umfasst und wobei das zweite Speicherungs-Blade den zweiten Speichercontroller und eine zweite Vielzahl von nichtflüchtigen Speicherungsvorrichtungen umfasst.
  9. NAS-System nach Anspruch 5, wobei der Speichereinsatz eine Vielzahl von Speichereinsätzen umfasst, wobei jeder jeweilige Speichereinsatz der Vielzahl von Speichereinsätzen Folgendes umfasst: einen jeweiligen Speichercontroller, der einen einzigen PCIe-Port umfasst; einen jeweiligen dritten PCIe-Schalter, umfassend: ein jeweiliger erster PCIe-Port ist kommunikativ mit dem ersten PCIe-Schalter gekoppelt; ein jeweiliger zweiter PCIe-Port ist kommunikativ mit dem zweiten PCIe-Schalter gekoppelt; ein jeweiliger dritter PCIe-Port ist kommunikativ mit dem einzigen PCIe-Port des jeweiligen Speichercontrollers gekoppelt, und wobei der jeweilige erste PCIe-Port und der jeweilige zweite PCIe-Port dafür ausgelegt sind, selektiv kommunikativ mit einer jeweiligen nicht transparenten Brücke (NTB) des jeweiligen dritten PCIe-Schalters gekoppelt zu werden.
  10. Verfahren mit den folgenden Schritten: ein Speichercontroller eines Speichereinsatzes empfängt einen Zuweisungsbefehl einer nicht transparenten Brücke (NTB) von einer Steuer-CPU, wobei der Speichercontroller einen einzigen PCIe-Port umfasst, wobei der Speichereinsatz den Speichercontroller und einen PCIe-Schalter umfasst und wobei der PCIe-Schalter einen kommunikativ mit einem ersten PCIe-Koppelfeld gekoppelten ersten PCIe-Port, einen kommunikativ mit einem zweiten, anderen PCIe-Koppelfeld gekoppelten zweiten PCIe-Port und einen kommunikativ mit dem einzigen PCIe-Port des Speichercontrollers gekoppelten dritten PCIe-Port umfasst; und der Speichercontroller übermittelt auf der Basis des NTB-Zuweisungsbefehls einen Befehl zu dem PCIe-Schalter, um zu bewirken, dass sich die NTB kommunikativ entweder mit dem ersten PCIe-Port des PCIe-Schalters oder dem zweiten PCIe-Port des PCIe-Schalters koppelt, wobei der Speichereinsatz ferner Folgendes umfasst: eine erste Seitenband-Steuerschnittstelle, die kommunikativ mit dem Speichercontroller gekoppelt und dafür ausgelegt ist, dem Speichercontroller zu erlauben, mit der Steuer-CPU zu kommunizieren, während der PCIe-Schalter umgangen wird; eine zweite Seitenband-Steuerschnittstelle, die kommunikativ mit dem Speichercontroller gekoppelt und dafür ausgelegt ist, dem Speichercontroller zu erlauben, mit einer zweiten externen Vorrichtung zu kommunizieren, während der PCIe-Schalter umgangen wird; und der Speichercontroller den NTB-Zuweisungsbefehl über die erste Seitenband-Steuerschnittstelle von der Steuer-CPU empfängt, wobei der Speichereinsatz ferner eine Schaltsteuerschnittstelle umfasst, die den Speichercontroller kommunikativ mit dem PCIe-Schalter koppelt; und der Speichercontroller den Befehl auf der Basis des NTB-Zuweisungsbefehls über die Schaltsteuerschnittstelle zu dem PCIe-Schalter übermittelt.
  11. Verfahren nach Anspruch 10, wobei der Speichereinsatz ferner eine Schaltsteuerschnittstelle umfasst, die den Speichercontroller kommunikativ mit dem PCIe-Schalter koppelt; und der Speichercontroller den Befehl über die Schaltsteuerschnittstelle zu dem PCIe-Schalter übermittelt.
  12. Verfahren nach Anspruch 10, wobei der Speichercontroller einen ersten Speichercontroller umfasst; der Speichereinsatz ferner einen zweiten Speichercontroller umfasst, der einen einzigen PCIe-Port umfasst; und der PCIe-Schalter ferner einen kommunikativ mit dem einzigen PCIe-Port des zweiten Speichercontrollers gekoppelten vierten PCIe-Port umfasst.
DE102017113576.6A 2016-07-20 2017-06-20 Auf PCI Express basierender Speichereinsatz mit Zweifachport, der Einzelport-Speichercontroller enthält Active DE102017113576B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/215,304 2016-07-20
US15/215,304 US10082957B2 (en) 2016-07-20 2016-07-20 Dual-ported PCI express-based storage cartridge including single-ported storage controllers

Publications (2)

Publication Number Publication Date
DE102017113576A1 DE102017113576A1 (de) 2018-01-25
DE102017113576B4 true DE102017113576B4 (de) 2019-01-24

Family

ID=60890401

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017113576.6A Active DE102017113576B4 (de) 2016-07-20 2017-06-20 Auf PCI Express basierender Speichereinsatz mit Zweifachport, der Einzelport-Speichercontroller enthält

Country Status (4)

Country Link
US (1) US10082957B2 (de)
KR (1) KR20180010131A (de)
CN (1) CN107643996B (de)
DE (1) DE102017113576B4 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10467100B2 (en) 2016-08-15 2019-11-05 Western Digital Technologies, Inc. High availability state machine and recovery
US10418121B2 (en) * 2017-03-27 2019-09-17 Sk Hynix Memory Solutions Inc. Memory system with diagnose command and operating method thereof
US10884672B2 (en) * 2018-04-02 2021-01-05 Samsung Electronics Co., Ltd. NDP-server: a data-centric computing architecture based on storage server in data center
CN110941576B (zh) * 2018-09-21 2021-11-19 苏州库瀚信息科技有限公司 具有多模pcie功能的存储控制器的系统、方法和设备
CN109614356B (zh) * 2018-12-10 2023-02-28 浪潮(北京)电子信息产业有限公司 一种双控系统通信装置
KR20210046348A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 복수의 프로세서들에 유연하게 메모리를 할당하기 위한 메모리 시스템 및 그것의 동작 방법
US11354398B2 (en) 2020-03-02 2022-06-07 Seagate Technology Llc Off-cartridge encryption key storage for cartridge-based library
US11843692B2 (en) * 2020-03-02 2023-12-12 Seagate Technology Llc On-cartridge encryption key storage for cartridge-based library
US11106607B1 (en) * 2020-03-31 2021-08-31 Dell Products L.P. NUMA-aware storage system
JP7197541B2 (ja) * 2020-04-01 2022-12-27 株式会社日立製作所 ストレージ装置
US11829625B2 (en) * 2020-04-27 2023-11-28 EMC IP Holding Company LLC Slice memory control
CN113805668B (zh) * 2020-06-12 2024-02-13 戴尔产品有限公司 双树背板
CN111597135B (zh) * 2020-06-18 2022-04-12 中国人民解放军国防科技大学 一种透明桥和非透明桥功能可选的pcie交换器及多主机系统
US11561698B2 (en) * 2021-04-20 2023-01-24 EMC IP Holding Company LLC NVMEoF flow control from initiator based on transaction latency
CN113132199B (zh) * 2021-04-21 2022-07-01 无锡众星微系统技术有限公司 一种PCIe NTB的系统实现管理方法
US11734207B1 (en) 2022-02-02 2023-08-22 Western Digital Technologies, Inc. Dynamic port allocation in PCIe bifurcation system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120166699A1 (en) 2010-12-22 2012-06-28 Panakaj Kumar Method and apparatus to provide a high availability solid state drive

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660943B2 (en) * 2006-02-17 2010-02-09 International Business Machines Corporation Data storage drive for automated data storage library
CN100573435C (zh) 2006-08-18 2009-12-23 福昭科技(深圳)有限公司 一种基于闪存记忆体的大容量存储装置
US7890690B2 (en) 2007-06-07 2011-02-15 International Business Machines Corporation System and method for dual-ported flash memory
US8020035B2 (en) 2008-07-30 2011-09-13 Hewlett-Packard Development Company, L.P. Expander circuit for a solid state persistent storage device that provides a plurality of interfaces to corresponding storage controllers
WO2012149767A1 (zh) * 2011-09-23 2012-11-08 华为技术有限公司 访问存储设备的方法及系统
CN102541473A (zh) * 2011-12-31 2012-07-04 曙光信息产业股份有限公司 一种刀片服务器的存储设备设置方法及利用了该方法的刀片服务器
US8938559B2 (en) * 2012-10-05 2015-01-20 National Instruments Corporation Isochronous data transfer between memory-mapped domains of a memory-mapped fabric
US9672167B2 (en) * 2013-07-22 2017-06-06 Futurewei Technologies, Inc. Resource management for peripheral component interconnect-express domains
US9887008B2 (en) 2014-03-10 2018-02-06 Futurewei Technologies, Inc. DDR4-SSD dual-port DIMM device
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
US20150261709A1 (en) * 2014-03-14 2015-09-17 Emilio Billi Peripheral component interconnect express (pcie) distributed non- transparent bridging designed for scalability,networking and io sharing enabling the creation of complex architectures.
US9419918B2 (en) * 2014-11-07 2016-08-16 Futurewei Technologies, Inc. Non-transparent bridge method and apparatus for configuring high-dimensional PCI-express networks
CN110489365B (zh) * 2016-01-13 2023-09-12 华为技术有限公司 交换设备、外围部件互连高速系统及其初始化方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120166699A1 (en) 2010-12-22 2012-06-28 Panakaj Kumar Method and apparatus to provide a high availability solid state drive

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HOU, Rui [et al.]: Cost effective data center servers. In: High Performance Computer Architecture (HPCA2013), 2013 IEEE 19th International Symposium on. IEEE, 2013. S. 179-187. *
HOU, Rui[et al.]: Cost effective data center servers. In: High Performance Computer Architecture(HPCA2013), 2013 IEEE 19th International Symposium on. IEEE, 2013. S. 179-187
Non-transparent Bridging with IDT 89HPES32NT24G2 PCI Express® NTB Switch. Application Note AN-724. Integrated Device Technology, Inc, 2009. URL: https://www.idt.com/document/apn/724-non-transparent-bridging-idt-pes32nt24g2-pcie-switch [abgerufen am 27.02.2018]. *

Also Published As

Publication number Publication date
CN107643996A (zh) 2018-01-30
US20180024743A1 (en) 2018-01-25
US10082957B2 (en) 2018-09-25
DE102017113576A1 (de) 2018-01-25
KR20180010131A (ko) 2018-01-30
CN107643996B (zh) 2020-10-13

Similar Documents

Publication Publication Date Title
DE102017113576B4 (de) Auf PCI Express basierender Speichereinsatz mit Zweifachport, der Einzelport-Speichercontroller enthält
DE112018002951B4 (de) Verwenden eines spurformatcodes in einem cache-steuerblock für eine spur in einem cache, um lese- und schreibanforderungen in bezug auf die spur im cache zu verarbeiten
DE102012210914B4 (de) Switch-Fabric-Management
DE102012210582B4 (de) Verringern der Auswirkung des Ausfalls einer Vermittlungsstelle in einem Schaltnetzwerk mittels Schaltkarten
US20230145212A1 (en) Switch Device for Interfacing Multiple Hosts to a Solid State Drive
US9852779B2 (en) Dual-port DDR4-DIMMs of SDRAM and NVRAM for SSD-blades and multi-CPU servers
DE112011102415B4 (de) Registerzugriff in einer verteilten virtuellen Brückenumgebung
DE102011014588A1 (de) Multicasting-Schreibanforderungen an Mehrfachspeicher-Controller
DE112020006859T5 (de) Beibehaltung von speicher-namensraum-identifizierern für die migration von virtualisierten ausführungsumgebungen im laufenden betrieb
DE112012001753B4 (de) 3 -Anmeldesequenz für eine Fibre-Channel-Weiterleiterstruktur
DE112017003699T5 (de) Speicher-Sled für Daten-Center-bezogene Abwendungen
DE112013006549T5 (de) Computersystem und Datensteuerverfahren
DE112013006643B4 (de) Speichersystem und steuerungsverfahren für speichersystem
EP2880534B1 (de) Hochverfügbares rechnersystem, arbeitsverfahren und dessen verwendung
DE112011100564B4 (de) Einfügen eines Flash-Zwischenspeichers in große Speichersysteme
DE102017121465A1 (de) Datenprotokoll zum verwalten von peripheriegeräten
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank
DE112013006063T5 (de) Funktionsübernahme für einen Datenübertragungskanal in einem Netzwerk mit Hochleistungsdatenverarbeitung
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE112017001806T5 (de) Ein mechanismus zur entdeckung von pcie-kabeltopologien in einer rack-scale-architekturumgebung
DE112007000688B4 (de) Fehlerverwaltungstopologien
DE112013006634T5 (de) Computersystem und Computersystemsteuerverfahren
DE112018005135T5 (de) Thin provisioning unter verwendung von speicherbänken auf cloud-grundlage
DE102014116808A1 (de) Realisieren einer dynamischen Virtualisierung eines Sriov-fähigen SAS-Adapters
CN105446657A (zh) 一种监控raid卡的方法

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE