DE102019120264A1 - System und Verfahren zum Bereitstellen einer konfigurierbaren Speichermedienschnittstelle - Google Patents

System und Verfahren zum Bereitstellen einer konfigurierbaren Speichermedienschnittstelle Download PDF

Info

Publication number
DE102019120264A1
DE102019120264A1 DE102019120264.7A DE102019120264A DE102019120264A1 DE 102019120264 A1 DE102019120264 A1 DE 102019120264A1 DE 102019120264 A DE102019120264 A DE 102019120264A DE 102019120264 A1 DE102019120264 A1 DE 102019120264A1
Authority
DE
Germany
Prior art keywords
configuration
storage media
interface
storage
media interface
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
DE102019120264.7A
Other languages
English (en)
Inventor
Shaohua Yang
John Jansen
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.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Avago Technologies International Sales Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Avago Technologies International Sales Pte Ltd filed Critical Avago Technologies International Sales Pte Ltd
Publication of DE102019120264A1 publication Critical patent/DE102019120264A1/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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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

Abstract

Eine Halbleitervorrichtung, ein Speichersystem und ein Verfahren sind vorgesehen. Ein Beispiel für die Halbleitervorrichtung ist offenbart, um eine Host-Schnittstelle, die eine bidirektionale Kommunikation mit einem Hostcomputer ermöglicht, ein Prozessor-Subsystem, das die Verarbeitung von Lese- oder Schreibanfragen, die an der Host-Schnittstelle empfangen werden, ermöglicht, und eine oder mehrere Speichermedienschnittstellen zu beinhalten, wobei jede der einen oder mehreren Speichermedienschnittstellen zwischen einer ersten Konfiguration und einer zweiten Konfiguration konvertierbar ist, wobei die erste Konfiguration einer Speichermedienschnittstelle eine direkte Verbindung mit einer Computerspeichervorrichtung ermöglicht und wobei die zweite Konfiguration der Speichermedienschnittstelle eine Verbindung mit einer Mehrzahl von Computerspeichervorrichtungen über einen Expander und/oder Re-Timer ermöglicht.

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Offenbarung richtet sich im Allgemeinen an Kommunikationssysteme und Speichersysteme und insbesondere an Controller für Speichersysteme.
  • HINTERGRUND
  • Für bestimmte Controller, wie z.B. Solid-State-Drive- (SSD-) Controller, ist es notwendig, viele NAND-Speicherchips an einen Controller anzuschließen, um Anwendungen mit hoher Kapazität zu ermöglichen. Ein immer höherer Host-Durchsatz erfordert eine erhöhte Anzahl von NAND-Ein-/Ausgängen (I/Os). Problematisch ist, dass dieser Wunsch, mehr NAND-I/Os aufzunehmen, im Widerspruch zu dem Wunsch steht, die Gesamtgröße solcher Controller zu verringern.
  • Figurenliste
  • Die vorliegende Offenbarung wird in Verbindung mit den angehängten Zeichnungen beschrieben, die nicht notwendigerweise skaliert sind:
    • 1 ist ein Blockdiagramm, das ein Datenübertragungssystem zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt;
    • 2 ist ein Blockdiagramm, das ein Speichersystem zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt;
    • 3 ist ein Blockdiagramm, das einen Controller in einer ersten Konfiguration zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt;
    • 4 ist ein Blockdiagramm, das einen Controller in einer zweiten Konfiguration zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt;
    • 5 ist ein Blockdiagramm, das Details einer Speichermedienschnittstelle zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt;
    • 6 ist ein Blockdiagramm, das eine Speichermedienschnittstelle in verschiedenen Konfigurationen zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt;
    • 7 ist ein Blockdiagramm, das Details eines Expanders und/oder Re-Timers zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt;
    • 8 ist ein Blockdiagramm, das verschiedene Konfigurationen eines einzelnen Controllers und mehrerer Controller darstellt, die zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung zusammengefügt sind;
    • 9 ist ein Flussdiagramm, das ein Verfahren zur Konfiguration eines Speichercontrollers zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt.
  • DETAILLIERTE BESCHREIBUNG
  • Die nachfolgende Beschreibung enthält nur Ausführungsformen und soll den Umfang, die Anwendbarkeit oder die Konfiguration der Ansprüche nicht einschränken. Vielmehr wird dem Fachmann in der anschließenden Beschreibung eine reproduzierbare Beschreibung zur Umsetzung der beschriebenen Ausführungsformen gegeben. Es versteht sich, dass verschiedene Änderungen in der Funktion und der Anordnung der Elemente vorgenommen werden können, ohne von der Idee und den Umfang der beigefügten Ansprüche abzuweichen.
  • Aus der folgenden Beschreibung und aus Gründen der Recheneffizienz ist zu beachten, dass die Komponenten des Systems an beliebiger Stelle innerhalb eines verteilten Netzwerks von Komponenten angeordnet werden können, ohne den Betrieb des Systems zu beeinträchtigen.
  • Darüber hinaus ist zu beachten, dass die verschiedenen Verbindungen, die die Elemente verbinden, drahtgebunden, leiterbahngebunden oder drahtlos oder eine Kombination davon sein können, oder jede(s) andere(n) bekannte(n) oder später entwickelte(n) Element(e), das(die) in der Lage ist (sind), Daten an und von den verbundenen Elementen zu liefern und/oder zu kommunizieren. Übertragungsmedien, die beispielsweise als Verbindungen verwendet werden, können irgendein geeigneter Träger für elektrische Signale sein, einschließlich Koaxialkabel, Kupferdraht und Lichtwellenleiter, elektrische Leiterbahnen auf einer Leiterplatte (PCB) oder dergleichen.
  • Wie hierin verwendet, sind die Begriffe „mindestens einer“, „einer oder mehrere“, „oder“ und „und/oder“ offene Ausdrücke, die sowohl konjunktiv als auch disjunktiv wirken. Zum Beispiel bedeutet jeder der Ausdrücke „mindestens einer von A, B und C“, „mindestens einer von A, B oder C“, „einer oder mehrere von A, B und C“, „einer oder mehrere von A, B oder C“, „A, B und/oder C“ und „A, B oder C“ A allein, B allein, C allein, A und B zusammen, A und C zusammen, B und C zusammen oder A, B und C zusammen.
  • Der Begriff „ein“ oder „eine“ als Einheit bezieht sich auf eine oder mehrere dieser Einheiten. Somit können die Begriffe „ein“ (oder „eine“), „ein oder mehrere“ und „mindestens einer“ hierin austauschbar verwendet werden. Es ist auch zu beachten, dass die Begriffe „umfassend“, „einschließlich“ und „mit“ austauschbar sind.
  • Der Begriff „automatisch“ und Variationen davon, wie hierin verwendet, beziehen sich auf jeden Prozess oder jede Operation, die ohne wesentlichen menschlichen Einfluss durchgeführt wird, wenn der Prozess oder die Operation ausgeführt wird. Ein Prozess oder eine Operation kann jedoch automatisch ablaufen, auch wenn die Durchführung des Prozesses oder der Operation eine materielle oder immaterielle menschliche Eingabe erfordert, wenn die Eingabe vor der Durchführung des Prozesses oder der Operation empfangen wird. Menschliche Eingaben gelten als wesentlich, wenn sie die Durchführung des Prozesses oder der Operation beeinflussen. Menschliche Eingaben, die die Durchführung des Prozesses oder der Operation genehmigen, gelten nicht als „wesentlich“.
  • Die Begriffe „bestimmen“, „berechnen“ und „maschinell berechnen“ sowie deren Variationen, wie sie hierin verwendet werden, werden austauschbar verwendet und beinhalten jede Art von Methodik, Prozess, mathematischer Operation oder Technik.
  • Verschiedene Aspekte der vorliegenden Offenbarung werden hierin mit Bezug auf Zeichnungen beschrieben, die schematische Darstellungen idealisierter Konfigurationen darstellen.
  • Sofern nicht anders definiert, haben alle hierin verwendeten Begriffe (einschließlich technischer und wissenschaftlicher Begriffe) die gleiche Bedeutung, wie sie vom Fachmann allgemein verstanden werden, der diese Offenbarung aufnimmt. Es ist des Weiteren klar, dass Begriffe, wie sie in gängigen Wörterbüchern definiert sind, so interpretiert werden sollten, dass sie eine Bedeutung haben, die mit ihrer Bedeutung im Kontext des Stands der Technik und dieser Offenbarung übereinstimmt.
  • Wie hierin verwendet, sind die Singularformen „ein“, „eine“ und „der“, „die“, „das“ dazu bestimmt, auch die Pluralformen einzubeziehen, sofern der Kontext nichts anderes anzeigt. Es wird weiter verstanden, dass die Begriffe „aufweisen“, „aufweist“ und/oder „umfassend“, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten spezifizieren, aber das Vorhandensein oder Hinzufügen eines oder mehrerer anderer Merkmale, ganzen Zahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon nicht ausschließen. Der Begriff „und/oder“ weist alle Kombinationen von einem oder mehreren der zugehörigen aufgeführten Gegenstände auf.
  • Unter Bezugnahme auf die 1-9 werden verschiedene Systeme, Vorrichtungen und Verfahren zum Steuern eines Speichersystems zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung beschrieben.
  • Gemäß mindestens einigen Ausführungsformen ist eine mehrstellige oder konfigurierbare Speichermedienschnittstelle vorgesehen, die eine direkte Verbindung mit Speichervorrichtungen, wie beispielsweise NAND-Vorrichtungen, sowie eine Verbindung mit Speichervorrichtungen über einen Expander und/oder einen Re-Timer ermöglicht. Ein Controller für ein Speichersystem wird ebenfalls offenbart, um eine oder mehrere Speichermedienschnittstellen zu beinhalten. Eine, einige oder alle Speichermedienschnittstellen des Controllers können wie hier beschrieben konfigurierbar sein. In einigen Ausführungsformen ist eine Speichermedienschnittstelle zwischen einer ersten Konfiguration und einer zweiten Konfiguration konfigurierbar. In der ersten Konfiguration kann die Speichermedienschnittstelle eine direkte Verbindung mit einer Computerspeichervorrichtung gemäß einer ersten Speichermedienschnittstellen-Signalisierungsspezifikation (z.B. einer standardisierten Medienschnittstellen-Signalisierungsspezifikation wie ONFI v4.1) ermöglichen, während in der zweiten Konfiguration die Speichermedienschnittstelle eine zweite Verbindungsart (z.B. eine höhere Datenrate oder eine energieeffizientere Verbindung ähnlich DDR4x) zu Computerspeichervorrichtungen über einen Expander und/oder Re-Timer unter Verwendung eines Signalisierungsschemas ermöglichen kann, das sich nicht trivial von der ersten Speichermedienschnittstellen-Signalisierungsspezifikation unterscheidet. In einigen Ausführungsformen kann die zweite Verbindungsart oder ein anderes Signalisierungsschema für eine Punkt-zu-Punkt-Verbindung mit einer geringeren Last als die erste Verbindungsart zu Computerspeichervorrichtungen optimiert werden. In einigen Ausführungsformen kann die zweite Verbindungsart oder ein anderes Signalisierungsschema eine niedrigere Spannung verwenden und ein anderes Treiber- und Anschlussverfahren verwenden als die erste Verbindungsart. In einigen Ausführungsformen kann ein Expander verwendet werden, um mehrere Speichervorrichtungen weiter zu verbinden und die Gesamtspeicherkapazität und -leistung zu erweitern, während ein Re-Timer verwendet werden kann, um das Speichermedienschnittstellensignal zu verklinken (latching) und umzuformen, um eine hohe Signalintegrität aufrechtzuerhalten. Die erste Konfiguration kann Speicheranwendungen mit geringer Kapazität ermöglichen, während die zweite Konfiguration Anwendungen mit höherer Leistung ermöglichen und die Anzahl der Computerspeichervorrichtungen weiter erhöhen oder die Länge der Leitungen verlängern kann, die mit der Speichermedienschnittstelle verbunden sind (z.B. über den Expander und/oder Re-Timer). Auf diese Weise kann ein Controller mit einer oder mehreren Speichermedienschnittstellen, wie hierin offenbart, eine Doppelfunktionsschnittstelle bereitstellen (z.B. eine direkte Medien vorrichtungs-Schnittstelle und eine Punkt-zu-Punkt-Schnittstelle, die mit dem Expander und/oder Re-Timer verbunden ist).
  • Vorteilhafterweise können der vorgeschlagene Controller und seine Speichermedienschnittstellen einen Controller bereitstellen, deren Aufbau monolithisch ist, aber der Controller kann für mehrere verschiedene Zwecke verwendet werden. Dies reduziert effektiv die Entwicklungs- und/oder Herstellungskosten, die mit der Herstellung des Controllers für verschiedene Anwendungen verbunden sind. Da alle Speicheranwendungen die gleiche Hardware und/oder Firmware verwenden können, kann die Zuverlässigkeit des Controllers in verschiedenen Anwendungen verbessert werden.
  • Mit Bezug auf 1 werden nun weitere Details eines Datenübertragungssystems 100 zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung beschrieben. Das Datenübertragungssystem 100 beinhaltet zwei Kommunikationsvorrichtungen 108, die jeweils mit einem Kommunikationsnetzwerk 104 verbunden sind. Die Kommunikationsvorrichtungen 108 können über das Kommunikationsnetz 104 als kommunikativ miteinander gekoppelt betrachtet werden. Obwohl die Kommunikationsvorrichtungen 108 als jede Art von Maschine oder Ansammlung von Komponenten bereitgestellt werden können, beinhalten einige nicht einschränkende Beispiele einer Kommunikationsvorrichtung 108 ein Mobiltelefon, ein Smartphone, einen Personal Computer (PC), einen Laptop, ein Telefon, ein Tablett, einen Server, einen Switch oder eine Datenspeichervorrichtung usw. Es ist zu beachten, dass eine oder beide Kommunikationsvorrichtungen 108 Benutzervorrichtungen (z.B. Vorrichtungen, die von einem Benutzer getragen und verwendet werden) mit einer Benutzeroberfläche sein können. Alternativ können eine oder beide Kommunikationsvorrichtungen 108 Server, Switches oder andere Arten von Maschinen sein, die keine robuste Benutzeroberfläche haben. Anders ausgedrückt können die Kommunikationsvorrichtungen 108 jeder Art von Maschine entsprechen, die in der Lage ist, mit einer anderen Maschine über das Kommunikationsnetzwerk 104 zu kommunizieren.
  • Das Kommunikationsnetzwerk 104 kann jeder Art von Kommunikationsbus, Ansammlung von Kommunikationsvorrichtungen, Kombinationen davon oder dergleichen entsprechen. Als Beispiel kann das Kommunikationsnetzwerk 104 einem paketbasierten Kommunikationsnetzwerk entsprechen. Genauer gesagt, kann das Kommunikationsnetzwerk 104 einem IPbasierten Kommunikationsnetzwerk entsprechen und Kommunikationsprotokolle wie das Ethernet-Protokoll verwenden. Es ist zu beachten, dass das Kommunikationsnetzwerk 104 nicht unbedingt auf eine ethernet-basierte Kommunikation beschränkt sein muss.
  • In einigen Ausführungsformen kann das Datenübertragungssystem 100 einem Speichersystem entsprechen, bei dem eine der Kommunikationsvorrichtungen 108 eine mit einer anderen Kommunikationsvorrichtung 108 verbundene Host-Vorrichtung ist, die als Speichercontroller oder dergleichen konfiguriert werden kann. Insbesondere kann die Host-Vorrichtung konfiguriert werden, um I/O-Befehle über ein Kommunikationsnetzwerk 104 an den Speichercontroller zu senden, und der Speichercontroller kann wiederum auf solche I/O-Befehle reagieren. Obwohl in 1 nicht dargestellt, kann der Speichercontroller weiterhin mit einem Speichersystem verbunden werden, das ein oder mehrere Computerspeichervorrichtungen beinhaltet, die über ein Speicher-Backend verbunden sind.
  • Mit Bezug auf 2 werden nun zusätzliche Details eines Controllers für ein Speichersystem zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung beschrieben. Der Controller 204 wird als System-on-Chip (SoC) oder als ähnliche Halbleitervorrichtung dargestellt. In einigen Ausführungsformen beinhaltet der Controller 204 eine Reihe von Komponenten, die es dem Controller 204 ermöglichen, Datenspeicherroutinen gemäß den von einer Host-Vorrichtung empfangenen I/O-Befehlen auszuführen, wie beispielsweise einer Kommunikationsvorrichtung 108.
  • Der Controller 204 beinhaltet ein CPU-Subsystem 208, ein Host-Subsystem 212, eine Controllerlogik 216, einen internen Speicher 220 und ein Medien-Subsystem 224. Der Controller 204 kann weiterhin Zugriff auf den externen Verarbeitungsspeicher 228 in Form des Dynamic-Random-Access-Memory's (DRAM) in einigen Ausführungsformen haben. Wie im Folgenden näher erläutert, kann der Controller 204 mit einer Mehrzahl von Computerspeichervorrichtungen 232 verbunden sein, die in einigen Ausführungsformen als NAND-Speichervorrichtungen vorgesehen sind. Die Verbindung mit den Speichervorrichtungen 232 kann über eine oder mehrere Speichermedienschnittstellen 236 hergestellt werden.
  • In einigen Ausführungsformen beinhaltet das CPU-Subsystem 208 einen Prozessor oder eine Mehrzahl von Prozessoren, die den Betrieb des Controllers 204 ermöglichen. Insbesondere kann das CPU-Subsystem 208 die Logik 216 des Controllers 204 implementieren. Die Logik 216 kann als eine oder mehrere Anweisungen (z.B. Firmware, Software, Logikgatter usw.) bereitgestellt werden, und das CPU-Subsystem 208 kann für die Verarbeitung eines oder mehrerer I/O-Befehle verantwortlich sein, die von einem Host am Host-Subsystem 212 empfangen werden. Das Host-Subsystem 212 kann ferner konfiguriert werden, um eine bidirektionale Kommunikation mit einem Hostcomputer zu ermöglichen. Das CPU-Subsystem 208 kann die I/O-Befehle, die als Lese- und/oder Schreibbefehle bereitgestellt werden können, verarbeiten, die am Host-Subsystem 212 empfangen werden. Somit kann das Host-Subsystem 212 als Host-Schnittstelle oder eine ähnliche Art von Vorrichtung betrachtet werden, die es dem Controller 204 ermöglicht, mit einer Host-Vorrichtung zu kommunizieren.
  • Die Datenverbindung mit dem Host-Subsystem 212 kann in Form einer Peripheral-Computer-Interconnect Express- (PCIe-) Datenverbindung erfolgen. In einigen Ausführungsformen ist die Datenverbindung mit dem Host-Subsystem 212 als 16-Draht-, Duplex-, 3,2 GBit/s, 6,4 GBit/s oder 12,8 GBit/s-Datenverbindung vorgesehen. Das CPU-Subsystem 208 zusammen mit der Logik 216, dem SRAM 220 und dem Medien-Subsystem 224 kann die Verbindung mit den Computerspeichervorrichtungen 232 über eine oder die Speicherdatenschnittstellen 236 ermöglichen. Die Speicherdatenschnittstellen 236 können als ONFI v4.1-Datenschnittstelle bereitgestellt werden, die eine oder mehrere einer parallelen 8-Bit-Datenschnittstelle, einer unidirektionalen Datenschnittstelle, einer 666MT/s-Datenschnittstelle, einer 800MT/s-Datenschnittstelle oder einer 1,2GT/s-Datenschnittstelle sein kann.
  • Der SRAM 220 kann jeder Art von interner Speichervorrichtung entsprechen, die in einer Halbleitervorrichtung zusammen mit den anderen Komponenten des Controllers 204 bereitgestellt werden kann. Als Beispiel kann der SRAM 220 einer internen Halbleiterspeichervorrichtung entsprechen, die von dem Controller 204 zum Zwischenspeichern von Daten in Verbindung mit der Ausführung eines am Host-Subsystem 212 empfangenen I/O-Befehls verwendet wird.
  • Das Medien-Subsystem 224 kann eine Logik beinhalten, die vom CPU-Subsystem 208 ausführbar ist, um den Datentransfer mit den Computerspeichervorrichtungen 232 zu erleichtern. In einigen Ausführungsformen ermöglicht das Medien-Subsystem 224 des Controllers 204 die Verbindung mit den Computerspeichervorrichtungen 232 entweder in einer ersten oder in einer zweiten Konfiguration. In einigen Ausführungsformen ermöglicht die erste vom Medien-Subsystem 224 aktivierte Konfiguration eine direkte Verbindung mit den Computerspeichervorrichtungen 232, während die zweite vom Medien-Subsystem 224 aktivierte Konfiguration eine Verbindung mit den Computerspeichervorrichtungen 232 über einen Expander und/oder Re-Timer ermöglicht.
  • Der DRAM 228 kann einer oder mehreren externen Speichervorrichtungen entsprechen, die die Funktionalität des Controllers 204 erweitern oder ermöglichen. In einigen Ausführungsformen weist der DRAM 228 jede Art von bekannter Speichervorrichtung auf, auf die das CPU-Subsystem 208 in Verbindung mit der Ausführung seiner Funktionen zugreifen kann. Somit können Daten vom CPU-Subsystem 208 während der Ausführung eines Lese- und/oder Schreibbefehls basierend auf einem von einer Host-Vorrichtung empfangenen I/O-Befehl im DRAM 228 zwischengespeichert werden.
  • Unter Bezugnahme auf die 3 und 4 werden nun weitere Details eines Controllers 204 und seiner verschiedenen möglichen Konfigurationen zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung beschrieben. Der Controller 204, wie in 3 dargestellt, kann in einer ersten Konfiguration vorgesehen werden, bei der der Controller 204 direkt mit einer oder mehreren Computerspeichervorrichtungen 232 verbunden ist. Genauer gesagt kann der Controller 204 einige oder alle ihrer Speichermedienschnittstellen in einer ersten Konfiguration aufweisen, die eine direkte Verbindung mit Computerspeichervorrichtungen 232 ermöglicht. In dieser speziellen Konfiguration kann der Controller 204 konfiguriert sein, um einen I/O-Befehl von einer Host-Vorrichtung 304 zu empfangen und den I/O-Befehl auf einer oder mehreren der Computerspeichervorrichtungen 232 über die Speichermedienschnittstellen auszuführen. In der dargestellten Ausführungsform ist jede Computerspeichervorrichtung 232 direkt mit dem Controller 204 über die Speichermedienschnittstellen verbunden, die sich in einer ONFI v4.1-Konfiguration befinden. In dieser Konfiguration kann der Controller 204 etwa 12 Schnittstellen für Speichermedien beinhalten. Der Durchsatz dieser Ports kann zwischen 8,0 und 14,4 GB/s liegen, während der Durchsatz des Host-Subsystems 212 etwa 16 GB/s beträgt (z.B. bei Konfiguration als PCIe G5 x4 Port). In dieser speziellen Konfiguration verbindet sich der Controller 204 direkt mit den Computerspeichervorrichtungen 232, und es gibt ein Verhältnis von Computerspeichervorrichtungen zu Speichermedienschnittstellen von 1:1. Jede Speichervorrichtung 232 könnte mehrere Speicherchips beinhalten, die durch die Speichermedienschnittstellensignale gemäß dem standardisierten ersten Signalisierungsprotokoll (z.B. einem standardisierten Signalisierungsprotokoll wie ONFI v4.1) aktiviert und ausgewählt werden. Auch hier kann der Controller 204 Zugriff auf den externen Speicher 228 haben, um die Verarbeitung der von der Host-Vorrichtung 304 empfangenen I/O-Befehle zu ermöglichen.
  • 4 hingegen zeigt den Controller 204 in einer zweiten Konfiguration, bei der die eine oder mehrere Speichermedienschnittstellen über einen Expander und/oder Re-Timer 404 mit den Computerspeichervorrichtungen 232 verbunden sind. Obwohl die Ausführungsformen der vorliegenden Offenbarung mit Bezug auf einen Expander/Re-Timer 404 beschrieben werden, ist zu beachten, dass ein Expander mit den Fähigkeiten des hierin dargestellten und beschriebenen Expanders/Re-Timers 404 als „Expander“ angesehen werden kann, wie hierin erläutert. Anders ausgedrückt, kann der Expander/Re-Timer 404 einfach als Expander, Expanderkomponente, Expanderelement oder dergleichen bezeichnet werden. Ein solcher „Expander“ kann Expander- und/oder Re-Timer-Fähigkeiten aufweisen, ohne vom Umfang der vorliegenden Offenbarung abzuweichen.
  • In der in 4 dargestellten Konfiguration verwenden die Speichermedienschnittstellen nicht mehr die ONFI v4.1-Konfiguration, sondern arbeiten als Punkt-zu-Punkt-Verbindung in einem Low-Power-Signalisierungsmechanismus und/oder mit einer höheren Datenrate, z.B. ca. 2,4 GT/s. Dies ermöglicht die Verbindung mit den Expandern und/oder Re-Timern 404 bei ca. 2,4 GT/s. Wenn der Controller 204 etwa 12 Medienports beinhaltet, kann der aggregierte Durchsatz aller Speichermedienschnittstellen bis zu 12*2,4 G = 28,8 GBps betragen, während der Durchsatz des Host-Subsystems 212 immer noch etwa 16 GBps beträgt. Somit können die Verbindungsgeschwindigkeiten des Host-Subsystems 212 entweder in der ersten oder zweiten Konfiguration des Controllers 204 und ihrer Speichermedienschnittstellen für verschiedene Anwendungen untergebracht werden.
  • In dieser speziellen Konfiguration verbindet der Expander und/oder Re-Timer 404 eine einzelne Speichermedienschnittstelle des Controllers 204 mit einer oder mehreren Computerspeichervorrichtungen 232. Die Schnittstelle zwischen dem Expander und/oder Re-Timer 404 und dem Controller 204 kann mit ca. 2,4 GT/s betrieben werden. Der Mediendurchsatz von 2,4 GT/s pro Spur unterstützt einen Durchsatz für mehrere Computerspeichervorrichtungen 232 zwischen 666 MT/S, 800 MT/S und 1,2 MT/s parallel.
  • Unter Bezugnahme auf 5 werden zusätzliche Details zu den Speichermedienschnittstellen und deren möglichen Konfigurationen zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung beschrieben. Jede Speichermedienschnittstelle eines Controllers 204 kann wie in 5 dargestellt konfigurierbar sein, obwohl nicht jede Speichermedienschnittstelle die Fähigkeiten einer Speichermedienschnittstelle besitzen muss, wie hierin dargestellt und beschrieben.
  • 5 zeigt, dass jede Speichermedienschnittstelle einen ersten Treiber 508 und einen zweiten Treiber 512 zusammen mit einem I/O-Pin 504 beinhalten kann, der eine physikalische Verbindung mit externen Vorrichtungen, wie beispielsweise einer Computerspeichervorrichtung 232 oder einem Expander und/oder Re-Timer 404, ermöglicht. Der physikalische Pin 504 kann über einen konfigurierbaren Schalter 516 entweder mit dem ersten Treiber 508 oder dem zweiten Treiber 512 verbunden werden. Der konfigurierbare Schalter 516 kann einem physikalischen oder logischen Schalter entsprechen, der mittels Silizium betätigt wird. In einigen Ausführungsformen ist der Schalter 516 zwischen einer ersten und zweiten Position beweglich. Wenn der Schalter 516 in die erste Position gebracht wird, kann der Controller 204 als in einer ersten Konfiguration betrachtet werden und die Speichermedienschnittstelle kann direkt mit einer Computerspeichervorrichtung 232 verbunden werden. In der ersten Position ist der Pin 504 mit dem ersten Treiber 508 verbunden, der einem Low-End-Treiber entspricht, der die standardisierte Speichervorrichtung (z.B. ONFI) I/O mit 666 MT/s, 800 MT/s oder 1,2 GT/s betreibt. In dieser Position bedient der erste Treiber 508 die Speichermedienschnittstelle, während der zweite Treiber 512 im Leerlauf bleibt und die Speichermedienschnittstelle nicht bedient.
  • Wenn sich der Schalter 516 in der zweiten Position befindet, kann der Controller 204 als in einer zweiten Konfiguration betrachtet werden und die Speichermedienschnittstelle kann mit einem Expander und/oder Re-Timer 404 und einer oder mehreren Computerspeichervorrichtungen 232 verbunden werden. In dieser Konfiguration kann der Pin 504 für Datenoperationen mit hohem Durchsatz von bis zu 2,4 GT/s verwendet werden und die parallele Schnittstelle kann den Controller 204 mit dem Expander und/oder Re-Timer 404 verbinden. Darüber hinaus kann der zweite Treiber 512 verwendet werden, um die Speichermedienschnittstelle zu bedienen, wenn sich der Schalter 516 in der zweiten Position befindet. In dieser Position bedient der zweite Treiber 512 die Speichermedienschnittstelle, während der erste Treiber 508 im Leerlauf bleibt und die Speichermedienschnittstelle nicht bedient.
  • In einigen Ausführungsformen ermöglicht der Schalter 516 dem Controller 204, eine von zwei verschiedenen Konfigurationen anzunehmen. Als nicht einschränkendes Beispiel können die beiden Konfigurationen unterschiedliche elektrische Signalisierungen über den Pin 504 verwenden. In der ersten Konfiguration (z.B. wenn sich der Schalter 516 in der ersten Position befindet) kann der Controller 204 eine elektrische 1,2 V oder 1,8 V Signalisierung verwenden. In der zweiten Konfiguration (z.B. wenn sich der Schalter 516 in der zweiten Position befindet) kann der Controller 204 sowohl 1,2 V als auch 0,6 V verwenden, um die Spannung weiter zu reduzieren und Energie zu sparen. In einigen Ausführungsformen könnte die erste Konfiguration verwendet werden, um leichte Lasten (z.B. Single-Die-Speichervorrichtungen oder einen Expander/Re-Timer) und schwere Lasten (z.B. 16-Die-Speichervorrichtung) mit unterschiedlichen Anschlusskonfigurationen anzusteuern. Selbst in der Betriebsart mit geringer Last wäre die Leistung nicht so niedrig wie in der zweiten Konfiguration oder so schnell wie in der zweiten Konfiguration. Die zweite Konfiguration könnte für die Punkt-zu-Punkt-Konnektivität ausgelegt/optimiert werden und muss daher nicht mit Speichervorrichtungen kompatibel sein, wodurch die zweite Konfiguration energie- und/oder dateneffizienter wird.
  • Darüber hinaus können die beiden verschiedenen Konfigurationen logisch über einen einzigen Schaltkreis geschaltet werden, anstatt zwei physikalische Schaltungsmodule für die beiden Konfigurationen zu haben. Gemäß einigen Ausführungsformen kann die Logikschalter-Implementierung den I/O-Pin 514 so konfigurieren, dass er sich entsprechend der eingestellten Konfiguration verhält.
  • 6 zeigt die Konnektivität der Speichermedienschnittstelle, wenn sich der Schalter 516 sowohl in der ersten als auch in der zweiten Position befindet. Wenn sich der Schalter 516 in der ersten Position befindet, verbindet sich die Speichermedienschnittstelle direkt mit einer Computerspeichervorrichtung 232 unter Verwendung einer ONFI v4.1 I/O-Konfiguration 604. Wenn sich der Schalter 516 in der zweiten Position befindet, verbindet sich die Speichermedienschnittstelle mit dem Expander/Re-Timer 404 über eine Hochdurchsatz-Verbindung 608 mit dem Expander/Re-Timer 404. In einigen Ausführungsformen können verdrahtete Verbindungen bis zu 10 Zoll zwischen dem Controller 204 und dem Expander/Re-Timer 404 in der zweiten Konfiguration verwendet werden. Der Expander/Re-Timer 404 ermöglicht die Verbindung mit mehr als einer Computerspeichervorrichtung 232 pro Speichermedienschnittstelle, und eine solche Verbindung ermöglicht einen höheren aggregierten Durchsatz mit den Expandern/Re-Timern 404. Der Expander/Re-Timer 404, wie im Folgenden näher beschrieben, kann eine ONFI v4.1 I/O-Konfiguration 604 mit jeder der Computerspeichervorrichtungen 232 aufweisen, obwohl er die Verbindung 608 mit dem Controller 204 mit dem höheren Durchsatz aufweist.
  • Unter Bezugnahme auf 7 werden nun zusätzliche Details eines Expanders/Re-Timer 404 zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung beschrieben. Der Expander/Re-Timer 404 beinhaltet einen Controllerschnittstellenpuffer 704, einen internen Pufferspeicher 708, einen internen Taktgeber 712 und eine Mehrzahl von Computerspeichervorrichtungspuffern 720. Wie in 7 dargestellt, stellt der interne Pufferspeicher 708 eine Schnittstelle zwischen einem ersten Taktbereich (z.B. einem Taktbereich der Hochdurchsatz-Verbindung 608 mit dem Controller 204) und einem zweiten Taktbereich (z.B. einem Taktbereich der Computerspeichervorrichtungen 232) dar. In einigen Ausführungsformen können die verschiedenen Taktbereiche (z.B. der Hochdurchsatztakt aus dem Controller/ersten Taktbereich und dem ONFIv 4.1-Takt/zweiter Taktbereich) variieren. So können beispielsweise der ONFIv 4.1-Takt und die Datenrate von dem Referenztakt des Controllers abhängen, der mit dem internen Takt 712 empfangen wird. Der interne Takt 712 kann das Referenztaktsignal des Controllers 204 abhängig von der gewünschten Betriebsgeschwindigkeit des zweiten Taktbereichs anpassen. Der interne Pufferspeicher 708 ist entsprechend mindestens einigen Ausführungsformen der vorliegenden Offenbarung von beiden Taktbereichen aus zugänglich.
  • Der Schnittstellenpuffer 704 des Controllers kann dazu dienen, zunächst I/O-Befehle und damit verbundene Daten von dem Controller 204 zu empfangen. Die I/O-Befehle und die damit verbundenen Daten können aus dem Controllerschnittstellenpuffer 704 in den internen Pufferspeicher 708 zur Speicherung und Verteilung auf die verschiedenen Puffer 720 verschoben werden, um schließlich an eine Computerspeichervorrichtung 232 geliefert zu werden. In einigen Ausführungsformen kann die Datenübertragungsgeschwindigkeit bei der Hochdurchsatz-Verbindung 608 etwa 2,4 GT/s betragen. Daten werden mit dieser Geschwindigkeit am Controllerschnittstellenpuffer 704 empfangen und dann an den internen Pufferspeicher 708 übertragen, wo sie für eine vorbestimmte Zeitspanne gespeichert werden können, die ausreicht, um eine langsamere Datendurchsatzgeschwindigkeit der Verbindungen mit den verschiedenen Computerspeichervorrichtungen 232 unterzubringen. Diese Verlangsamung der Daten kann erleichtert werden, indem Daten innerhalb des internen Pufferspeichers 708 gepuffert und dann die Daten auf die Mehrzahl von Computerspeichervorrichtungen 232 über die verschiedenen Speichervorrichtungspuffer 720 verteilt werden. Somit können Daten aus dem Speicher 708 in die Puffer 720 übertragen werden, bevor sie in eine Computerspeichervorrichtung 232 geschrieben werden.
  • Wenn ein I/O-Befehl einer Leseanfrage entspricht, können die Daten von einer Computerspeichervorrichtung 232 zunächst abgerufen und in den Puffern 720 gespeichert werden. Die Daten können dann von den Puffern 720 in den internen Pufferspeicher 708 übertragen werden, bis sie über den Controllerschnittstellenpuffer 704 auf die Verbindung 608 gelegt werden. Dies ermöglicht es dem Controller 204, Daten von den Computerspeichervorrichtungen 232 abzurufen und während der Ausführung einer Schreibanfrage Daten an die Computerspeichervorrichtungen 232 weiterzugeben.
  • Auch hier kann die Differenz zwischen dem ersten Taktbereich und dem zweiten Taktbereich mit einer Taktbegrenzung 716 beibehalten werden. Die Taktbegrenzung 716 kann am internen Pufferspeicher 708 erzeugt werden, der einen Mechanismus zum Verlangsamen oder Beschleunigen der Datenübertragung zwischen dem Controller und den mit dem Expander/Re-Timer 404 verbundenen Computerspeichervorrichtungen 232 bereitstellt. Der Gesamtdurchsatz des Expander/Re-Timers 404 kann weiterhin mit der hohen Verbindungsgeschwindigkeit (z.B. 2,4 GT/s) beibehalten werden, da die Daten aus dem internen Pufferspeicher 708 auf eine Mehrzahl von verschiedenen Puffern 720 und eine Mehrzahl von verschiedenen Computerspeichervorrichtungen 232 im Wesentlichen gleichzeitig (z.B. parallel) abgelegt werden können. Dies ermöglicht es dem Expander/Re-Timer 404 effektiv, die Datendurchsatzgeschwindigkeiten beizubehalten, jedoch mit einer langsameren Taktfrequenz (z.B. entsprechend dem zweiten Taktbereich). In einigen Ausführungsformen kann der Expander/Re-Timer 404 mit jeder der Computerspeichervorrichtungen 232 mit einer langsameren Taktrate kommunizieren und zusätzlich Schaltfunktionen bereitstellen. Somit ermöglicht der Expander sowohl Taktgeberänderungen als auch Datenverteilungsfunktionen. Der Expander/Re-Timer 404 hilft bei Geschwindigkeitsunterschieden zwischen dem Controller 204 und den Computerspeichervorrichtungen 232, so dass Datenpakete nicht unbedingt synchronisiert werden müssen.
  • Unter Bezugnahme auf 8 werden nun zusätzliche Fähigkeiten eines Controllers 204 zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung beschrieben. Genauer gesagt wird ein Controller 204 sowohl in einer einzelnen SoC-Konfiguration als auch in einer mehrfachen SoC-Konfiguration dargestellt, wobei zwei oder mehr SoCs zusammengefügt sind und der Port zwischen den Controller 204 SoCs als Chip-to-Chip-Verbindung verwendet wird, die mit einem höheren Durchsatz arbeitet. Diese spezielle Konfiguration eines Controllers 204 stellt eine weitere mögliche Konfiguration dar, die zusätzlich zu oder anstelle der verschiedenen anderen hierin dargestellten und beschriebenen Controllerkonfigurationen (und/oder Speichermedienschnittstellenkonfigurationen) verwendet werden kann.
  • 8 zeigt speziell einzelnen Blöcke 804 des Controllers 204 und deren verschiedene I/O-Ports. In einer Einzelblockkonfiguration 804 weist der Controller 204 vier 16 GBps-Ports 808, einen ersten NAND-Port 812, einen zweiten NAND-Port 820, einen DDR4-Port 824 und 10 zusätzliche NAND-Kanäle 816 auf. In der zweiten Konfiguration sind zwei Blöcke 804 miteinander verbunden und der DDR-Port 824 wird als Chip-to-Chip-Verbindung 832 verwendet, die mit einem höheren Datendurchsatz arbeitet als der DDR-Port 824. Ähnlich wie die anderen Konfigurationsoptionen für die hierin dargestellten und beschriebenen Speichermedienschnittstellen kann der DDR-Port 824 auf die Chip-to-Chip-Verbindung 832 umkonfiguriert werden, indem ein Schalter innerhalb einer oder beider der Controllerblöcke 804 neu positioniert wird, um den Port 824 neu zu nutzen. In dieser zweiten Konfiguration weist einer der Blöcke noch zehn NAND-Kanäle 828 auf und die andere Blöcke 804 weisen weitere acht NAND-Kanäle 828 auf, wodurch das Gesamtsystem insgesamt 18 NAND-Kanäle erhält. So kann in einigen Ausführungsformen die DDR-Schnittstelle 824 als Chip-to-Chip-Schnittstelle 832 neu konfiguriert werden, um effektiv einen DDR-Datenbus zwischen den Blöcken 804 des Controllers 204 zu erzeugen.
  • Unter Bezugnahme auf 9 wird ein Verfahren 900 zur Konfiguration eines Controllers 204 zumindest gemäß einigen Ausführungsformen der vorliegenden Offenbarung beschrieben. Das Verfahren 900 beginnt mit der Bereitstellung einer oder mehrerer Speichermedienschnittstellen als Teil eines Speichercontrollers 204 (Schritt 904). Das Verfahren 900 fährt fort, indem es bestimmt, ob eine oder mehrere der Speichermedienschnittstellen den Controller 204 direkt oder über einen Expander/Re-Timer 404 mit einer Computerspeichervorrichtung 232 verbinden (Schritt 908). Wenn die Entscheidung getroffen wird, eine Speichermedienschnittstelle direkt mit einer Computerspeichervorrichtung 232 zu verbinden, fährt das Verfahren fort, indem die Speichermedienschnittstelle für eine direkte Verbindung mit einer Computerspeichervorrichtung 232 konfiguriert wird (Schritt 912). In einigen Ausführungsformen kann dieser Schritt das Positionieren eines Schalters 516 in eine geeignete Position beinhalten, um einen ersten Treiber zu verwenden, der eine direkte Verbindung mit einer Computerspeichervorrichtung 232 ermöglicht.
  • Unter Bezugnahme auf Schritt 908, wenn bestimmt wird, dass eine Speichermedienschnittstelle mit einem Expander/Re-Timer verbunden wird, fährt das Verfahren 900 mit der Konfiguration der Speichermedienschnittstelle für die Verbindung mit dem Expander/Re-Timer 404 fort (Schritt 916). In einigen Ausführungsformen kann dieser Schritt das Positionieren eines Schalters beinhalten, so dass ein geeigneter Treiber verwendet wird, um die Verbindung mit einem Expander/Re-Timer 404 zu ermöglichen, der eine einzige Speichermedienschnittstelle mit der Fähigkeit bereitstellen kann, sich mit einer Mehrzahl von Speichermedienvorrichtungen 232 zu verbinden. Es ist zu beachten, dass eine oder mehrere Speichermedienschnittstellen je nach Bedarf konfiguriert oder neu konfiguriert werden können. Somit kann das Verfahren 900 beliebig oft für eine oder mehrere Speichermedienschnittstellen eines Controllers 204 durchgeführt werden, ohne vom Umfang der vorliegenden Offenbarung abzuweichen.
  • In der Beschreibung wurden spezifische Details angegeben, um ein gründliches Verständnis der Ausführungsformen zu ermöglichen. Es dem Fachmann jedoch klar, dass die Ausführungsformen ohne diese spezifischen Details geschaffen werden können. In anderen Fällen können bekannte Schaltungen, Prozesse, Algorithmen, Strukturen und Techniken ohne überflüssige Details dargestellt werden, um die Ausführungsformen nicht zu verschleiern.
  • Obwohl illustrative Ausführungsformen der Offenbarung hierin ausführlich beschrieben wurden, ist zu verstehen, dass die erfinderischen Konzepte anderweitig unterschiedlich ausgeführt und verwendet werden können und dass die beigefügten Ansprüche so auszulegen sind, dass sie solche Abwandlungen beinhalten, es sei denn, sie sind durch den Stand der Technik beschränkt.

Claims (20)

  1. Halbleitervorrichtung, umfassend: eine Host-Schnittstelle, die eine bidirektionale Kommunikation mit einem Host-Computer ermöglicht; ein Prozessor-Subsystem, das eine Verarbeitung von Lese- oder Schreibanfragen ermöglicht, die an der Host-Schnittstelle empfangen werden; und eine oder mehrere Speichermedienschnittstellen, wobei jede der einen oder mehreren Speichermedienschnittstellen zwischen einer ersten Konfiguration und einer zweiten Konfiguration konvertierbar ist, wobei die erste Konfiguration einer Speichermedienschnittstelle eine direkte Verbindung mit einer Computerspeichervorrichtung ermöglicht, und wobei die zweite Konfiguration der Speichermedienschnittstelle eine Verbindung mit einer oder mehreren Computerspeichervorrichtungen über einen Expander/Re-Timer ermöglicht, der eine Verwendung eines zweiten Signalisierungsmechanismus' erleichtert, der sich von einem in der ersten Konfiguration verwendeten ersten Signalisierungsmechanismus unterscheidet.
  2. Halbleitervorrichtung nach Anspruch 1, wobei der Expander/Re-Timer einen internen Speicherpuffer aufweist, der sich zwischen der Speichermedienschnittstelle und der Mehrzahl von Computerspeichervorrichtungen befindet.
  3. Halbleitervorrichtung nach Anspruch 2, wobei der interne Speicherpuffer einen Übergang von einem ersten Taktbereich zu einem zweiten Taktbereich bereitstellt.
  4. Halbleitervorrichtung nach Anspruch 3, wobei der erste Taktbereich durch einen Takt der Halbleitervorrichtung angesteuert wird und wobei der zweite Taktbereich durch einen Takt des Expanders/Re-Timers angesteuert wird.
  5. Halbleitervorrichtung nach Anspruch 2 oder 3, wobei der interne Speicherpuffer einen parallelen Zugriff auf die Mehrzahl von Speichervorrichtungen ermöglicht.
  6. Halbleitervorrichtung nach Anspruch 5, wobei die Mehrzahl von Speichervorrichtungen eine Mehrzahl von NAND-Flash-Speichervorrichtungen aufweist.
  7. Halbleitervorrichtung nach einem der vorherigen Ansprüche, wobei die erste Konfiguration der Speichermedienschnittstelle einen Lese-/Schreibzugriff auf die Computerspeichervorrichtung mit einer ersten Geschwindigkeit ermöglicht und wobei die zweite Konfiguration der Speichermedienschnittstelle einen Lese-/Schreibzugriff auf die Mehrzahl von Computerspeichervorrichtungen mit einer zweiten Geschwindigkeit ermöglicht, die kleiner als die erste Geschwindigkeit ist.
  8. Halbleitervorrichtung nach einem der vorherigen Ansprüche, wobei die Speichermedienschnittstelle zwischen der ersten Konfiguration und der zweiten Konfiguration durch Ändern eines Schalters von einer ersten Position zu einer zweiten Position umschaltbar ist.
  9. Halbleitervorrichtung nach einem der vorherigen Ansprüche, wobei ein Datendurchsatz der Speichermedienschnittstelle in der zweiten Konfiguration größer ist als der Datendurchsatz der Speichermedienschnittstelle in der ersten Konfiguration.
  10. Halbleitervorrichtung nach einem der vorherigen Ansprüche, wobei eine Leistungsaufnahme der Speichermedienschnittstelle in der zweiten Konfiguration kleiner ist als in der ersten Konfiguration.
  11. Halbleitervorrichtung nach einem der vorherigen Ansprüche, wobei die Host-Schnittstelle eine Peripheral-Component-Interconnect-Express- (PCIe-) Schnittstelle aufweist.
  12. Speichersystem, umfassend: ein Host-Subsystem, das Input/Output- (I/O-) Anfragen verarbeitet, die von einer Host-Vorrichtung empfangen werden; ein Medien-Subsystem, das die I/O-Anfragen in einer Mehrzahl von Speichermedienschnittstellen verteilt, wobei die Mehrzahl von Speichermedienschnittstellen zwischen einer ersten Konfiguration und einer zweiten Konfiguration konfigurierbar ist, wobei die erste Konfiguration der Mehrzahl von Speichermedienschnittstellen eine gerichtete Verbindung mit Computerspeichervorrichtungen ermöglicht, wobei die zweite Konfiguration der Mehrzahl von Speichermedienschnittstellen eine Verbindung mit den Computerspeichervorrichtungen durch einen Expander/Re-Timer ermöglicht, wobei die erste Konfiguration bewirkt, dass das Medien-Subsystem einen ersten Signalisierungsmechanismus verwendet, und wobei die zweite Konfiguration bewirkt, dass das Medien-Subsystem einen zweiten Signalisierungsmechanismus verwendet, der sich von dem ersten Signalisierungsmechanismus unterscheidet; und ein Prozessor-Subsystem, das I/O-Anfragen zwischen dem Host-Subsystem und dem Medien-Subsystem weiterleitet.
  13. Speichersystem nach Anspruch 12, wobei der Expander/Re-Timer einen internen Speicherpuffer aufweist, der Daten in Verbindung mit einer Verarbeitung von I/O-Anfragen zwischen dem Prozessor-Subsystem und den Computerspeichervorrichtungen zwischenspeichert.
  14. Speichersystem nach Anspruch 13, wobei der interne Speicherpuffer einen Übergang von einem ersten Taktbereich zu einem zweiten Taktbereich bereitstellt.
  15. Speichersystem nach Anspruch 13 oder 14, wobei der interne Speicherpuffer einen parallelen Zugriff auf die Computerspeichervorrichtungen ermöglicht, wenn sich die Speichermedienschnittstellen in der zweiten Konfiguration befinden.
  16. Speichersystem nach einem der Ansprüche 12 bis 15, wobei das Host-Subsystem, das Medien-Subsystem und das Prozessor-Subsystem auf einem gemeinsamen Siliziumteil vorgesehen sind.
  17. Speichersystem nach einem der Ansprüche 12 bis 16, wobei die Computerspeichervorrichtungen Flash-Speichervorrichtungen aufweisen.
  18. Speichersystem nach einem der Ansprüche 12 bis 17, wobei die erste Konfiguration der Mehrzahl von Speichermedienschnittstellen einen Zugriff auf die Computerspeichervorrichtungen mit einer ersten Geschwindigkeit ermöglicht, wobei die zweite Konfiguration der Mehrzahl von Speichermedienschnittstellen einen Zugriff auf die Computerspeichervorrichtungen mit einer zweiten Geschwindigkeit ermöglicht, die größer als die erste Geschwindigkeit ist, und wobei die aggregierte Leistung des Medien-Subsystems in der zweiten Konfiguration größer ist als in der ersten Konfiguration.
  19. Verfahren, umfassend: Bereitstellen einer Speichermedienschnittstelle auf einer Halbleitervorrichtung, wobei die Speichermedienschnittstelle es einem Speichercontroller ermöglicht, auf eine oder mehrere Computerspeichervorrichtungen zuzugreifen, wobei die Speichermedienschnittstelle zwischen einer ersten Konfiguration und einer zweiten Konfiguration konvertierbar ist; Bestimmen, ob sich die Speichermedienschnittstelle direkt mit einer Computerspeichervorrichtung verbindet oder ob sie sich mit einer Mehrzahl von Computerspeichervorrichtungen über einen Expander /Re-Timer verbindet; und basierend auf dem Bestimmen, ob sich die Speichermedienschnittstelle direkt mit einer Computerspeichervorrichtung verbindet oder sich mit einer Mehrzahl von Computerspeichervorrichtungen über einen Expander/Re-Timer verbindet, Konfigurieren der Speichermedienschnittstelle entweder in der ersten Konfiguration oder der zweiten Konfiguration, wobei die erste Konfiguration bewirkt, dass die Speichermedienschnittstelle einen ersten Signalisierungsmechanismus verwendet, und wobei die zweite Konfiguration bewirkt, dass die Speichermedienschnittstelle einen zweiten Signalisierungsmechanismus verwendet, der sich von dem ersten Signalisierungsmechanismus unterscheidet.
  20. Verfahren nach Anspruch 19, wobei der Expander einen internen Speicherpuffer aufweist, der sich zwischen der Speichermedienschnittstelle und der einen oder den mehreren Computerspeichervorrichtungen befindet, und wobei der interne Speicherpuffer einen Übergang von einem ersten Taktbereich zu einen zweiten Taktbereich ermöglicht.
DE102019120264.7A 2018-07-27 2019-07-26 System und Verfahren zum Bereitstellen einer konfigurierbaren Speichermedienschnittstelle Pending DE102019120264A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/047,062 2018-07-27
US16/047,062 US10990307B2 (en) 2018-07-27 2018-07-27 System and method for providing a configurable storage media interface

Publications (1)

Publication Number Publication Date
DE102019120264A1 true DE102019120264A1 (de) 2020-01-30

Family

ID=69149057

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019120264.7A Pending DE102019120264A1 (de) 2018-07-27 2019-07-26 System und Verfahren zum Bereitstellen einer konfigurierbaren Speichermedienschnittstelle

Country Status (3)

Country Link
US (1) US10990307B2 (de)
CN (1) CN110781109A (de)
DE (1) DE102019120264A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210064278A1 (en) * 2019-08-27 2021-03-04 Micron Technology, Inc. Managing attributes of memory components
US11132292B2 (en) * 2019-12-10 2021-09-28 Micron Technology, Inc. Active input/output expander of a memory sub-system
JP2021149814A (ja) * 2020-03-23 2021-09-27 キオクシア株式会社 半導体記憶装置及び制御方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7389364B2 (en) * 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7363395B2 (en) * 2003-12-31 2008-04-22 Intel Corporation Intermediate device capable of communicating using different communication protocols
US8127059B1 (en) * 2005-09-02 2012-02-28 Pmc-Sierra Us, Inc. Apparatus for interconnecting hosts with storage devices
DE602006001446D1 (de) * 2005-09-23 2008-07-24 Infortrend Technology Inc Redundantes Speichervirtualisierungssubsystem mit Datenpfadverzweigungsfunktion
US8327224B2 (en) * 2009-04-16 2012-12-04 Micron Technology, Inc. Data recovery in a solid state storage system
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
WO2012073276A1 (en) * 2010-11-30 2012-06-07 Hitachi, Ltd. Storage system using sas bypass expanders
US8566496B2 (en) * 2010-12-03 2013-10-22 Lsi Corporation Data prefetch in SAS expanders
US8898382B2 (en) 2011-03-04 2014-11-25 Xyratex Technology Limited Storage system and a method of control of a storage system
JP6049891B2 (ja) * 2013-09-05 2016-12-21 株式会社日立製作所 ストレージシステム及び記憶制御方法
CN104657297B (zh) * 2015-02-03 2018-02-09 杭州士兰控股有限公司 计算设备扩展系统及扩展方法
US10347347B1 (en) * 2017-12-18 2019-07-09 Intel Corporation Link training mechanism by controlling delay in data path
US10496332B2 (en) * 2017-12-18 2019-12-03 Intel Corporation Data path training and timing signal compensation for non-volatile memory device interface

Also Published As

Publication number Publication date
CN110781109A (zh) 2020-02-11
US10990307B2 (en) 2021-04-27
US20200034060A1 (en) 2020-01-30

Similar Documents

Publication Publication Date Title
DE102019120264A1 (de) System und Verfahren zum Bereitstellen einer konfigurierbaren Speichermedienschnittstelle
DE102019122363A1 (de) Programmierbare doppelreihige arbeitsspeichermodul-beschleunigerkarte (dimm-beschleunigerkarte)
DE112017003334T5 (de) Lastreduzierte nichtflüchtige speicherschnittstelle
DE112007000443B4 (de) Vorrichtung mit einer gemeinsamen Schnittstelle fiir mehrere Prozessorkerne und Verfahren zur Steuerung der Kommunikation derselben mit einer damit gekoppelten Verbindung
DE102013104198A1 (de) Multi-CPU-System und Computersystem mit demselben
DE112013003250B4 (de) Kontaktloser Stresstest von Speicher-E/A-Schnittstellen
DE102012015396B4 (de) Numerisches Steuersystem mit einem Multikernprozessor
DE112018005427T5 (de) Autonome adress-/befehls-chip-synchronisierte datenchip-adress-ablaufsteuerung für ein verteiltes pufferspeichersystem
DE112011105909T5 (de) Stapelspeicher mit Schnittstelle, die Offset-Kopplungsstrukturen bereitstellt
DE102019112628A1 (de) Dimm für speicherkanal mit hoher bandbreite
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE112013003766T5 (de) Schnelles Entzerren beim Verlassen eines Niedrigenergie-Teilbreite-Hochgeschwindigkeitsverbindungszustands
DE112018005507T5 (de) Mehrkriterien-energiemanagementschema für gepoolte beschleunigerarchitekturen
DE102008024262B4 (de) Anschlussmultiplexbildung
DE602005006338T2 (de) Vorrichtung und Verfahren zur Datenübertragungsverarbeitung
DE102019102883A1 (de) Technologien zum Bewegen von Arbeitslasten zwischen Hardwarewarteschlangenmanagern
DE102017119470A1 (de) Elektronische Vorrichtung, die einen Bypass-Pfad zu einer indirekt verbundenen Speichervorrichtung unter in Reihe geschalteten Speichervorrichtungen bereitstellt, darin enthaltene Speichervorrichtung, Computersystem mit demselben, und Verfahren des Kommunizierens damit
DE102014005557A1 (de) Numerische Steuervorrichtung
DE112016002371T5 (de) Vorrichtung, gerät und system zum verringern der stromableitung während differentiellen kommunikationen
DE102012219059A1 (de) Effizientes Befehlsabbildungsschema für Kurze-Datenburstlängen- Speichervorrichtungen
DE102016206170B4 (de) Serielle draht-debug-brücke
DE102018005759A1 (de) Verbinden von beschleunigerressourcen unter verwendung einesswitches
DE102018119881A1 (de) Verwaltung einer DRAM-Bankaktivierung
DE102008030514A1 (de) Verfahren und Vorrichtung zur Anbindung von Speichervorrichtungen
DE112008002273T5 (de) Optimale Lösung zur Steuerung von Datenkanälen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LI, SG

Free format text: FORMER OWNER: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED, SINGAPORE, SG

Owner name: BROADCOM INTERNATIONAL PTE. LTD., SG

Free format text: FORMER OWNER: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED, SINGAPORE, SG

R082 Change of representative

Representative=s name: DILG, HAEUSLER, SCHINDELMANN PATENTANWALTSGESE, DE

R081 Change of applicant/patentee

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LI, SG

Free format text: FORMER OWNER: BROADCOM INTERNATIONAL PTE. LTD., SINGAPUR, SG