DE112017003334T5 - Lastreduzierte nichtflüchtige speicherschnittstelle - Google Patents

Lastreduzierte nichtflüchtige speicherschnittstelle Download PDF

Info

Publication number
DE112017003334T5
DE112017003334T5 DE112017003334.9T DE112017003334T DE112017003334T5 DE 112017003334 T5 DE112017003334 T5 DE 112017003334T5 DE 112017003334 T DE112017003334 T DE 112017003334T DE 112017003334 T5 DE112017003334 T5 DE 112017003334T5
Authority
DE
Germany
Prior art keywords
data
nvm
devices
buffer
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
DE112017003334.9T
Other languages
English (en)
Inventor
Emily CHUNG
Frank Hady
George Vergis
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.)
SK Hynix NAND Product Solutions Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112017003334T5 publication Critical patent/DE112017003334T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1066Output synchronization

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)

Abstract

Eine Speicherungsschaltung weist einen Puffer auf, der zwischen die Speicherungssteuerung und die Vorrichtungen mit nichtflüchtigem Speicher gekoppelt ist. Die Schaltung weist eine oder mehrere Gruppe/n von Vorrichtungen mit nichtflüchtigem Speicher (NVM), eine Speicherungssteuerung, um den Zugriff auf die Vorrichtung mit NVM zu steuern, und den Puffer auf. Der Puffer ist zwischen die Speicherungssteuerung und die Vorrichtungen mit NVM gekoppelt. Der Puffer soll die Datensignale auf einem Bus zwischen den Vorrichtungen mit NVM und der Speicherungssteuerung erneut treiben, einschließlich des Synchronisierens der Signale mit einem Taktsignal für die Signale. Die Schaltung kann einen Datenpuffer, einen Befehlspuffer oder beide aufweisen.

Description

  • PRIORITÄT
  • Für diese Anmeldung wird unter 35 U.S.C. § 365(c) die Priorität gegenüber der US-Anmeldung Nr. 15/201,370 , eingereicht am 1. Juli 2016, mit dem Titel LASTREDUZIERTE NICHTFLÜCHTIGE SPEICHERSCHNITTSTELLE beansprucht. Die vorliegende Anmeldung beansprucht den Vorteil der Priorität dieser Anmeldung.
  • GEBIET DER ERFINDUNG
  • Die Beschreibungen beziehen sich im Allgemeinen auf Speicherungsvorrichtungen, und genauere Beschreibungen beziehen sich auf eine lastreduzierte nichtflüchtige Speicherschnittstelle.
  • URHEBERRECHTSHINWEIS/GENEHMIGUNG
  • Teile der Offenbarung dieser Patentschrift können Material beinhalten, das dem Urheberrechtsschutz unterliegt. Der Urheberrechtseigentümer hat keinen Einwand gegen die Wiedergabe der Patentschrift oder der Patentoffenbarung durch irgendjemanden so wie sie in der Patentakte oder den Unterlagen beim Patent- und Markenamt erscheinen, behält sich allerdings alle anderen Urheberrechte vor. Der Urheberrechtshinweis bezieht sich auf alle Daten, wie nachstehend und in den hier angehängten Zeichnungen beschreiben, sowie auf jegliche nachstehend beschriebene Software: Urheberrecht© 2016, Intel Corporation, alle Rechte vorbehalten.
  • HINTERGRUND DER ERFINDUNG
  • Es scheint weiterhin eine enorme Steigerung in der Nachfrage nach mehr Speicherungsplatz und nach höherem Durchsatz für die Vorrichtungen, welche die Speicherung bereitstellen, vorhanden zu sein. Festkörpertechnologie hat viele Vorteile hinsichtlich der Leistung und Technik gegenüber herkömmlichen rotierenden Plattenspeichern, und Festkörperlaufwerke (SSDs, Solid State Drives) finden zunehmend Verwendung. Die Kapazität von SSDs nähert sich den Kapazitäten von Vorrichtungen, die mit herkömmlichen rotierenden Plattentechnologien hergestellt werden, und die Preise fallen auf ein Niveau, das als erschwinglich angesehen wird.
  • Allerdings ist die Kapazität nicht das einzige Interessensmaß bei SSDs. Leider bieten die SSDs höherer Kapazität aktuell nicht die äquivalente Leistung der Laufwerke niedrigerer Kapazität. Die Forschung zeigt, dass die SSDs mit Kapazität im mittleren Bereich den besten Durchsatz bereitstellen. Die SSD-Speicherungssteuerung erfordert, dass ein Speicherkanal zu den Vorrichtungen mit nichtflüchtigem Speicher (NVM, Nonvolatile Memory) eine minimale Anzahl an Speichervorrichtungen oder -halbleiterplättchen treibt, um die Befehls- und die Datenbusse auf maximaler Aktivität zu halten, und dass auf die Speicherhalbleiterplättchen parallel zugegriffen werden muss. Eine Erhöhung der Anzahl an Speicherhalbleiterplättchen auf dem Speicherkanal reduziert schließlich die gesamte Durchsatzleistung, wenn die gesteigerte kapazitive Last eine Reduzierung in der Taktfrequenz auf dem Bus zwischen der Steuerung und den Vorrichtungen mit NVM verlangt. Für einen einzelnen Speicherkanal muss ein Systemdesigner herkömmlicherweise zwischen hoher Bandbreite und niedriger Kapazität oder niedriger Bandbreite und hoher Kapazität wählen.
  • Da typischerweise über den Kompromiss hinsichtlich eines Einzelkanals nachgedacht wird, besteht eine allgemeine Lösung darin, Speicherkanäle hinzuzufügen, und sie alle für die höhere Bandbreite und niedrigere Kapazität zu konfigurieren. Allerdings erhöht das Hinzufügen von mehr Kanälen die Halbleiterplättchengröße und die Packungsgröße der Steuerung sowie der eigentlichen SSD. Erhöhte Steuerungsgröße und Packung erhöhen die Kosten.
  • Figurenliste
  • Die folgende Beschreibung beinhaltet die Erörterung von Figuren mit Darstellungen, die beispielhaft für Implementierungen von Ausführungsformen der Erfindung angeführt werden. Die Zeichnungen sind als Beispiele und nicht als Einschränkung zu verstehen. Wie hier verwendet, sind Bezugnahmen auf eine oder mehrere „Ausführungsform/en“ als Beschreibung eines besonderen Merkmals, einer besonderen Konstruktion und/oder einer besonderen Eigenschaft zu verstehen, das/die in mindestens einer Implementierung der Erfindung enthalten ist/sind. Somit beschrieben hier vorkommende Satzteile, wie beispielsweise „in einer Ausführungsform“ oder „in einer alternativen Ausführungsform“, verschiedene Ausführungsformen und Implementierungen der Erfindung und beziehen sich nicht notwendigerweise alle auf dieselbe Ausführungsform. Allerdings schließen sie sich auch nicht notwendigerweise gegenseitig aus.
    • 1 ist ein Blockschaubild einer Ausführungsform eines Computersystems, in welchem eine nichtflüchtige Speicherung einen Puffer aufweist.
    • 2 ist ein Blockschaubild einer Ausführungsform eines Systems mit einem Festkörperlaufwerk, das einen Puffer zwischen einer Steuerung und den nichtflüchtigen Speichervorrichtungen aufweist.
    • 3 ist ein Blockschaubild einer Ausführungsform eines Speicherungssystems mit einem Datenpuffer.
    • 4 ist ein Blockschaubild einer Ausführungsform eines Datenpuffers mit lernfähigen Hostseitigen und speicherseitigen Schnittstellen.
    • 5 ist ein Blockschaubild einer Ausführungsform eines Speicherungssystems mit einem Datenpuffer und einem Befehlspuffer.
    • 6 ist ein Blockschaubild einer Ausführungsform eines Speicherungssystems mit kaskadenartigen Datenpuffern.
    • 7A ist ein Ablaufschaubild einer Ausführungsform eines Prozesses zum Zugreifen auf Daten in einem mehrstufigen Speicher.
    • 7B ist ein Ablaufschaubild einer Ausführungsform eines Prozesses zum Verarbeiten einer Lesezugriffsanforderung in einem System mit einer hohen Kompressibilitätsmarkierung.
    • 7C ist ein Ablaufschaubild einer Ausführungsform eines Prozesses zum Verarbeiten einer Schreibzugriffsanforderung in einem System mit einer hohen Kompressibilitätsmarkierung.
    • 8 ist ein Blockschaubild einer Ausführungsform eines Rechensystems mit einem mehrstufigen Speicher, in welchem Markierungen hoher Kompressibilität implementiert werden können.
    • 9 ist ein Blockschaubild einer Ausführungsform einer Mobilvorrichtung mit einem mehrstufigen Speicher, in welchem Markierungen hoher Kompressibilität implementiert werden können.
  • Nun folgen Beschreibungen von bestimmten Einzelheiten und Implementierungen, einschließlich einer Beschreibung der Figuren, welche einige oder alle der nachstehenden Ausführungsformen zeigen können, sowie die Erörterung anderer möglicher Ausführungsformen oder Implementierungen der hier vorgestellten erfindungsgemäßen Konzepte.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Wie hier beschrieben, weist eine Speicherungsschaltung einen Puffer auf, der zwischen die Speicherungssteuerung und die Vorrichtungen mit nichtflüchtigem Speicher (NVM) gekoppelt ist. Die Schaltung weist eine oder mehrere Gruppe/n von Vorrichtungen mit NVM und eine Speicherungssteuerung auf, um den Zugriff auf die Vorrichtungen mit NVM zu steuern. Der Puffer reduziert die elektrische Last der Vorrichtungen mit NVM auf einen Bus zu der Speicherungssteuerung. Der Puffer soll Signale auf dem Bus erneut antreiben, einschließlich des Synchronisierens der Signale mit einem Taktsignal für die Signale. Die Schaltung kann einen Datenpuffer, einen Befehlspuffer oder beide aufweisen. Die reduzierte Belastung ermöglicht das Erhöhen der Dichte von Vorrichtungen mit NVM oder Speicherhalbleiterplättchen. Wie hier beschrieben, kann eine Speicherungsschaltung hohe Bandbreite sowie hohe Kapazität haben, ohne Kanäle hinzuzufügen.
  • Die reduzierte Belastung ermöglicht höhere Durchsatzleistung sogar mit Systemen höherer Kapazität. Somit kann ein Speicherungssystem eine Steuerung mit einem Speicherkanal aufweisen, der mehr parallel gekoppelte Vorrichtungen mit NVM hat, wobei, aufgrund einer niedrigeren kapazitiven Belastung auf dem Speicherkanal, die Taktfrequenz dieselbe oder ähnlich wie bei Systemen niedrigerer Kapazität bleiben kann. Durch Erhöhen der Kapazität eines Kanals, kann das System eine höhere Kapazität mit weniger Kanälen aufweisen, wodurch die Packungsgröße und die Systemformfaktoren beibehalten werden können. Als Alternative können kleinere Formfaktoren für vergleichbare Kapazität erreicht werden.
  • 1 ist ein Blockschaubild einer Ausführungsform eines Computersystems, in welchem eine nichtflüchtige Speicherung einen Puffer aufweist. Das System 100 stellt ein Beispiel eines Systems bereit, das einen nichtflüchtigen Speicher aufweist, wie beispielsweise einen Laptopcomputer, Server, eingebettete Vorrichtung, tragbare Vorrichtung oder anderes Computersystem. Der Prozessor 110 repräsentiert eine Verarbeitungseinheit einer Host-Computerplattform, welche ein Betriebssystem (OS, Operating System) und Applikationen ausführt, welche gemeinsam als „Host“ bezeichnet werden können. Das OS und die Anwendungen führen Operationen aus, die zu Zugriffen auf Speicher oder Speicherung oder beide führen. Der Prozessor 110 kann einen separaten oder mehrere separate Prozessor/en aufweisen. Jeder separate Prozessor kann eine einzelne Verarbeitungseinheit, eine Mehrkern-Verarbeitungseinheit oder eine Kombination aufweisen. Bei der Verarbeitungseinheit kann es sich um einen primären Prozessor, wie beispielsweise eine CPU (Central Processing Unit, zentrale Verarbeitungseinheit), einen peripheren Prozessor, eine GPU (Graphics Processing Unit, Grafikverarbeitungseinheit) oder einen anderen Prozessor oder eine Kombination handeln.
  • Das System 100 veranschaulicht den Speicher 122, welcher den flüchtigen Speicher in dem System 100 repräsentiert. Bei dem flüchtigen Speicher handelt es sich um Speicher, dessen Zustand (und deswegen die darin gespeicherten Daten) unbestimmt ist, wenn die Stromzufuhr zu der Vorrichtung unterbrochen ist. Bei NVM 112 handelt es sich um nichtflüchtigen Speicher, was sich auf Speicher bezieht, dessen Zustand bestimmt ist, selbst wenn die Stromzufuhr zu der Vorrichtung unterbrochen ist. Dynamischer flüchtiger Speicher erfordert das Aktualisieren der Daten, die in der Vorrichtung gespeichert sind, um den Zustand aufrechtzuerhalten. Dynamischer flüchtiger Speicher als Systemhauptspeicher ist üblich, um Code und Daten zur Ausführung durch den Prozessor 110 zu speichern. NVM 132 muss nicht aktualisiert werden.
  • Der Prozessor 110 greift auf den Speicher (oder die Speichervorrichtungen) 122 über die Speichersteuerung 120 zu, welche eine oder mehrere Speichersteuerungsschaltung/en oder - Vorrichtung/en, einschließlich Steuerlogik repräsentiert, welche Speicherzugriffsbefehle als Reaktion auf die Ausführung von Operationen durch den Prozessor 110 erzeugt. In einer Ausführungsform ist die Speichersteuerung 120 mit dem Prozessor 110 integriert (z. B. eine integrierte Speichersteuerung (iMC, Integrated Memory Controller)). In einer Ausführungsform weist der Speicher 122 Vorrichtungen auf, die direkt auf einer Hauptplatine oder Hostsystemplattform (z. B. einer PCB (Printed Circuit Board, gedruckten Leiterplatte), auf welcher der Prozessor 110 montiert ist, eines Computersystems montiert sind. In einer Ausführungsform kann der Speicher 122 in Speichermodule organisiert sein, wie beispielsweise Dual-Inline-Speichermodule (DIMMs, Dual Inline Memory Modules).
  • Bei dem Speicher 122 kann es sich um einen dynamischen flüchtigen Speicher, wie beispielsweise DRAM (Dynamic Random Access Memory, Dynamischen Speicher mit wahlfreiem Zugriff) oder eine Variante, wie beispielsweise synchronen DRAM (SDRAM) handeln oder er kann diesen beinhalten. Die Speichervorrichtungen 122 können verschiedene Speichertechnologien aufweisen, wie beispielsweise DDR3 (Dual Data Rate Version 3, Duale Datenrate Version 3, ursprüngliche Ausgabe durch JEDEC (Joint Electronic Device Engineering Council) am 27. Juni 2007, aktuelle Ausgabe 21), DDR4 (DDR Version 4, Anfangsspezifikation veröffentlicht im September 2012 durch JEDEC), DDR4E (DDR Version 4, erweitert, aktuell in Erörterung durch JEDEC), LPDDR3 (niedrig Leistung DDR Version 3, JESD209-3B, August 2013 durch JEDEC), LPDDR4 (niedrig Leistung doppelte Datenrate- (LPDDR) Version 4, JESD209-4, ursprünglich veröffentlicht bei JEDEC im August 2014), WIO2 (Wide I/O2 (WideIO2), JESD229-2, ursprünglich veröffentlicht bei JEDEC im August 2014), HBM (Speicher hoher Bandbreite, JESD235, ursprünglich veröffentlicht bei JEDEC im Oktober 2013), DDR5 (DDR Version 5, aktuell in Erörterung bei JEDEC), LPDDR5 (aktuell in Erörterung bei JEDEC), HBM2 (HBM Version 2), aktuell in Erörterung bei JEDEC), oder andere, oder Kombinationen von Speichertechnologien und Technologien handeln, die auf Derivaten oder Erweiterungen derartiger Spezifikationen beruhen.
  • Der Prozessor 110 greift auf NVM (oder Vorrichtungen mit NVM) 132 über die Speicherungssteuerung 130 zu, welche eine oder mehrere Speicherungssteuerungsschaltung/en oder -Vorrichtung/en repräsentiert. Die Speicherungssteuerung 130 weist Steuerungslogik auf, welche Speicherungstransaktionen zu NVM 132 als Reaktion auf die Ausführung eines Befehls durch den Prozessor 110 erzeugt. Eine Transaktion bezieht sich auf eine Speicherzugriffsoperation, wie beispielsweise Lesen oder Schreiben, was eine Befehlssequenz und einen Austausch von Daten aufweisen kann, und über zahlreiche Transferzyklen (Takte oder Einheitsintervalle (UIs, Unit Intervals)) stattfinden kann. Bei einer derartigen Transaktion kann es sich um das Zugreifen auf Daten handeln, um sie in einen Speicher 122 oder in einen Zwischenspeicher von Prozessor 110 oder beide zu platzieren. Die Speicherungssteuerung 130 weist Planungslogik und Befehlslogik auf, um Befehle zu erzeugen. Die Speicherungssteuerung 130 kann Puffer oder temporäre Speicherung aufweisen oder darauf zugreifen, um Daten zum Lesen oder zum Schreiben zu halten.
  • Bei NVM 132 kann es sich um Vorrichtungen mit nichtflüchtigem Speicher, wie beispielsweise eine Vorrichtung mit blockadressierbarem Speicher, wie beispielsweise NAND- oder NOR-Technologien handeln oder sie kann diese aufweisen. NVM 132 kann Vorrichtungstechnologien, wie beispielsweise eine dreidimensionale Kreuzpunkt- (3DXP, Three Dimensional Crosspoint) Speichervorrichtung, andere byteadressierbare nichtflüchtige Speichervorrichtungen oder Speichervorrichtungen aufweisen, welche Chalkogenid-Phasenwechselmaterial (z. B. Chalkogenidglas) verwenden. In einer Ausführungsform kann es sich bei der Speichervorrichtung um einen Mehrfachschwellenwertstufen-NAND-Flash-Speicher, NOR-Flash-Speicher, Einzel- oder Mehrstufenphasenwechselspeicher (PCM, Phase Change Memory) oder Phasenwechselspeicher mit einem Schalter (PCMS, Phase Change Memory with a Switch), einen resistiven Speicher, Nanodrahtspeicher, ferroelektrischen Transistorspeicher mit wahlfreiem Zugriff (FeTRAM, Ferroelectric Transistor Random Access Memory), einen magnetoresistiven Speicher mit wahlfreiem Zugriff (MRAM, Magnetoresistive Random Access Memory), einen Speicher, in den Memristortechnologie oder Spinübertragungsdrehmoment (STT)-MRAM integriert ist, oder eine Kombination von irgendeinem der Vorstehenden, oder andere nichtflüchtige Speichertechnologien handeln oder sie kann diese aufweisen.
  • Von dem System 100 kann gesagt werden, dass es auf flüchtigen Speicher oder nichtflüchtigen Speicher (die als „Speicher“ oder „Speicherung“ zur Unterscheidung in der Beschreibung bezeichnet werden) oder auf beide über einen Speicherkanal oder mehrere Speicherkanäle zugreift. So kann der Prozessor 110 auf den Speicher 122 über einen Speicherkanal oder mehrere Speicherkanäle über eine oder mehrere Speichersteuerung/en 120 zugreifen. In einer Ausführungsform greift der Prozessor 110 auf NVM 132 über einen Speicherkanal oder mehrere Speicherkanäle 134 zu. In einer Ausführungsform kann das System 100 mehrfache Speicherungssteuerungen 130 aufweisen. In einer Ausführungsform weist die Speicherungssteuerung 130 mehrfache Speicherkanäle zu NVM 132 auf. Jeder separate Kanal koppelt mit Bussen und Signalleitungen, die mit mehrfachen Vorrichtungen parallel koppeln, unabhängig davon, ob es sich um Kanäle von der Speichersteuerung 120 oder um Kanäle von der Speicherungssteuerung 130 handelt. Jeder Kanal ist unabhängig betreibbar. Somit wird auf jeden Kanal unabhängig zugegriffen und er wird unabhängig gesteuert, und die Zeitplanung, der Datentransfer, Befehls- und Adressenaustausch und andere Operationen sind für jeden Kanal unabhängig. Wie hier verwendet, kann sich Koppeln auf ein elektrisches Koppeln, kommunikatives Koppeln, physikalisches Koppeln oder eine Kombination von diesen beziehen. Physikalisches Koppeln kann direkten Kontakt aufweisen. Elektrisches Koppeln weist eine Schnittstelle oder Zwischenverbindung auf, welche elektrischen Fluss zwischen Komponenten ermöglicht oder Signalisieren zwischen Komponenten oder beides ermöglicht. Kommunikatives Koppeln weist Verbindungen auf, einschließlich drahtgebundener oder drahtloser, welche Komponenten befähigen, Daten auszutauschen.
  • In einer Ausführungsform repräsentiert die Speicherungssteuerung 130 eine ASIC (Application Specific Integrated Circuit, anwendungsspezifische integrierte Schaltung) oder eine andere Steuerung auf einem Festkörperlaufwerk (SSD). Als solche kann die Speicherungssteuerung 130 mit dem Prozessor 110 über eine oder mehrere andere Steuerschaltung/en in dem Prozessor 110 oder in einem Chipsatz, welcher Speicherungsressourcen mit dem Prozessor 110 zwischenverbindet, eine Schnittstelle bilden. Die Speicherungssteuerung 130 kann als eine SSD-Steuerung bezeichnet werden. In einer Ausführungsform weist NVM 132 Vorrichtungen auf, die auf flüchtige Speichervorrichtungsbefehlsprotokolle (z. B. DDR4-Protokolle) reagieren können. In einer Ausführungsform unterstützt die Steuerung 130 sowohl ein Speicherbefehlsprotokoll als auch ein Befehlsprotokoll für den Puffer 140, welcher den Kanal 134 befähigen kann, mehrfache Vorrichtungen mit NVM 132 mit dem Puffer 140 in einem Baumnetzwerk anstatt einem Punkt-zu-Punkt-Netzwerk zu koppeln.
  • Der Puffer 140 repräsentiert eine Puffervorrichtung auf dem Kanal 134, welche die Last auf dem Speicherkanal reduzieren kann. So unterliegt der Kanal 134, als ein Punkt-zu-Punkt-Netzwerk, bedeutender Belastung, da mehr Vorrichtungen mit NVM 132 mit dem Kanal gekoppelt sind. Als ein gepufferter Kanal sieht die I/O- (Input/Output, Eingangs-/Ausgangs-) Hardware der Speicherungssteuerung 130 nur die Belastung des Puffers 140, und der Puffer 140 treibt die Signale erneut auf dem Kanal 134 zu den Vorrichtungen mit NVM 132 an. Somit kann der Puffer 140 als Lastreduzierung und Verstärker zwischen der Speicherungssteuerung 130 und NVM 132 agieren.
  • Wie schon kurz erwähnt, kann von dem Kanal 134 angenommen werden, zwei Befehlsprotokolle zu unterstützen. Bei dem ersten Befehlsprotokoll handelt es sich um ein Speicherbefehlsprotokoll, um Befehle an NVM 132 zu senden. Bei dem zweiten Befehlsprotokoll handelt es sich um ein Befehlsprotokoll für den Puffer 140, welcher die Steuerung über die Operationen des Puffers ermöglicht. In einer Ausführungsform sendet die Speicherungssteuerung 130 zuerst einen Speicherbefehl (z. B. über einen Befehls-/Adressenbus, welcher als C/A-Bus oder ADD/CMD-Bus oder eine andere Bezeichnung bezeichnet werden kann). In einer derartigen Ausführungsform sendet die Speicherungssteuerung 130 einen Befehl über einen Pufferbefehlsbus an den Puffer 140 und sendet einen derartigen Befehl nach dem Senden des Befehls an NVM 132. In einer Ausführungsform kann der Kanal 134 die Befehlsprotokolle über das Planen von Zeitplanung arrangieren, um sicherzustellen, dass die Speicherkanal-Protokollzeitplanungen erfüllt werden.
  • So wird zum Beispiel ein Fall betrachtet, in welchem der Kanal 134 in Übereinstimmung mit einem DDR4-Protokoll arbeitet, um mit 3DXP-Speichervorrichtungen wie NVM 132 eine Schnittstelle zu bilden. Durch Steuern der Planung von Befehlssignalen zu den 3DXP-Speichervorrichtungen und dem Puffer 140, kann die Speicherungssteuerung 130 sicherstellen, dass der Kanal 134 mit beiden DDR4-Protokollzeitplanungen für den Austausch von Daten mit der Speicherungssteuerung 130 sowie auch 3DXP-Protokollzeitplanungen in dem Maße kompatibel ist, wie ein Unterschied besteht. Derartige Kompatibilität der Protokollzeitplanung erfordert nicht unbedingt das Wechseln der 3DXP-Vorrichtungen, und kann die Verwendung eines mit DDR4 kompatiblen Datenpuffers als Puffer 140 (z. B. Wiederverwenden eines Datenpuffers eines LRDIMM (Load Reduced Dual Inline Memory Module, lastreduzierten dualen Inline-Speichermoduls)) ermöglichen. Alternativ zu der Zeitplanungssteuerung gegenüber den Befehlssignalen, kann der Puffer 140 mit Logik entworfen sein, die beiden Protokollzeitplanungen entgegenkommen kann. Derartige Logik könnte die Schreib- und Leselatenzzeit in DIMM-Implementierungen von System 100 beeinträchtigen, in welchem Vorrichtungen mit NVM 132 in einem oder mehreren DIMMs montiert sind.
  • In einer Ausführungsform unterstützt der Kanal 134 das Anlernen von sowohl einer Hostschnittstelle des Puffers 140 (hinsichtlich des Kanals 134, der mit der Speicherungssteuerung 130 gekoppelt ist) als auch einer Speicherschnittstelle (hinsichtlich von NVM 132). In einer Ausführungsform kann die Unterstützung für zwei Befehlsprotokolle notwendig sein, die vorstehend erörtert werden, um das Anlernen der beiden Schnittstellen zu implementieren. In einer Ausführungsform kann der Kanal 134 feste Strukturen in ein Register eines Puffers 140 (z. B. ein Mehrzweckregister (MPR, Multipurpose Register)) schreiben, um dem Puffer 140 zu erlauben, Lesedaten mit den festen Strukturen für ein NVM für das Leseverzögerungslernen zu vergleichen. Somit kann die Speicherungssteuerung 130 und der Puffer 140 die Hostschnittstelle anlernen, und die Speicherungssteuerung kann Daten in den Puffer 140 schreiben, welche der Puffer verwenden kann, um die Zeitplanung der Speicherschnittstelle zu lernen. Es versteht sich, dass die Speicherschnittstelle oder die Hardware, welche den Puffer 140 mit NVM 132 verbindet, die Hostschnittstelle implementieren kann, wobei die Zeitplanung durch Pufferbefehle angepasst wird, um auch mit einem Protokoll von NVM 132 in einer Implementierung kompatibel zu sein, in welcher die Protokolle unterschiedlich sind.
  • In einer Ausführungsform unterstützt das System 100 die Verwendung einer kaskadenartigen Baumstruktur oder einer anderen Art von Baum, um mehrfache Puffer 140 und mehrfache Gruppen von Vorrichtungen mit NVM 132 zu koppeln. Als ein Beispiel wird die nachstehend angeführte Beschreibung mit Bezugnahme auf 6 betrachtet. In einer Ausführungsform kann die Speicherungssteuerung 130 hinsichtlich der Zeitplanung von unterschiedlichen Protokollen die Zeitplanung von Befehlssignalen steuern, um längere Bursts von Datentransfers sogar mit Speichervorrichtungen oder Protokollen zu ermöglichen, die unterschiedliche Datenbursts anwenden würden. Weitere Einzelheiten werden nachstehend hinsichtlich 3 bereitgestellt.
  • 2 ist ein Blockschaubild einer Ausführungsform eines Systems mit einem Festkörperlaufwerk (SSD), das einen Puffer zwischen einer Steuerung und den nichtflüchtigen Speichervorrichtungen aufweist. Das System 200 weist den Host 210 auf, der mit SSD 230 gekoppelt ist. Das System 200 stellt ein Beispiel eines Systems in Übereinstimmung mit System 100 von 1 bereit. Der Host 210 repräsentiert eine Host-Hardwareplattform, welche mit SSD 230 verbunden ist. Der Host 210 weist die CPU (zentrale Verarbeitungseinheit) 212 oder einen anderen Prozessor auf. Die CPU 212 repräsentiert jeden beliebigen Host-Prozessor, der Anforderungen erzeugt, um auf Daten zuzugreifen, die auf dem SSD 230 gespeichert sind, entweder, um die Daten zu lesen oder die Daten in die Speicherung zu schreiben oder beides. Der Host 210 weist einen Chipsatz 214 auf, welcher weitere Hardware-Komponenten repräsentiert, die beim Verbinden zwischen der CPU 212 und dem SSD 230 mit einbezogen sein können. So kann der Chipsatz 214 zum Beispiel Treiber und weitere Logik oder Schaltungsanordnung aufweisen, um Zugriff auf das SSD 230 bereitzustellen. In einer Ausführungsform weist der Chipsatz 214 eine Speicherungssteuerung auf, bei der es sich um eine hostseitige Steuerung handelt, die separat von der Steuerung 240 innerhalb des SSD 230 ist.
  • Auf einer Seite der gestrichelten Linie veranschaulicht der Host 210 ausgewählte Komponenten der Hardware-Plattform von Host 210. Auf der anderen Seite der gestrichelten Linie veranschaulicht der Host 210 eine Ausführungsform von Logikschichten von Host 210. In einer Ausführungsform weist der Host 210 Host-OS 222 auf, welcher das Host-Betriebssystem oder die Software-Plattform für den Host repräsentiert. Die CPU 212 kann das Host-OS 222 ausführen und eine Software-Plattform bereitstellen, auf welcher Applikationen, Dienste, Agenten oder weitere Software ausgeführt werden. Das Dateisystem 224 repräsentiert Steuerlogik zum Steuern des Zugriffs auf das SSD 230. Das Dateisystem 224 kann verwalten, welche Adressen oder Speicherstellen zum Speichern welcher Daten verwendet werden. Es gibt zahlreiche bekannte Dateisysteme, und das Dateisystem 224 kann bekannte Dateisysteme oder andere proprietäre Systeme implementieren. In einer Ausführungsform ist das Dateisystem 224 ein Bestandteil von Host-OS 222. Die Treiber 226 repräsentieren Systemstufenmodule, welche Hardware steuern. In einer Ausführungsform weisen die Treiber 226 eine Software-Applikation auf, um die Hardware von SSD 230 zu steuern.
  • Das SSD 230 repräsentiert ein Festkörperlaufwerk, das Vorrichtungen mit NVM 272, um Daten zu speichern, und den Puffer 260 aufweist, um Vorrichtungen mit NVM 272 mit der Steuerung 240 zu koppeln. Die Steuerung 240 steuert den Zugriff auf Vorrichtungen mit NVM 272. In einer Ausführungsform repräsentiert die Steuerung 240 eine Speicherungssteuerung in Übereinstimmung mit jeder beliebigen hier beschriebenen Ausführungsform. In einer Ausführungsform handelt es sich bei der Speicherungssteuerung 240 um eine anwendungsspezifische integrierte Schaltung (ASIC). Die Steuerung 240 weist die Hostschnittstelle 242 auf, um mit der CPU 212 entweder direkt oder durch andere Hardware-Komponenten zu koppeln. Die Steuerung 240 weist die NVM-Schnittstelle 246 auf, um mit den Vorrichtungen mit NVM 272 eine Schnittstelle zu bilden. Die Hostschnittstelle 242 und die NVM-Schnittstelle 246 können Hardware-Komponenten repräsentieren, um mit Signalleitungen eine Schnittstelle zu bilden, um Vorrichtungen miteinander zu verbinden, sowie auch Software- oder Firmware-Komponenten, um die Schnittstellen zu steuern. In einer Ausführungsform können die Schnittstellen über Zustandsmaschinen oder weitere Logik gesteuert werden. Derartige Logik kann in Hardware, Software oder einer Kombination implementiert sein.
  • Die Firmware 244 steuert die Hardware-Schnittstellen, um Kommunikation zu ermöglichen. In einer Ausführungsform weist die Firmware 244 mindestens einen Teil der Logik auf, welche als die Hostschnittstelle 242 oder die NVM-Schnittstelle 246 oder beide betrachtet werden könnte. In einer Ausführungsform stellt die Firmware 244 eine Serie von Befehlssequenzen für die Vorrichtungen mit NVM 272 bereit, und kann die Zeitplanung der Befehlssequenzen steuern. Das SSD 230 weist den Puffer 260 auf, welcher einen Puffer in Übereinstimmung mit jeder beliebigen hier beschriebenen Ausführungsform repräsentiert, welcher die Belastung von Vorrichtungen mit NVM 272 auf dem Speicherkanal in dem SSD 230 reduziert. In einer Ausführungsform steuert die Firmware 244 die Zeitplanungen von Befehlen zu dem Puffer 260, um den Transfer von Daten zu Vorrichtungen mit NVM 272 für eine Schreib-Transaktion oder von Vorrichtungen mit NVM 272 für eine Lese-Transaktion zu steuern.
  • Die Steuerung 240 weist einen Planer 252 auf, um Operationen, wie beispielsweise die Erzeugung und das Senden von Befehlen oder den Transfer von Daten für Datenzugriffstransaktionen zu planen. In einer Ausführungsform weist der Planer 252 eine oder mehrere Warteschlange/n auf, um Sequenzen von Operationen zu puffern. In einer Ausführungsform weist die Steuerung 240 Fehlersteuerlogik 254, um Datenfehler in den zugegriffenen Daten zu behandeln, und Grenzfälle hinsichtlich der Kompatibilität beim Signalisieren und dem Bilden von Kommunikationsschnittstellen auf.
  • Das SSD 230 weist einen oder mehrere Puffer 260 auf. In einer Ausführungsform repräsentiert der Puffer 260 einen Datenpuffer, welcher die Datensignale für eine Lese- oder Schreibtransaktion puffert und erneut treibt. In einer Ausführungsform weist der Puffer 260 einen Befehlspuffer auf, welcher die Befehlssignale puffert und erneut treibt. Es versteht sich, dass übliche Implementierungen von System 200 mehr vom Datenpuffern als vom Befehlspuffern profitieren werden, weil es sich typischerweise um mehrfache Datentransferzyklen von Daten für jeden Befehl handelt. Dennoch versteht es sich, dass Befehlspuffern zusätzlich zu Datenpuffern durchgeführt werden kann.
  • In einer Ausführungsform wird ein oder werden mehrere Puffer 260 zu Datenpufferkomponenten umfunktioniert, wie beispielsweise Datenpuffer, die in flüchtigen Speicher-DIMM-Lösungen verwendet werden. In einer Ausführungsform verwendet ein oder verwenden mehrere Puffer 260 eine DDR4-LRDIMM Datenpuffer DDR4DB02- (DB, Data Buffer) Komponente erneut. In einer Ausführungsform agiert der Puffer 260 als ein Verstärker für Signale. Der Puffer 260 kann als ein Lastreduzierungsagent oder Proxy für den Host 210 betrachtet werden. Der Puffer 260 kann für die Vorrichtungen mit NVM 272 Lastreduzierung bereitstellen. In einer Ausführungsform bildet die Steuerung 240 mit den Vorrichtungen mit NVM 272 bei Geschwindigkeiten oder mit einer modifizierten Schnittstelle einer herkömmlichen flüchtigen Speicherschnittstelle eine Schnittstelle. Selbst in dem Fall einer Wiederverwendung eines bekannten Datenpuffers ist das System 200 unterschiedlich von einem herkömmlichen flüchtigen Speichersystem konfiguriert, das Lastpuffern aufweist. So wird zum Beispiel die Schnittstelle zu den Vorrichtungen mit NVM 272 unterschiedlich sein, mindestens dahingehend, dass eine oder mehrere Zeitplanung/en unterschiedlich von einer typischen flüchten Speicherschnittstelle gesteuert wird/werden. In einer Ausführungsform kann, zusätzlich zum erneuten Treiben von Signalen (z. B. Daten- oder Befehlssignalen oder beiden) von Vorrichtungen mit NVM 272 oder zu Vorrichtungen mit NVM 272 oder beiden, der Puffer 260 die Signale erneut zeitlich planen. Das erneute zeitliche Planen kann das Synchronisieren der Signale mit einem Abtast- oder Taktsignal aufweisen.
  • In einer Ausführungsform sind die Vorrichtungen mit NVM 272 als eine oder mehrere Gruppe/n 270 von Vorrichtungen organisiert. Eine Gruppe 270 von Vorrichtungen mit NVM 272 weist mehrfache Vorrichtungen auf. Bei den Vorrichtungen mit NVM 272 kann es sich um gepackte Vorrichtungen handeln oder sie können diese aufweisen. Bei den Vorrichtungen mit NVM 272 kann es sich um Schaltungshalbleiterplättchen handeln oder sie können diese aufweisen, die direkt auf ein Schaltungssubstrat montiert werden können oder mit mehrfachen Halbleiterplättchen pro I/C- (Integrierte Schaltung) Packung gepackt werden können. In einer Ausführungsform weist das SSD 230 einen Puffer 260 pro Gruppe 270 von N Vorrichtungen mit NVM 272 auf, wie beispielsweise acht oder sechzehn Vorrichtungen. In einer Ausführungsform weist das SSD 230 mehrfache Leiterplatten von NVM-Ressourcen mit einem Datenpuffer 260 und einer Gruppe 270 von Vorrichtungen mit NVM pro Leiterplatte auf. In einer Ausführungsform können derartige Leiterplatten zu einem Baumnetzwerk gekoppelt werden, wobei Puffer in einer Hierarchie geschichtet werden.
  • In einer Ausführungsform unterstützen die Vorrichtungen mit NVM 272 und Puffer 260 den Datentransfer in Bursts. Ein Burst von Daten weist eine spezifische Burstlängen- (BL, Burst Length) Anzahl an Einheitsintervallen des Datentransfers auf, wobei ein Transfer ein einziges Bit von jeder Signalleitung einer Speicherschnittstelle pro Transferzyklus oder pro Einheitsintervall aufweist. Eine Datenzugriffstransaktion weist eine Datenzugriffsanforderung auf, wobei die Steuerung 240 als Reaktion darauf einen Datenzugriffsbefehl ausgibt, welcher einem sequentiellen Burst von Bits auf jeder Signalleitung der Datenschnittstelle für mehrfache Transferzyklen zugeordnet ist. Somit wird eine Implementierung von Puffer 260 als Datenpuffer einen Strom von Bits für eine Speicherzugriffstransaktion empfangen.
  • In einer Ausführungsform, in welcher eine Burstlänge verwendet wird, kann eine Fehlanpassung zwischen der BL-Konfiguration eines Datenpuffers 260 und einer BL-Konfiguration von Vorrichtungen mit NVM 272 vorliegen. So wird zum Beispiel in Betracht gezogen, dass der Datenpuffer 260 dazu konfiguriert ist, 8 Zyklen von Datenbits zu puffern, oder für BL8 konfiguriert ist, und dass die Vorrichtungen mit NVM 272 für Datenzugriffstransaktionen von BL16 konfiguriert sind. In einer Ausführungsform gibt die Steuerung 240 aufeinanderfolgende Anforderungen oder Befehle aus, und der Datenpuffer 260 empfängt denselben Befehl zwei Mal. In einer Ausführungsform behandelt der Datenpuffer 260 als Reaktion auf das Empfangen der konsekutiven Befehle, welche dieselben sind, die Befehle als einen Einzelbefehl mit der doppelten Burstlänge. So kann der Datenpuffer zum Beispiel konsekutive Befehle für Datentransfers, bei denen der Datenpuffer 260 die Befehle als BL8-Befehle behandeln würde, die beiden Anforderungen als einen Einzel-BL16-Befehl behandeln. Es sind andere Burstlängen möglich.
  • In einer Ausführungsform weisen die Gruppen 270 mehrfache DIMMs mit jeweils mehrfachen Vorrichtungen mit NVM auf. In einer Ausführungsform kann der Speicherkanal als Kopplung mit mehrfachen Puffern 260 auf einem Mehrpunktbus betrachtet werden. In einer Ausführungsform in einem Mehrpunktszenario mit mehrfachen DIMMS (oder weiterer Gruppierung für Gruppen 270) und mehrfachen Puffern 260, wird es eine Gruppe 270 geben, welche das Ziel des Befehls ist, wobei es sich bei dem Ziel um die Gruppe 270 handelt, welche die Daten für ein Lesen speichert, oder die Daten für ein Schreiben speichern soll. Bei den anderen Gruppen 270 wird es sich um Nicht-Zielgruppen 270 handeln. In einer Ausführungsform beenden die Nicht-Zielgruppen 270 die Signale, die übertragen werden, um die Signalreflektionen zu reduzieren, wodurch die Signalqualität für die Zielgruppe 270 verbessert wird. In einer Ausführungsform weist die Beendigung synchrone Beendigung auf. In einer Ausführungsform weist der Puffer 260 einen Zähler auf, um Impulse zu zählen, die übertragen werden, um eine gute Beendigung und Leistung sicher zu stellen.
  • Wie beschrieben, weist das System 200 in einer Ausführungsform eine oder mehrere Gruppe/n 270 von Vorrichtungen mit NVM 272 auf. Jede Gruppe 270 kann mehrfache Vorrichtungen mit NVM 272 aufweisen. Die Speicherungssteuerung 240 steuert oder verwaltet das Lesen aus und Schreiben in Vorrichtungen mit NVM 272. Ein oder mehrere Puffer 260, wie beispielsweise ein einziger Puffer pro Gruppe 270, ist/sind zwischen die Speicherungssteuerung 240 und die Gruppen von Vorrichtungen mit NVM 270 gekoppelt. In einer Ausführungsform ist der Puffer 260 auf einem Datenbus und treibt Datensignale erneut auf dem Datenbus an, und synchronisiert Datensignale mit einem Taktsignal. Das SSD 230 kann mehrfache Puffer 260 und Gruppen 270 aufweisen.
  • 3 ist ein Blockschaubild einer Ausführungsform eines Speicherungssystems mit einem Datenpuffer. Das System 300 veranschaulicht ein Beispiel einer Speicherungssteuerung und Vorrichtungen mit NVM in Übereinstimmung mit einer Ausführungsform von irgendeinem oder beiden von System 100 oder System 200. In einer Ausführungsform repräsentiert das System 300 ein SSD. Die Steuerung 310 repräsentiert die Speicherungssteuerung. Das System 300 weist Gruppen 320[0] bis 320[N-1] auf, die zweckmäßig einfach als Gruppe 320 oder Gruppen 320 bezeichnet werden. Die Gruppen 320 weisen jeweils mehrfache Vorrichtungen mit NVM 322 auf. In einer Ausführungsform weist jede Gruppe 320 dieselbe Anzahl an Vorrichtungen mit NVM 322 auf, obwohl eine derartige Konfiguration für einige Implementierungen nicht notwendig sein mag.
  • Das System 300 weist einen Datenpuffer auf, der jeder Gruppe 320 entspricht. Somit ist das System 300 mit Datenpuffern 330[0] bis 330[N-1] veranschaulicht, die jeweils den Gruppen 320[0] bis 320[N-1] entsprechen. Ähnlich den Gruppen 320 können die Datenpuffer 330[0] bis 330[N-1] zweckmäßig einfach als der Datenpuffer 330 oder die Datenpuffer 330 bezeichnet werden.
  • Die Leitungen zum Zwischenverbinden der Steuerung 310 mit Datenpuffern 330 und Gruppen 320 repräsentieren Signalleitungen eines Speicherkanals für das System 300. In einer Ausführungsform weist der Speicherkanal einen Befehls- und Adressen- (C/A, Command/Address) Bus auf, wobei typischerweise die Adresseninformationen in einem oder mehreren Feld/ern von Informationen enthalten sind, denen Befehlsinformationen bereitgestellt werden. Die Adresse identifiziert die Speicherstelle, auf welche die Speichertransaktion angewendet werden soll, die durch den Befehl angezeigt wird. Der C/A-Bus ist durch eine Linie mit langen Strichen repräsentiert. Der Speicherkanal von System 300 weist einen Daten- (DQ) Bus auf, welcher den Transfer von Daten von der Steuerung 310 zu Vorrichtungen mit NVM 322 für ein Schreiben, und von Vorrichtungen mit NVM 322 zu der Steuerung 310 für ein Lesen ermöglicht. Der Datenbus ist durch eine durchgehende Linie repräsentiert. In einer Ausführungsform weist der Speicherkanal einen Pufferbefehlsbus auf (repräsentiert als BUF in System 300, könnte aber auch mit einer unterschiedlichen Benennung versehen sein). Der Pufferbefehlsbus ist durch eine Strich-Punkt-Linie repräsentiert.
  • Das System 300 stellt reduzierte Belastung für den Speicherkanal an der Steuerung 310 bereit, wodurch SSD-Implementierungen mit hoher Bandbreite und hoher Kapazität ohne Hinzufügung von Speicherkanälen ermöglicht werden können. In einer Ausführungsform koppelt sich der Datenbus von der Steuerung 310 mit Datenpuffern 330, wodurch die DQS-(Datenabtastung) und DQ- (Daten) Signale angepasst werden können, um die Ausbreitungsverzögerungen zu/von oder zwischen der Steuerung 310 und den Vorrichtungen mit NVM 320 zu berücksichtigen. In einer Ausführungsform können die Puffer 330 die DQS- und DQ-Signale anpassen, um Spannungsschwankungen, Temperaturschwankungen, Prozessschwankungen oder eine Kombination davon zu berücksichtigen.
  • In einer Ausführungsform kann das Taktsignal, das dazu benutzt wird, die C/A-Signale zu übertragen, mit den Datenpuffern 330 gekoppelt werden. Die Datenpuffer 330 können die Datensignale erneut zeitlich planen, und den Transfer der Datensignale auf der Grundlage der Zeitplanung des Taktsignals für die Befehle in dem System 300 synchronisieren. Die Befehls- und Adressinformationen sowie auch der Takt kann mit den Gruppen 320 von Vorrichtungen mit NVM 322 gekoppelt werden. In einer Ausführungsform steuert die Steuerung 310 die Zeitplanung von Signalen zu Datenpuffern 330 über den Pufferbefehlsbus. So kann die Steuerung 310 zum Beispiel auf der Grundlage der Zeitplanung von Signalen zu den Datenpuffern 330 und der Zeitplanung der eigentlichen Transaktionen das System 300 befähigen, ein oder mehrere Protokoll/e einzuhalten.
  • In einer Ausführungsform sendet die Steuerung 310 aufeinanderfolgende Datenzugriffsbefehle an die Vorrichtungen mit NVM 322, welche die Vorrichtungen mit NVM als einen Einzelbefehl doppelter Länge interpretieren. Die Datenpuffer 330 können die Daten zwischen der Steuerung 310 und den Vorrichtungen mit NVM 322 puffern, wodurch der Transfer von zwei konsekutiven BLs von Daten als eine Einzel-BL ermöglicht werden kann. So unterstützen die Datenpuffer 330 zum Beispiel in einer Ausführungsform ein DDR4-Protokoll, das für BL8 konfiguriert ist, und die Vorrichtungen mit NVM 322 weisen 3DXP-Vorrichtungen auf, welche in Übereinstimmung mit einem 3DXP-Protokoll arbeiten, das für BL16 konfiguriert ist. In einer Ausführungsform übertragen die Datenpuffer 330 16 Byte anstelle von 8 Byte. In einer Ausführungsform können die Datenpuffer 330 den zweiten Befehl intern übergehen und weiterhin die zweite Burstlänge von Daten (z. B. zuerst 8 Byte übertragen und danach weiter ein zweites Mal 8 Byte übertragen) ohne Aussetzzyklen als Burst ausgeben. Zusätzlich zu Vorrichtungen mit NVM 322, welche eine doppelte Menge an Datensignalen als eine Einzeltransaktion behandeln, können die Datenpuffer wahrscheinlich dazu ausgelöst werden, für die doppelte Anzahl an BL-Zyklen zu arbeiten.
  • Es versteht sich, dass die Datenpuffer 330 unterschiedliche Funktionen als einen passiven Schalter bereitstellen, der in NAND-SSDs verwendet wird, der die SSD-Schreibdaten an das ausgewählte Speicherhalbleiterplättchen ausfächert. Wie hier beschrieben, können die Datenpuffer 330 Daten an alle verbundenen Halbleiterplättchen rundsenden. In einer Ausführungsform befolgen die Vorrichtungen mit NVM 322 feste Schreib- und Leseprotokollzeitplanungen und Latenzzeiten, wie beispielsweise deterministischer Datentransfer. Herkömmliche NAND-Vorrichtungen befolgen das ONFI- (Open NAND Flash Interface, offene NAND-Flash-Schnittstellen-) Protokoll, das herkömmlicherweise darauf wartet, dass Daten vor dem Transfer bereit sind. Das ONFI-Protokoll stellt keinen deterministischen Datentransfer bereit. Wie hier beschrieben, können NAND-Vorrichtungen mit NVM mit Datenpuffern 330 verwendet werden, um lastreduzierten Datentransfer bereitzustellen.
  • In einer Ausführungsform sendet die Steuerung 310 Befehls- und Adressdaten an Vorrichtungen mit NVM 322 vor dem Senden von Pufferbefehlssignalen an die Datenpuffer 330. In einer Ausführungsform können sich die Pufferbefehlssignale auf ein oder mehrere Steuersignal/e beziehen, welche einen Datenpuffer 330 auslösen werden, um die Datensignale an eine zugeordnete Gruppe 320 von Vorrichtungen mit NVM 322 zu übertragen. In einer Ausführungsform können sich die Pufferbefehlssignale auf ein oder mehrere Steuersignal/e beziehen, welche einen Datenpuffer 330 auslösen werden, um die Datensignale von einer zugeordneten Gruppe 320 von Vorrichtungen mit NVM 322 zu übertragen. In einer Ausführungsform können die Pufferbefehlssignale die Datensignale mit den Transferzyklen des Taktsignals von den Befehls- und Adress- und Taktinformationen synchronisieren. In einer Ausführungsform können die Datenpuffer 330 die Datensignale mit einer Protokollzeitplanung einer Schnittstelle von Vorrichtungen mit NVM 322 synchronisieren. In einer Ausführungsform können die Datenpuffer 330 die Datensignale mit einer Protokollzeitplanung einer Speicherungssteuerungsschnittstelle synchronisieren.
  • 4 ist ein Blockschaubild einer Ausführungsform eines Datenpuffers mit lernfähigen hostseitigen und speicherseitigen Schnittstellen. Das System 400 veranschaulicht Komponenten eines Speicherungssystems in Übereinstimmung mit einer Ausführungsform von System 100, System 200 oder System 300. Das System 400 weist die Steuerung 410 auf, welche eine Speicherungssteuerung repräsentiert. Das System 400 weist Vorrichtungen mit NVM 460 auf, welche nichtflüchtige Medien repräsentieren.
  • Speziell veranschaulicht das System 400 Eingangs-/Ausgangs- (I/O) Schnittstellenlogik 412 in der Steuerung 410, welche die Speicherungssteuerung mit dem Datenpuffer 430, und noch spezieller mit der I/O-Schnittstellenlogik 432 schnittstellenartig verbindet. Die I/O-Schnittstellenlogik 432 repräsentiert eine hostseitige oder zum Host zeigende Schnittstelle für den Datenpuffer 430, wohingegen die I/O-Schnittstellenlogik 412 eine speicherseitige oder zum Speicher zeigende Schnittstelle für die Steuerung 410 repräsentiert. Der Datenpuffer 430 weist die I/O-Schnittstellenlogik 434 auf, um sich schnittstellenartig mit Vorrichtungen mit NVM 460, oder noch spezieller mit der I/O-Schnittstellenlogik 462 zu verbinden. Die I/O-Schnittstellenlogik 462 repräsentiert eine hostseitige oder zum Host zeigende Schnittstelle für die Vorrichtungen mit NVM 460, wohingegen die I/O-Schnittstellenlogik 434 eine speicherseitige oder zum Speicher zeigende Schnittstelle für den Datenpuffer 430 repräsentiert. Zur Vereinfachung kann die I/O-Schnittstellenlogik hier einfach als I/O, wie beispielsweise I/O 412, I/O 432, I/O 434 und I/O 462 bezeichnet werden.
  • Die Signalleitungen 420 repräsentieren die Signalleitungen oder den Bus oder die Busse, welche/r die Steuerung 410 mit dem Datenpuffer 430 koppelt/koppeln. Die Signalleitungen 450 repräsentieren die Signalleitungen oder den Bus oder die Busse, welche/r den Datenpuffer 430 mit Vorrichtungen mit NVM 460 koppelt/koppeln. Ein Bus kann mindestens eines von Befehlssignalleitungen, Datensignalleitungen, Abtastsignalleitungen, Alarmleitungen, Hilfsleitungen oder anderen Signalleitungen oder eine Kombination davon aufweisen. Es versteht sich, dass das System 400 einen Datenbus veranschaulicht, welches durch den Datenpuffer 430 gepuffert wird. Ein Befehlsbus könnte auch durch einen (nicht ausdrücklich gezeigten) Befehlspuffer gepuffert werden, oder könnte in einem Punkt-zu-Punkt-Netzwerk mit (nicht ausdrücklich gezeigten) Vorrichtungen mit NVM 460 gekoppelt werden.
  • Die I/O-Schnittstellenlogik kann Stifte, Anschlussflächen, Verbinder, Signalleitungen, Leitbündelstränge oder Drähte oder andere Hardware, um die Vorrichtungen zu verbinden, oder eine Kombination von diesen aufweisen. Die I/O-Schnittstellenlogik kann eine Hardwareschnittstelle aufweisen. Wie veranschaulicht, kann die I/O-Schnittstellenlogik mindestens Treiber/Sende-Empfänger für Signalleitungen aufweisen, um die Signalleitungen (420, 450) auf gewünschte Spannungspegel zu treiben. Üblicherweise koppeln sich die Drähte innerhalb einer integrierten Schaltungsschnittstelle mit einer Anschlussfläche, einem Stift oder Verbinder, um Signalleitungen oder Leitbündelsträngen oder andere Drähte zwischen Vorrichtungen schnittstellenartig zu verbinden. Die I/O-Schnittstellenlogik kann Treiber, Empfänger, Sende-Empfänger oder einen Abschluss oder weitere Schaltungsanordnung oder Schaltungsanordnungskombinationen aufweisen, um Signale auf den Signalleitungen zwischen den Vorrichtungen auszutauschen. Der Austausch von Signalen weist mindestens eines von Senden oder Empfangen auf.
  • Die Steuerung 410 ist einschließlich des Planers 414 veranschaulicht, welcher Logik in der Steuerung repräsentiert, um die Zeitplanung des Sendens von Befehlssignalen an NVM 460 zu steuern. Wenngleich die Befehlssignalleitungen nicht ausdrücklich in System 400 gezeigt sind, sendet die Steuerung Befehle an NVM 460 für Datenzugriff. In einer Ausführungsform sendet die Steuerung 410 Pufferbefehle an den Datenpuffer 430, die getrennt von den Datenzugriffsbefehlen sind, und kann steuern, wie der Datenpuffer 430 die Daten behandelt, die sich auf einen Datenzugriffsbefehl beziehen.
  • Der Datenpuffer 430 ist einschließlich eines oder mehrerer Puffer 442 veranschaulicht, welche Datenpuffer repräsentieren, die den Transfer von Daten zwischen der Steuerung 410 und NVM 460 mit reduzierter Belastung ermöglichen. In einer Ausführungsform gehen Schreibdaten in den Datenpuffer 430 über I/O 432 hinein und werden in den Puffer 442 platziert. Der Datenpuffer 430 überträgt die Schreibdaten aus I/O 434 als Reaktion auf ein oder mehrere Befehlssignal/e oder ein oder mehrere Taktsignal/e oder beide. In einer Ausführungsform weist der Datenpuffer 430 Zeitplanungssteuerung 444 auf, um die Zeitplanung von Datensignalen anzupassen. Somit kann der Datenpuffer 430 die Datensignale auf der Grundlage von Steuerlogik von Zeitplanungssteuerung 444 als Reaktion auf Befehle oder Taktsignale oder beide erneut zeitlich planen, wodurch dem Datenpuffer 430 ermöglicht wird, die Kompatibilität des Speicherkanals mit einem oder mehreren Protokoll/en sicherzustellen. Für Lesedaten sendet NVM 460 in einer Ausführungsform die Lesedaten an den Datenpuffer 430, welcher sie über I/O 434 empfängt und sie in den Puffer 442 platziert. Die Zeitplanungssteuerung 444 kann die Zeitplanungssteuerung repräsentieren, um die Lesedaten an die Steuerung 410 von dem Puffer 442 über I/O 432 zu senden. Die Zeitplanungssteuerung 444 kann dem Datenpuffer 430 ermöglichen, eine deterministische Speicherungsschnittstelle hoher Geschwindigkeit bereitzustellen. In einer Ausführungsform kann das System 400 3DXP-NVM 460 aufweisen, die bei DDR4-Frequenzen arbeiten. Die Zeitplanungssteuerung 444 kann sicherstellen, dass die Schnittstelle mit der Steuerung 410 in Übereinstimmung mit DDR4-Signalen arbeitet, während sie gleichzeitig auch mit 3DXP-Zeitplanungsprotokollen für die Schnittstelle mit NVM 460 kompatibel ist.
  • Es versteht sich, dass die I/O-Schnittstellen 412, 432, 434 und 462 Signale austauschen, indem die Signalleitungen 420 und 450 auf gewünschte Logikstufen getrieben werden, wie beispielsweise eine Signalleitung auf einen niedrigen Spannungsschwellenwert für eine ,0' oder logisches Niedrig zu treiben, und eine Signalleitung auf einen hohen Spannungsschwellenwert für eine , 1' oder logisches Hoch zu treiben. Die Spannungsschwellenwerte können auf der Grundlage der Implementierung variieren, aber im Allgemeinen gibt es ein Signalauge, das Signale definiert, die auf der anderen Seite richtig decodiert werden können, wobei das Auge einen Schwellenwert mit hoher oder niedriger Stufe und Schwellenwertanstiegs- und -abfallzeiten aufweist. Verschiedene Konfigurationseinstellungen können das Signalauge beeinträchtigen, wie beispielsweise Spannungspegel, Strompegel, Temperatur, Verzögerung zum Treiben und Empfangen des Signals und andere Einstellungen, wie in der Technik verstanden. Typischerweise vollziehen die I/O-Schnittstellen „Quittungsbetrieb“ oder andere Konfigurationsprozesse, um das Signalauge anzulernen. Das Anlernen des Signalauges bezieht sich auf das Anpassen der Konfigurationseinstellungen, um ein Signalauge zu erreichen, das Signaltransfer mit einem maximalen Fehlerschwellenwert pro Zeitperiode ermöglicht.
  • Es versteht sich, dass das Anlernen des Signalauges für unterschiedliche Protokolle aufgrund der unterschiedlichen Zeitplanung, die für die unterschiedlichen Protokolle erwartet wird, und aufgrund der unterschiedlichen elektrischen Eigenschaften unterschiedlich sein kann, die in Abhängigkeit davon vorkommen, wie lang die Burstlänge ist oder welche Art von Signalen gesendet werden. In einer Ausführungsform können die Komponenten von System 400 das Anlernen von Zustandsmaschinen aufweisen, um eine Anlernroutine oder -routinen auszuführen, und können Register oder andere Speicherungsstellen aufweisen, um Variablen oder Konfigurationseinstellungen zu speichern, die mit den Anlernroutinen bestimmt werden. In einer Ausführungsform können verschiedene Anlernroutinen verwendet werden, um den Datenpuffer 430 anzulernen, um sicherzustellen, dass der Datenpuffer 430 mit einem dem Host zugewandten Speicherkanalprotokoll kompatibel ist, und mit einem dem Speicher zugewandten Speicherkanalprotokoll kompatibel ist. So könnte der Datenpuffer 430 zum Beispiel für die DDR4-Zeitplanung für hostseitigen Austausch und für die 3DXP-Zeitplanung für speicherseitigen Austausch angelernt werden.
  • In einer Ausführungsform weist der Datenpuffer 442 ein oder mehrere Register 446 auf, welche aus Mehrzweckregistern (MPRs, Multipurpose Registers) bestehen oder diese aufweisen können. In einer Ausführungsform schreibt die Steuerung 410 zu Anlernzwecken Daten in ein oder mehrere Register 446. In einer Ausführungsform wendet der Datenpuffer 430 die Daten von den Registern 446 an, um die Schnittstelle mit NVM 460 anzulernen. Der Datenpuffer 430 kann unterschiedliche Konfigurationseinstellungen mit den Daten auf eine iterative Weise anwenden, um die Konfigurationseinstellungen zu finden, die Schwellenwertleistung bereitstellen (z. B. Datentransfer mit einer maximalen Anzahl an Fehlern pro Zeitperiode oder pro Anzahl an Transferzyklen). Die Konfigurationseinstellungen können mindestens eine Zeitplanungseinstellung für die Zeitplanungssteuerung 444 aufweisen. In einer Ausführungsform kann das Anlernen der Zeitplanung für den Datenpuffer 430 ermöglichen, Schreibdaten in Übereinstimmung mit einer Protokollzeitplanung für NVM 460 oder I/O-Schnittstellenlogik 462 von NVM 460 erneut zu treiben. In einer Ausführungsform kann das Anlernen der Zeitplanung für den Datenpuffer 430 ermöglichen, Lesedaten in Übereinstimmung mit einer Protokollzeitplanung für die Steuerung 410 oder I/O-Schnittstellenlogik 412 von Steuerung 410 wieder anzutreiben.
  • 5 ist ein Blockschaubild einer Ausführungsform eines Speicherungssystems mit einem Datenpuffer und einem Befehlspuffer. Das System 500 veranschaulicht ein Beispiel einer Speicherungssteuerung und von Vorrichtungen mit NVM in Übereinstimmung mit einer Ausführungsform von einem von System 100 oder System 200 oder beiden. Das System 500 kann ein Beispiel eines Systems in Übereinstimmung mit System 300 bereitstellen. In einer Ausführungsform repräsentiert das System 500 ein SSD. Die Steuerung 510 repräsentiert die Speicherungssteuerung. Das System 500 weist Gruppen 520[0] bis 520[N-1] auf, die zweckmäßig einfach als Gruppe 520 oder Gruppen 520 bezeichnet werden. Die Gruppen 520 weisen jeweils mehrfache Vorrichtungen mit NVM 522 auf. In einer Ausführungsform weist jede Gruppe 520 dieselbe Anzahl an Vorrichtungen mit NVM 522 auf, obwohl eine derartige Konfiguration für einige Implementierungen nicht notwendig sein mag.
  • Das System 500 weist einen Datenpuffer auf, der jeder Gruppe 520 entspricht. Somit ist das System 500 mit Datenpuffern 530[0] bis 530[N-1] veranschaulicht, die jeweils den Gruppen 520[0] bis 520[N-1] entsprechen. Ähnlich den Gruppen 520 können die Datenpuffer 530[0] bis 530[N-1] zweckmäßig einfach als der Datenpuffer 530 oder die Datenpuffer 530 bezeichnet werden. In einer Ausführungsform weist das System 500 Befehlspuffer 540[0] bis 540[N-1] auf, die jeweils den Gruppen 520[0] bis 520[N-1] entsprechen. Zur Vereinfachung können die Befehlspuffer 540[0] bis 540[N-1] einfach als Befehlspuffer 540 oder Datenbefehlspuffer 540 bezeichnet werden.
  • Die Leitungen zum Zwischenverbinden der Steuerung 510 mit Datenpuffern 530, Befehlspuffern 540 und Gruppen 520 repräsentieren Signalleitungen eines Speicherkanals für das System 500. Zur Vereinfachung sind nur die Befehls- und Datensignalleitungen in System 500 spezifiziert. In einer Ausführungsform kann der Speicherkanal einen Befehls- und Adressen-(C/A) Bus aufweisen, veranschaulicht als CMD- oder Befehlsbus, repräsentiert durch eine Linie mit langen und kurzen Strichen. Der Speicherkanal von System 500 weist einen Daten- (DQ) Bus auf, welcher den Transfer von Daten von der Steuerung 510 zu Vorrichtungen mit NVM 522 für ein Schreiben, und von Vorrichtungen mit NVM 522 zu der Steuerung 510 für ein Lesen ermöglicht. Der Datenbus ist durch eine durchgehende Linie repräsentiert. In einer Ausführungsform wird das System 500 einen oder mehrere Pufferbefehlsbusse zu den Datenpuffern 530 oder zu den Befehlspuffern 540 oder zu beiden aufweisen.
  • Das System 500 stellt reduzierte Belastung für den Speicherkanal für sowohl den Datenbus als auch den Befehlsbus bereit. In einer Ausführungsform koppelt der Datenbus von der Steuerung 510 zu den Datenpuffern 530, wodurch die DQS- (Datenabtastung) und DQ-(Daten) Signale angepasst werden können, um Ausbreitungsverzögerungen, Spannungsschwankungen, Temperaturschwankungen, Prozessschwankungen oder eine Kombination davon zu berücksichtigen. In einer Ausführungsform koppelt der Befehlsbus von der Steuerung 510 zu den Befehlspuffern 540, wodurch die Befehlszeitplanung angepasst werden kann, um die Ausbreitungsverzögerungen oder eine oder mehrere Schwankungen zu berücksichtigen.
  • In einer Ausführungsform sendet die Steuerung 310 Befehls- und Adressdaten an Vorrichtungen mit NVM 322 vor dem Senden von Pufferbefehlssignalen an die Datenpuffer 330. In einer Ausführungsform können sich die Pufferbefehlssignale auf ein oder mehrere Steuersignal/e beziehen, welche einen Datenpuffer 330 auslösen werden, um die Datensignale an die zugeordnete Gruppe 320 von Vorrichtungen mit NVM 322 zu übertragen. In einer Ausführungsform können sich die Pufferbefehlssignale auf ein oder mehrere Steuersignal/e beziehen, welche einen Datenpuffer 330 auslösen werden, um die Datensignale von einer zugeordneten Gruppe 320 von Vorrichtungen mit NVM 322 zu übertragen. In einer Ausführungsform können die Pufferbefehlssignale die Datensignale mit den Transferzyklen des Taktsignals von den Befehls- und Adress- und Taktinformationen synchronisieren. In einer Ausführungsform können die Datenpuffer 330 die Datensignale mit einer Protokollzeitplanung einer Schnittstelle von Vorrichtungen mit NVM 322 synchronisieren. In einer Ausführungsform können die Datenpuffer 330 die Datensignale mit einer Protokollzeitplanung einer Speicherungssteuerungsschnittstelle synchronisieren.
  • 6 ist ein Blockschaubild einer Ausführungsform eines Speicherungssystems mit kaskadenartigen Datenpuffern. Das System 600 veranschaulicht ein Beispiel einer Speicherungssteuerung und von Vorrichtungen mit NVM in Übereinstimmung mit einer Ausführungsform von einem von System 100 oder System 200 oder beiden. Das System 600 kann ein Beispiel eines Systems in Übereinstimmung mit System 300 bereitstellen. Das System 600 veranschaulicht wie eine nichtflüchtige Speicherungsvorrichtung ultrahoher Kapazität oder ein SSD ultrahoher Kapazität hergestellt wird.
  • Die Steuerung 610 repräsentiert eine Speicherungssteuerung für das Speicherungssystem. Das System 600 weist mehrfache Schichten von Datenpuffern auf. Wenngleich unterschiedliche Strukturen verwendet werden können, können mehr als zwei Schichten von Datenpuffern verwendet werden; das System 600 veranschaulicht eine Baumstruktur, in welcher Datenpuffer in einer Hierarchie organisiert werden können. Somit kann ein oder können mehrere Datenpuffer auf der „speicherseitigen Schnittstelle“ mit einem stromabwärts liegenden Datenpuffer koppeln. So koppelt zum Beispiel der Datenpuffer 620[0] stromabwärts mit Datenpuffern 630[0] bis 630[N-1]. Zur Vereinfachung können die Datenpuffer 620[0] bis 620[N-1] und die Datenpuffer 630[0] bis 630[N-1] einfach jeweils als der Datenpuffer 620 oder die Datenpuffer 620 oder der Datenpuffer 630 oder die Datenpuffer 630 bezeichnet werden. In Übereinstimmung mit einer Ausführungsform von System 600 kann ein oder können mehrere Datenpuffer auf der „hostseitigen Schnittstelle“ mit einem stromaufwärts liegenden Datenpuffer anstatt direkt mit der Steuerung 610 koppeln. So können die Datenpuffer 630 stromaufwärts mit dem Datenpuffer 620[0] koppeln. Der Datenpuffer 620[N-1] und die Datenpuffer 620[1] bis 620[N-2] können auch so zu verstehen sein, dass sie mit einer oder mehreren Gruppe/n von Vorrichtungen mit NVM koppeln. In einer Ausführungsform kann ein oder können mehrere der Datenpuffer 620 direkt mit einer Gruppe von Vorrichtungen mit NVM ohne intervenierende Datenpufferschicht, wie beispielsweise Datenpuffer 630, koppeln. Somit ist die kaskadenartige Anordnung oder Baumstruktur von System 600 flexibel.
  • Das System 600 weist Gruppen 640[0] bis 640[N-1] auf, die zweckmäßig einfach als Gruppe 640 oder Gruppen 640 bezeichnet werden. Die Gruppen 640 weisen jeweils mehrfache Vorrichtungen mit NVM 642 auf. In einer Ausführungsform weist jede Gruppe 640 dieselbe Anzahl an Vorrichtungen mit NVM 642 auf, obwohl eine derartige Konfiguration für einige Implementierungen nicht notwendig sein mag. Zur Vereinfachung der Veranschaulichung und Beschreibung veranschaulicht das System 600 nur einen Datenbus (DQ) zwischen der Steuerung 610 und den Vorrichtungen mit NVM 642. Es versteht sich, dass das System 600 geeignete Befehls- und Adressenbusse, Steuerbusse oder eine Kombination davon wie notwendig aufweist, um Steuerung und Befehle auszutauschen, die sich auf das Austauschen der Daten über den Datenbus beziehen. Der Datenaustausch erfolgt als Reaktion auf Datenzugriffsbefehle. Datenaustausch wird durch Steueroperationen von Datenpuffern 630 und Datenpuffern 620 gesteuert.
  • In einer Ausführungsform können mehrfache Datenpuffer 620 in einer Verkettung auf einer PCB oder einer mehrfach-gleichlaufenden PCB-Schaltung (z. B. mit einer oder mehreren Steckbrückenplatte/n, die mit einem oder mehreren Verbinder/n gekoppelt sind) in Kaskade angeordnet sein. Das kaskadenartige Anordnen von System 600 ermöglicht Festkörper-Speicherungssysteme sehr hoher Kapazität mit derselben oder ähnlichen Leistung wie herkömmliche SSDs, ohne Hinzufügung von Speicherkanälen zu der Steuerung 610. Es versteht sich, dass das Hinzufügen eines Datenpuffers etwas Latenzzeit einbringt, und das Hinzufügen mehrfacher Schichten von Datenpuffern zusätzliche Latenzzeit hinzufügt. Allerdings ist die durch eine Pufferschicht hinzugefügte Latenzzeit klein (z. B. 1,6 ns), wohingegen die verminderte Belastung erhöhte Frequenzoperation ermöglicht, wodurch die hinzugefügte Latenzzeit in den Datenpuffern mehr als kompensiert scheint. Das Planen und Ausgeben von Befehlen an Vorrichtungen mit NVM 642 (und weitere nicht speziell veranschaulichte Vorrichtungen mit NVM), sowie das Planen und Ausgeben von Befehlen, einschließlich Puffersteuersignalen, kann die Verzögerungen anpassen, die durch die Datenpuffer 620 und 630 eingebracht werden.
  • 7A ist ein Ablaufschaubild einer Ausführungsform eines Prozesses zum Zugreifen auf Daten in einem mehrstufigen Speicher. Der Prozess 700 stellt ein Beispiel von Operationen zum Ausgeben einer Schreibanforderung an die NVM-Speicherung bereit, die einen gepufferten Datenbus in dem Speicherkanal in Übereinstimmung mit einer Ausführungsform eines Datenspeicherungssystems hat, wie beispielsweise System 100, System 200 oder weiteren. Die Ausführung von Prozessen und Operationen durch den Host erzeugt eine Schreibanforderung, Daten in der NVM-Speicherung zu speichern, 702. In einer Ausführungsform erzeugt und plant die Speicherungssteuerung Operationen, um das Schreiben zu bewerkstelligen, 704. Das Schreiben bezieht sich auf eine Schreibtransaktion, wobei die Speicherungssteuerung einen oder mehrere Befehl/e an die Vorrichtungen mit NVM sendet und Daten zum Schreiben an eine spezielle Speicheradresse sendet. Die Daten für das Schreiben werden über mehrfache Transferzyklen gesendet.
  • In einer Ausführungsform sendet die Speicherungssteuerung als den ersten Teil der Schreibtransaktion Befehls- und Adresseninformationen an die Vorrichtungen mit NVM, 706. Das Senden der Befehls- und Adresseninformationen kann die Befehls- und Adresseninformationen an die Vorrichtungen mit NVM vorher aktivieren, bevor die Daten anfangen, die Vorrichtungen mit NVM zu erreichen. In einer Ausführungsform sendet die Speicherungssteuerung die Schreibdaten an den Datenpuffer, 708, und sendet Steuersignale an den Datenpuffer nach dem Senden der Befehls- und Adresseninformationen an die Vorrichtungen mit NVM, 710. Die Steuersignale konfigurieren den Datenpuffer dazu, die Daten an die Vorrichtungen mit NVM zu übertragen. Bei den Steuersignalen kann es sich um einen Pufferbefehl oder eine Pufferbefehlssequenz handeln oder sie können diese aufweisen.
  • In einer Ausführungsform plant der Datenpuffer, mindestens teilweise als Reaktion auf ein Steuersignal von der Speicherungssteuerung, die Datensignale zeitlich erneut, 712. Das erneute zeitliche Planen der Datensignale kann das Anpassen von Verzögerung, Signalisierungsparameter oder anderes erneutes zeitliches Planen aufweisen, um Datensignale zu veranlassen, mit einem Protokoll kompatibel zu sein. In einer Ausführungsform weist das erneute zeitliche Planen das Synchronisieren der Datensignale mit einem Taktsignal zur Zeitplanung auf, das den Vorrichtungen mit NVM (z. B. einer speicherseitigen Schnittstelle) zugeordnet ist. In einer Ausführungsform arbeiten die Vorrichtungen mit NVM auf einem nativen Protokoll, das sich von dem nativen Protokoll der Schnittstelle der Speicherungssteuerung mit dem Host unterscheidet. Der Datenpuffer überträgt die Schreibdaten an die Vorrichtungen mit NVM in Übereinstimmung mit der Zeitplanung, 714.
  • In einer Ausführungsform stellt die Speicherungssteuerung einen Pufferbefehl für jeden Datenzugriffsbefehl bereit, der an die Vorrichtungen mit NVM gesendet wird. In einer Ausführungsform sendet die Speicherungssteuerung mehrfache konsekutive Pufferbefehle für jeden Datenzugriffsbefehl aus, der an die Vorrichtungen mit NVM gesendet wird. In einer Ausführungsform werden die Vorrichtungen mit NVM so viel wie 2N Transferzyklen an Daten zum Schreiben erwarten, und der Datenpuffer würde normalerweise N Transferzyklen an Daten als Reaktion auf einen Befehl senden. In einer derartigen Ausführungsform können die konsekutiven Befehle verursachen, dass der Datenpuffer 2N Transferzyklen an Daten an die Vorrichtungen mit NVM als eine Einzelbefehlstransaktion sendet. In einer Ausführungsform kann der Datenpuffer intern jede beliebige Verzögerung zwischen den ersten N Transferzyklen an Daten und den zweiten N Transferzyklen an Daten ausschalten.
  • 7B ist ein Ablaufschaubild einer Ausführungsform eines Prozesses zum Verarbeiten einer Lesezugriffsanforderung in einem System mit einer hohen Kompressibilitätsmarkierung. Der Prozess 720 stellt ein Beispiel von Operationen zum Ausgeben einer Leseanforderung an die NVM-Speicherung bereit, die einen gepufferten Datenbus in dem Speicherkanal in Übereinstimmung mit einer Ausführungsform eines Datenspeicherungssystems hat, wie beispielsweise System 100, System 200 oder weiteren. Die Ausführung von Prozessen und Operationen durch den Host erzeugt eine Leseanforderung, um auf Daten von der NVM-Speicherung zuzugreifen, 722. In einer Ausführungsform erzeugt und plant die Speicherungssteuerung Operationen, um das Lesen zu bewerkstelligen, 704. Das Lesen bezieht sich auf eine Lesetransaktion, wobei die Speicherungssteuerung einen oder mehrere Befehl/e an die Vorrichtungen mit NVM sendet, und als Reaktion auf den Befehl senden die Vorrichtungen mit NVM Daten von einer speziellen Speicheradresse an die Speicherungssteuerung, damit sie dem Host bereitgestellt werden. Die Daten für das Lesen werden über mehrfache Transferzyklen gesendet.
  • In einer Ausführungsform sendet die Speicherungssteuerung als den ersten Teil der Lesetransaktion Befehls- und Adresseninformationen an die Vorrichtungen mit NVM, 726. Das Senden der Befehls- und Adresseninformationen kann die Befehls- und Adresseninformationen an die Vorrichtungen mit NVM vorher aktivieren, bevor der Datenpuffer vorbereitet wird, die Daten von den Vorrichtungen mit NVM an die Speicherungssteuerung zu übertragen. In einer Ausführungsform senden die Vorrichtungen mit NVM die Lesedaten an den Datenpuffer, 728, und senden Steuersignale an den Datenpuffer nach dem Senden der Befehls- und Adresseninformationen an die Vorrichtungen mit NVM, 730. Die Steuersignale konfigurieren den Datenpuffer dazu, die Daten von den Vorrichtungen mit NVM an die Speicherungssteuerung zu übertragen. Bei den Steuersignalen kann es sich um einen Pufferbefehl oder eine Pufferbefehlssequenz handeln oder sie können diese aufweisen.
  • In einer Ausführungsform plant der Datenpuffer, mindestens teilweise als Reaktion auf ein Steuersignal von der Speicherungssteuerung, die Datensignale zeitlich erneut, 732. Das erneute zeitliche Planen der Datensignale kann das Anpassen von Verzögerung, Signalisierungsparameter oder anderes erneutes zeitliches Planen aufweisen, um Datensignale zu veranlassen, mit einem Protokoll kompatibel zu sein. In einer Ausführungsform weist das erneute zeitliche Planen das Synchronisieren der Datensignale mit einem Taktsignal zur Zeitplanung auf, das der Speicherungssteuerung (z. B. einer hostseitigen Schnittstelle) zugeordnet ist. In einer Ausführungsform arbeiten die Vorrichtungen mit NVM auf einem nativen Protokoll, das sich von dem nativen Protokoll der Schnittstelle der Speicherungssteuerung mit dem Host unterscheidet. Der Datenpuffer überträgt die Lesedaten an die Speicherungssteuerung in Übereinstimmung mit der Zeitplanung, 734.
  • In einer Ausführungsform stellt die Speicherungssteuerung einen Pufferbefehl für jeden Datenzugriffsbefehl bereit, der an die Vorrichtungen mit NVM gesendet wird. In einer Ausführungsform sendet die Speicherungssteuerung mehrfache konsekutive Pufferbefehle für jeden Datenzugriffsbefehl aus, der an die Vorrichtungen mit NVM gesendet wird. In einer Ausführungsform senden die Vorrichtungen mit NVM so viel wie 2N Transferzyklen an Daten für eine Einzellesetransaktion, und der Datenpuffer würde normalerweise erwarten, N Transferzyklen an Daten als Reaktion auf einen Befehl zu empfangen. In einer derartigen Ausführungsform können die konsekutiven Befehle verursachen, dass der Datenpuffer 2N Transferzyklen an Daten von den Vorrichtungen mit NVM als eine Einzellesetransaktion empfängt. In einer Ausführungsform kann der Datenpuffer intern jede beliebige Verzögerung zwischen den ersten N Transferzyklen von Daten und den zweiten N Transferzyklen an Daten ausschalten. In einer Ausführungsform überträgt der Datenpuffer die Daten als zwei separate N Transferzyklen an Daten an die Speicherungssteuerung.
  • 7C ist ein Ablaufschaubild einer Ausführungsform eines Prozesses zum Verarbeiten einer Schreibzugriffsanforderung in einem System mit einer hohen Kompressibilitätsmarkierung. Der Prozess 740 stellt ein Beispiel von Operationen zum Anlernen der Schnittstellen eines Puffers (z. B. eines Datenpuffer oder eines Befehlspuffer) für ein NVM-Speicherungssystem bereit, das einen gepufferten Datenbus in dem Speicherkanal in Übereinstimmung mit einer Ausführungsform eines Datenspeicherungssystems hat, wie beispielsweise System 100, System 200 oder weitere. In einer Ausführungsform verursacht ein Zustand oder ein Ereignis die Initiierung einer Anlernsequenz, 742. So kann das System zum Beispiel nach einem Zurückstellzustand die I/O-Schnittstellen anlernen, sei es das anfängliche Anlaufen einer Maschine oder Aufwachen aus dem Ruhe- oder Niedrigleistungsmodus. In einer Ausführungsform lernt das Speicherungssystem sowohl eine hostseitige Schnittstelle des Puffers als auch eine speicherseitige Schnittstelle des Puffers an. Die Zeitplanungsparameter können auf der Hostseite und der Speicherseite unterschiedlich sein, insbesondere wenn in den Vorrichtungen mit NVM unterschiedliche Protokolle von der Speicherungssteuerung verwendet werden, welche den Kanal verwaltet.
  • In einer Ausführungsform erzeugt die Speicherungssteuerung Anlerndaten für die Hostschnittstelle des Puffers, 744. In einer Ausführungsform konfiguriert der Datenpuffer die I/O-Einstellungen für die Hostschnittstelle, 746, was das Einstellen eines oder mehrerer Wert/e aufweisen kann, welche/r die Signalzeitplanung zwischen der Speicherungssteuerung und dem Datenpuffer steuert/steuern. Die Speicherungssteuerung kann die Anlerndaten iterativ senden und die Leistung der Transaktion bewerten, 748, und bestimmen, ob andere Konfigurationseinstellungen vorhanden sind, um die I/O-Schnittstelle zu testen, 750. Sollten mehr Einstellungen zu bewerten sein, 750 JA-Zweig, konfiguriert der Datenpuffer die I/O-Einstellungen für einen weiteren Datentransfer, 746. Wenn die letzte Konfigurationseinstellung bewertet worden ist, 750 NEIN-Zweig, behält der Datenpuffer in einer Ausführungsform die Konfigurationseinstellungen für die I/O-Schnittstelleneinstellungen, welche die beste Leistung von den bewerteten bereitgestellt hat, 752.
  • In einer Ausführungsform lernt die Speicherungssteuerung zuerst die hostseitige Schnittstelle des Datenpuffers an und danach lernt sie die speicherseitige Schnittstelle an. Allerdings kann die Reihenfolge umgekehrt werden, oder zwei Trainings können im Wesentlichen zu derselben Zeit stattfinden. In einer Ausführungsform erzeugt die Speicherungssteuerung Anlerndaten für die Speicherschnittstelle des Datenpuffers, 754. Bei den Trainingsdaten kann es sich um dieselben Daten oder um unterschiedliche Daten handeln, als diejenigen, die verwendet wurden, um die hostseitige Schnittstelle anzulernen. In einer Ausführungsform kann die Speicherungssteuerung feste Datenstrukturen in ein Register auf dem Datenpuffer über die Hostschnittstelle schreiben, welche der Datenpuffer danach verwenden kann, um die Speicherschnittstelle des Datenpuffers anzulernen. In einer Ausführungsform konfiguriert der Datenpuffer die I/O-Einstellungen für die Speicherschnittstelle ähnlich der Konfiguration, um die Hostschnittstelle anzulernen, 756. Der Datenpuffer kann die Trainingsdaten iterativ an die Vorrichtungen mit NVM über die Speicherschnittstelle senden und die Leistung der Transaktion bewerten, 758, und bestimmen, ob andere Konfigurationseinstellungen vorhanden sind, um die I/O-Schnittstelle zu testen, 760. Sollten mehr Einstellungen zu bewerten sein, 760 JA-Zweig, konfiguriert der Datenpuffer die I/O-Einstellungen für einen weiteren Datentransfer, 756. Wenn die letzte Konfigurationseinstellung bewertet worden ist, 760 NEIN- Zweig, behält der Datenpuffer in einer Ausführungsform die Konfigurationseinstellungen für die I/O-Schnittstelleneinstellungen, welche die beste Leistung von bewerteten bereitgestellt haben, 762.
  • 8 ist ein Blockschaubild einer Ausführungsform eines Computersystems mit einem mehrstufigen Speicher, in welchem hohe Kompressibilitätsmarkierungen implementiert werden können. Das System 800 repräsentiert eine Computervorrichtung in Übereinstimmung mit jeder beliebigen hier beschriebenen Ausführungsform und es kann sich dabei um einen Laptopcomputer, einen Desktopcomputer, einen Server, ein Spiele- oder Unterhaltungssteuersystem, einen Scanner, Kopierer, Drucker, eine Leitweglenkungs- oder Schaltvorrichtung, eingebettete Computervorrichtung oder andere elektronische Vorrichtung handeln.
  • Das System 800 weist den Prozessor 810 auf, welcher Verarbeiten, Operationsverwaltung und Ausführung von Anweisungen für das System 800 bereitstellt. Der Prozessor 810 kann jede beliebige Art von Mikroprozessor, zentraler Verarbeitungseinheit (CPU), Grafikverarbeitungseinheit (GPU), Verarbeitungskern oder andere Verarbeitungshardware, um Verarbeitung für das System 800 bereitzustellen, oder eine Kombination von Prozessoren aufweisen. Der Prozessor 810 steuert die gesamte Operation von System 800 und kann aus einem oder mehreren programmierbaren Allzweck- oder Spezialzweck-Mikroprozessor/en, Digital-/Signalprozessoren (DSPs), programmierbaren Steuerungen, anwendungsspezifischen integrierten Schaltungen (ASICs), programmierbaren Logikvorrichtungen (PLDs) oder dergleichen oder einer Kombination derartiger Vorrichtungen bestehen oder kann diese aufweisen.
  • In einer Ausführungsform weist das System 800 die Schnittstelle 812 auf, die mit dem Prozessor 810 gekoppelt ist, und kann eine Schnittstelle höherer Geschwindigkeit oder eine Schnittstelle höheren Durchsatzes für Systemkomponenten repräsentieren, welche Verbindungen mit höherer Bandbreite benötigen, wie beispielsweise das Speichersubsystem 820 oder die Grafik-Schnittstellenkomponenten 840. Die Schnittstelle 812 kann eine „Nordbrücken“-Schaltung repräsentieren, bei der es sich um eine betriebssystemunabhängige oder eine auf ein Prozessorhalbleiterplättchen integrierte Komponente handeln kann. Die Grafikschnittstelle 840 bildet eine Schnittstelle mit Grafikkomponenten zum Bereitstellen eines visuellen Displays für einen Benutzer des Systems 800. In einer Ausführungsform erzeugt die Grafikschnittstelle 840 ein Display auf der Grundlage von Daten, die in Speicher 830 gespeichert sind oder auf der Grundlage von Operationen, die durch den Prozessor 810 ausgeführt werden oder beides.
  • Das Speichersubsystem 820 repräsentiert den Hauptspeicher von System 800 und stellt Speicherung für Code, der durch den Prozessor 810 ausgeführt werden soll, oder Datenwerte bereit, die beim Ausführen einer Routine verwendet werden sollen. Das Speichersubsystem 820 kann eine oder mehrere Speichervorrichtung/en 830 aufweisen, wie beispielsweise einen Nurlesespeicher (ROM), Flash-Speicher, eine oder mehrere Abart/en von Speicher mit wahlfreiem Zugriff (RAM) oder andere Speichervorrichtungen, oder eine Kombination von derartigen Vorrichtungen. Der Speicher 830 speichert und hostet unter anderem das Betriebssystem (OS) 832, um eine Softwareplattform zum Ausführen von Anweisungen in System 800 bereitzustellen. Zusätzlich können Applikationen 834 auf der Softwareplattform von OS 832 aus dem Speicher 830 ausgeführt werden. Applikationen 834 repräsentieren Programme, die ihre eigene Operationslogik aufweisen, um die Ausführung von einer oder mehreren Funktion/en durchzuführen. Die Prozesse 836 repräsentieren Agenten oder Routinen, welche dem OS 832 oder einer oder mehreren Applikation/en 834 oder einer Kombination Hilfsfunktionen bereitstellen. OS 832, Applikationen 834 und Prozesse 836 stellen Logik bereit, um dem System 800 Funktion bereitzustellen. In einer Ausführungsform weist das Speichersubsystem 820 die Speichersteuerung 822 auf, bei der es sich um eine Speichersteuerung handelt, um Befehle für den Speicher 830 zu erzeugen und auszugeben. Es versteht sich, dass die Speichersteuerung 822 ein physischer Bestandteil von Prozessor 810 oder ein physischer Bestandteil von Schnittstelle 812 sein könnte. So kann es sich bei der Speichersteuerung 822 zum Beispiel um eine integrierte Speichersteuerung handeln, die mit dem Prozessor 810 auf einer Schaltung integriert ist.
  • Wenngleich nicht speziell veranschaulicht, so ist zu verstehen, dass das System 800 einen oder mehrere Bus/se oder Bussystem/e zwischen Vorrichtungen aufweisen kann, wie beispielsweise einen Speicherbus, einen Grafikbus, Schnittstellenbusse oder andere. Busse oder weitere Signalleitungen können Komponenten kommunikativ oder elektrisch miteinander koppeln, oder Komponenten sowohl kommunikativ als auch elektrisch koppeln. Busse können physikalische Kommunikationsleitungen, Punkt-zu-Punkt-Verbindungen, Brücken, Adapter, Steuerungen oder weitere Schaltungsanordnung oder eine Kombination davon aufweisen. So können Busse zum Beispiel einen oder mehrere von einem Systembus, einem Peripheriekomponenten-Zwischenverbindungs- (PCI, Peripheral Component Interconnect) Bus, einem HyperTransport- oder Industriestandardarchitektur- (ISA, Industry Standard Architecture) Bus, einem kleinen Computersystemschnittstellen- (SCSI, Small Computer System Interface) Bus, einem universellen seriellen Bus (USB, Universal Serial Bus) oder einem Bus des Standards 1394 vom Institute of Electrical and Electronics Engineers (IEEE) (herkömmlicherweise als „Firewire“ bezeichnet) aufweisen.
  • In einer Ausführungsform weist das System 800 die Schnittstelle 814 auf, die mit der Schnittstelle 812 gekoppelt sein kann. Bei der Schnittstelle 814 kann es sich um eine Schnittstelle einer geringeren Geschwindigkeit handeln als die Schnittstelle 812. In einer Ausführungsform kann es sich bei der Schnittstelle 814 um eine „Südbrücken-“ Schaltung handeln, welche betriebssystemunabhängige Komponenten und eine integrierte Schaltungsanordnung aufweisen kann. In einer Ausführungsform können mehrfache Benutzerschnittstellenkomponenten oder Peripheriekomponenten oder beide mit der Schnittstelle 814 gekoppelt sein. Die Netzwerkschnittstelle 850 stellt dem System 800 die Fähigkeit bereit, mit entfernt liegenden Vorrichtungen (z. B. Servern oder weiteren Computervorrichtungen) über ein oder mehrere Netzwerk/e zu kommunizieren. Die Netzwerkschnittstelle 850 kann einen Ethernetadapter, drahtlose Zwischenverbindungskomponenten, USB (universeller serieller Bus) oder weitere drahtgebundene oder drahtlose standardbasierte oder proprietäre Schnittstellen aufweisen. Die Netzwerkschnittstelle 850 kann Daten mit einer entfernt liegenden Vorrichtung austauschen, was das Senden von Daten aufweisen kann, die in dem Speicher gespeichert sind, oder das Empfangen von Daten, die in dem Speicher gespeichert werden sollen.
  • In einer Ausführungsform weist das System 800 eine oder mehrere Eingangs-/Ausgangs- (I/O) Schnittstelle/n 860 auf. Die I/O-Schnittstelle 860 kann eine oder mehrere Schnittstellenkomponente/n aufweisen, durch welche ein Benutzer mit dem System 800 interagiert (z. B. audio, alphanumerisch, taktil/berührend oder weiteres Schnittstellenbilden). Die Peripherieschnittstelle 870 kann jede beliebige Hardwareschnittstelle aufweisen, die vorstehend nicht speziell genannt ist. Peripheriegeräte beziehen sich allgemein auf Vorrichtungen, die abhängig mit dem System 800 verbunden werden. Bei einer abhängigen Verbindung handelt es sich um eine, bei der das System 800 die Softwareplattform oder Hardwareplattform oder beide bereitstellt, auf welcher die Operation ausgeführt wird, und mit welcher ein Benutzer interagiert.
  • In einer Ausführungsform weist das System 800 das Speicherungssubsystem 880 auf, um Daten auf nichtflüchtige Weise zu speichern. Das Speicherungssubsystem 880 weist Speicherungsvorrichtung/en mit NVM 884 auf, bei denen es sich um Festkörperspeichervorrichtungen handeln kann oder sie können diese aufweisen, die Zugriff über einen Speicherkanal hoher Geschwindigkeit ermöglichen. Die Speicherung 884 hält Code oder Anweisungen und Daten 886 in einem anhaltenden Zustand (d. h. der Wert wird trotz Stromunterbrechung zu dem System 800 beibehalten). Die Speicherung 884 kann generisch als ein „Speicher“ betrachtet werden, obwohl typischerweise der Speicher 830 der ausführende oder arbeitende Speicher ist, um dem Prozessor 810 Anweisungen bereitzustellen. Wenngleich die Speicherung 884 nichtflüchtig ist, kann der Speicher 830 einen flüchtigen Speicher aufweisen (d. h. der Wert oder Zustand der Daten ist unbestimmt, falls der Strom zu dem System 800 unterbrochen ist).
  • In einer Ausführungsform weist das Speicherungssubsystem 880 die Steuerung 882 auf, um eine Schnittstelle zur Speicherung 884 zu bilden. In einer Ausführungsform kann die Steuerung 882 zusätzlich zu einer Speicherungssteuerschaltung vorhanden sein, die ein Bestandteil der Schnittstelle 814 oder des Prozessors 810 ist, oder kann Schaltungen oder Logik in sowohl dem Prozessor 810 als auch der Schnittstelle 814 aufweisen. In einer Ausführungsform weist das Speicherungssubsystem 880 den Puffer 890 auf, welcher einen Puffer für einen Speicherkanal eines Speicherungssystems in Übereinstimmung mit einer hier beschriebenen Ausführungsform aufweist. Der Puffer 890 kann einen Datenpuffer oder Puffer für Befehls- und Adressensignale oder beide aufweisen. Der Puffer 890 plant Signale zwischen der Steuerung 882 und der NVM-Speicherung 884 zeitlich erneut, in Übereinstimmung mit einer hier beschriebenen Ausführungsform.
  • Die Stromquelle 802 stellt Leistung für die Komponenten von System 800 bereit. Genauer gesagt bildet die Stromquelle 802 typischerweise eine Schnittstelle mit einer oder mehreren Stromversorgung/en 804 in System 802, um den Komponenten von System 800 Leistung bereitzustellen. In einer Ausführungsform weist die Stromversorgung 804 einen AC-/DC- (Wechselstrom zu Gleichstrom) Adapter auf, um in eine Wandsteckdose eingesteckt zu werden. Bei derartigem AC-Strom kann es sich um eine Stromquelle 802 erneuerbarer Energie (z. B. Solarstrom) handeln. In einer Ausführungsform weist die Stromquelle 802 eine DC-Stromquelle auf, wie beispielsweise einen externen AC-/DC-Konverter. In einer Ausführungsform weist die Stromquelle 802 oder Stromquelle 804 drahtlose Aufladehardware auf, um über die Nähe zu einem Aufladefeld zu laden. In einer Ausführungsform kann die Stromquelle 802 eine interne Batterie oder Kraftstoffzelle aufweisen.
  • Das System 800 veranschaulicht die Zwischenspeichersteuerung 890 im Speichersubsystem 820, welche eine Zwischenspeichersteuerung repräsentiert, die hohe Kompressibilitätsmarkierungen in Übereinstimmung mit einer hier beschriebenen Ausführungsform aufweist oder verwendet. Die Zwischenspeichersteuerung 890 kann als Bestandteil eines mehrstufigen Speichers mit einem (nicht speziell gezeigten) Zwischenspeicher sowie auch Speicher 830 verstanden werden. In einer Ausführungsform weist die Zwischenspeichersteuerung 890 auf einer Ressource HC-Markierungen auf, auf welche mit geringerer Latenzzeit als auf einen Zwischenspeicher-Datenspeicher zugegriffen werden kann. In einer Ausführungsform ist die Zwischenspeichersteuerung 890 auf dem Prozessor 810 oder der Schnittstelle 812 integriert. In einer Ausführungsform ist die Zwischenspeichersteuerung 890 Bestandteil einer Speichersteuerung 822. Die Zwischenspeichersteuerung 890 gibt die Vollziehung von Speicherzugriffsanforderungen von zwischengespeicherten Daten auf der Grundlage mindestens teilweise einer hohen Kompressibilitätsmarkierung in Übereinstimmung mit einer hier beschriebenen Ausführungsform zurück.
  • 9 ist ein Ablaufschaubild einer Ausführungsform einer Mobilvorrichtung mit einem mehrstufigen Speicher, in welchem hohe Kompressibilitätsmarkierungen implementiert werden können. Die Vorrichtung 900 repräsentiert eine mobile Computervorrichtung, wie beispielsweise ein Computer-Tablet, ein Mobiltelefon oder Smartphone, ein drahtlos befähigtes elektronisches Lesegerät, eine tragbare Computervorrichtung oder andere Mobilvorrichtung oder eine eingebettete Computervorrichtung. Es versteht sich, dass gewisse Komponenten allgemein gezeigt werden, und nicht alle Komponenten einer derartigen Vorrichtung in der Vorrichtung 900 gezeigt sind.
  • Die Vorrichtung 900 weist den Prozessor 910 auf, welcher die primären Verarbeitungsoperationen der Vorrichtung 900 durchführt. Der Prozessor 910 kann eine oder mehrere physikalische Vorrichtung/en aufweisen, wie beispielsweise Mikroprozessoren, Applikationsprozessoren, Mikrosteuerungen, programmierbare Logikvorrichtungen oder weitere Verarbeitungsmittel. Zu den Verarbeitungsoperationen, die durch den Prozessor 910 durchgeführt werden, zählt die Ausführung einer Betriebsplattform oder eines Betriebssystems, auf welchem Applikationen und Vorrichtungsfunktionen ausgeführt werden. Die Verarbeitungsoperationen weisen Operationen, die sich auf den I/O (Eingang/Ausgang) mit einem menschlichen Benutzer oder mit anderen Vorrichtungen, beziehen, Operationen, die sich auf Leistungsverwaltung beziehen, Operationen, die sich auf die Verbindung von Vorrichtung 900 mit einer weiteren Vorrichtung beziehen, oder eine Kombination davon auf. Die Verarbeitungsoperationen können auch Operationen aufweisen, die sich auf Audio-I/O, Anzeige-I/O oder weiteres schnittstellenartiges Verbinden oder eine Kombination davon beziehen. Der Prozessor 910 kann Daten ausführen, die in dem Speicher gespeichert sind. Der Prozessor 910 kann Daten, die in dem Speicher gespeichert sind, schreiben oder editieren.
  • In einer Ausführungsform weist das System 900 einen oder mehrere Sensor/en 912 auf. Die Sensoren 912 repräsentieren eingebettete Sensoren oder Schnittstellen mit externen Sensoren oder eine Kombination davon. Die Sensoren 912 ermöglichen dem System 900, einen Zustand oder mehrere Zustände einer Umgebung oder einer Vorrichtung zu überwachen oder zu detektieren, in welchem das System 900 implementiert ist. Die Sensoren 912 können Umgebungssensoren (wie beispielsweise Temperatursensoren, Bewegungssensoren, Lichtdetektoren, Kameras, chemische Sensoren (z. B. Kohlenmonoxid, Kohlendioxid oder weitere chemische Sensoren)), Drucksensoren, Beschleunigungsmeter, Gyroskope, medizinische oder physiologische Sensoren (z. B. Biosensoren, Herzfrequenzmonitore oder weitere Sensoren, um physiologische Attribute zu detektieren) oder weitere Sensoren oder eine Kombination davon aufweisen. Die Sensoren 912 können auch Sensoren für biometrische Systeme, wie beispielsweise Fingerabdruckerkennungssysteme, Gesichtsdetektierungs- oder Erkennungssysteme oder weitere Systeme aufweisen, die Benutzermerkmale detektieren oder erkennen. Die Sensoren 912 sind ganz allgemein zu verstehen und nicht auf die vielen unterschiedlichen Arten von Sensoren beschränkt, die mit dem System 900 implementiert werden könnten. In einer Ausführungsform wird ein oder werden mehrere Sensor/en 912 mit dem Prozessor 910 über eine vorderendige Schaltung gekoppelt, die in den Prozessor 910 integriert ist. In einer Ausführungsform wird ein oder werden mehrere Sensor/en 912 mit dem Prozessor 912 über eine weitere Komponente von System 900 gekoppelt.
  • In einer Ausführungsform weist die Vorrichtung 900 das Audiosubsystem 920 auf, welches Hardware repräsentiert (z. B. Audiohardware und Audioschaltungen) und Software-(z. B. Treiber und Codecs) Komponenten, die dem Bereitstellen von Audiofunktionen für die Computervorrichtung zugeordnet sind. Audiofunktionen können Lautsprecher- oder Kopfhörerausgang sowie auch Mikrofoneingang aufweisen. Vorrichtungen für derartige Funktionen können in die Vorrichtung 900 integriert oder mit der Vorrichtung 900 verbunden sein. In einer Ausführungsform interagiert ein Benutzer mit der Vorrichtung 900 durch Bereitstellen von Audiobefehlen, die durch den Prozessor 910 empfangen und verarbeitet werden.
  • Das Displaysubsystem 930 repräsentiert Hardware (z. B. Displayvorrichtungen) und Softwarekomponenten (z. B. Treiber), die ein visuelles Display zur Präsentation für einen Benutzer bereitstellen. In einer Ausführungsform weist das Display taktile Komponenten oder Berührungsbildschirmelemente für einen Benutzer auf, um mit der Computervorrichtung zu interagieren. Das Displaysubsystem 930 weist eine Displayschnittstelle 932 auf, welche den besonderen Bildschirm oder die besondere Hardwarevorrichtung aufweist, die verwendet wird, um einem Benutzer ein Display bereitzustellen. In einer Ausführungsform weist die Displayschnittstelle 932 Logik getrennt von dem Prozessor 910 auf (wie beispielsweise einen Grafikprozessor), um mindestens ein wenig auf das Display bezogenes Verarbeiten durchzuführen. In einer Ausführungsform weist das Displaysubsystem 930 eine Berührungsbildschirmvorrichtung auf, die einem Benutzer sowohl Ausgang als auch Eingang bereitstellt. In einer Ausführungsform weist das Displaysubsystem 930 ein Hochdefinitions-(HD) Display auf, welches einem Benutzer einen Ausgang bereitstellt. Hochdefinition kann sich auf ein Display mit einer Pixeldichte von ungefähr 100 PPI (Pixel pro Zoll) oder größer beziehen und kann Formate, wie beispielsweise Voll-HD (z. B. 1080p), Retinadisplays, 4K (ultrahohe Definition oder UHD), oder weitere aufweisen. In einer Ausführungsform erzeugt das Displaysubsystem 930 Displayinformationen auf der Grundlage von Daten, die in dem Speicher gespeichert sind, oder von Operationen, die durch den Prozessor 910 ausgeführt werden.
  • Die I/O-Steuerung 940 repräsentiert Hardwarevorrichtungen und Softwarekomponenten, die sich auf die Interaktion mit einem Benutzer beziehen. Die I/O-Steuerung 940 kann betrieben werden, um Hardware zu verwalten, die ein Bestandteil von Audiosubsystem 920 oder Displaysubsystem 930 oder beiden ist. Zusätzlich veranschaulicht die I/O-Steuerung 940 einen Verbindungspunkt für zusätzliche Vorrichtungen, die mit der Vorrichtung 900 verbunden werden, durch welche ein Benutzer mit dem System interagieren kann. So können zum Beispiel die Vorrichtungen, die an die Vorrichtung 900 angeschlossen werden können, Mikrofonvorrichtungen, Lautsprecher- oder Stereosysteme, Videosysteme oder eine weitere Displayvorrichtung, Tastatur- oder Tastaturfeldvorrichtungen oder weitere I/O-Vorrichtungen zur Verwendung mit speziellen Applikationen, wie beispielsweise Kartenlesegeräten oder weiteren Vorrichtungen aufweisen.
  • Wie vorstehend erwähnt, kann die I/O-Steuerung 940 mit dem Audiosubsystem 920 oder Displaysubsystem 930 oder beiden interagieren. So kann zum Beispiel ein Eingang durch ein Mikrofon oder eine weitere Audiovorrichtung einen Eingang oder Befehle für eine oder mehrere Applikation/en oder Funktion/en von Vorrichtung 900 bereitstellen. Zusätzlich kann ein Audioausgang anstelle von oder zusätzlich zu dem Displayausgang bereitgestellt werden. In einem anderen Beispiel kann die Displayvorrichtung, falls das Displaysubsystem einen Berührungsbildschirm aufweist, auch als eine Eingangsvorrichtung fungieren, die mindestens teilweise durch die I/O-Steuerung 940 verwaltet werden kann. Auch können zusätzliche Taster oder Schalter auf der Vorrichtung 900 vorhanden sein, um I/O-Funktionen bereitzustellen, die durch die I/O-Steuerung 940 verwaltet werden.
  • In einer Ausführungsform verwaltet die I/O-Steuerung 940 Vorrichtungen wie beispielsweise Beschleunigungsmesser, Kameras, Lichtsensoren oder andere Umgebungssensoren, Gyroskope, ein globales Positionierungssystem (GPS) oder weitere Hardware, die in der Vorrichtung 900 enthalten sein kann, oder Sensoren 912. Der Eingang kann Bestandteil direkter Benutzerinteraktion sein so wie auch das Bereitstellen eines Umgebungseingangs in das System, um seine Operationen zu beeinflussen (wie beispielsweise das Ausfiltern von Geräusch, Anpassen von Displays für Helligkeitsdetektion, Anwenden eines Blitzes für eine Kamera oder weitere Merkmale).
  • In einer Ausführungsform weist die Vorrichtung 900 Leistungsverwaltung 950 auf, die den Verbrauch von Batterieleistung, das Laden der Batterie und Merkmale verwaltet, die sich auf Stromsparbetrieb beziehen. Die Leistungsverwaltung 950 verwaltet die Leistung von einer Stromquelle 952, welche Leistung für die Komponenten von System 900 bereitstellt. In einer Ausführungsform weist die Stromquelle 952 einen AC-/DC- (Wechselstrom zu Gleichstrom) Adapter auf, um in eine Wandsteckdose eingesteckt zu werden. Bei derartigem AC-Strom kann es sich um erneuerbare Energie (z. B. Solarstrom, bewegungsbasierten Strom) handeln. In einer Ausführungsform weist die Stromquelle 952 nur DC-Strom auf, der durch eine DC-Stromquelle, wie beispielsweise einen externen AC-/DC-Konverter bereitgestellt werden kann. In einer Ausführungsform weist die Stromquelle 952 drahtlose Aufladehardware auf, um über die Nähe zu einem Aufladefeld zu laden. In einer Ausführungsform kann die Stromquelle 952 eine interne Batterie oder Kraftstoffzelle aufweisen.
  • Das Speichersubsystem 960 weist die Speichervorrichtung/en 962 zum Speichern von Informationen in der Vorrichtung 900 auf. Das Speichersubsystem 960 kann einen nichtflüchtigen Speicher 996 (der Zustand ändert sich nicht, wenn der Strom zu der Speichervorrichtung unterbrochen ist) oder Vorrichtungen mit flüchtigem Speicher 962 (der Zustand ist unbestimmt, wenn der Strom zu der Speichervorrichtung unterbrochen ist) oder eine Kombination aufweisen. Der Speicher 960 kann Applikationsdaten, Benutzerdaten, Musik, Fotos, Dokumente oder andere Daten so wie auch Systemdaten (sei es langfristig oder temporär) speichern, die sich auf das Ausführen der Applikationen und Funktionen von System 900 beziehen. In einer Ausführungsform weist das Speichersubsystem 960 die Speichersteuerung 964 auf (die auch als Bestandteil der Steuerung von System 900 betrachtet werden könnte, und möglicherweise als Bestandteil des Prozessors 910 betrachtet werden könnte). Die Speichersteuerung 964 weist einen Planer auf, um Befehle zu erzeugen und auszugeben, um Zugriff auf die Speichervorrichtung 962 zu steuern.
  • In einer Ausführungsform weist das Speichersubsystem 960 die NVM-Steuerung 992 auf, die einen Planer aufweist, um Befehle zu erzeugen und auszugeben, um den Zugriff auf NVM 996 zu steuern. In einer Ausführungsform weist das Speichersubsystem 960 den Puffer 994 auf, welcher einen Puffer für einen Speicherkanal eines Speicherungssystems in Übereinstimmung mit einer hier beschriebenen Ausführungsform aufweist. Der Puffer 994 kann einen Datenpuffer oder Puffer für Befehls- und Adressensignale oder beide aufweisen. Der Puffer 944 plant Signale zwischen der NVM-Steuerung 992 und der NVM 996 zeitlich erneut, in Übereinstimmung mit einer hier beschriebenen Ausführungsform.
  • Die Verbindungsfähigkeit 970 weist Hardware-Vorrichtungen (z. B. drahtlose oder drahtgebundene Verbinder und Kommunikationshardware oder eine Kombination von drahtgebundener und drahtloser Hardware) und Software-Komponenten (z. B. Treiber, Protokollstapel) auf, um der Vorrichtung 900 zu ermöglichen, mit externen Vorrichtungen zu kommunizieren. Bei der externen Vorrichtung könnte es sich um separate Vorrichtungen, wie beispielsweise weitere Computervorrichtungen, drahtlose Zugangspunkte oder Basisstationen, sowie auch Peripheriegeräte, wie beispielsweise Kopfhörer, Drucker oder weitere Vorrichtungen handeln. In einer Ausführungsform tauscht das System 900 Daten mit einer externen Vorrichtung zur Speicherung in dem Speicher oder zur Anzeige auf einer Displayvorrichtung aus. Die ausgetauschten Daten können Daten aufweisen, die in dem Speicher gespeichert werden sollen, oder um Daten, die bereits in dem Speicher gespeichert sind, zu lesen, schreiben oder zu editieren.
  • Die Verbindungsfähigkeit 970 kann mehrfache unterschiedliche Arten von Verbindungsfähigkeit aufweisen. Zur Verallgemeinerung ist die Vorrichtung 900 mit zellularer Verbindungsfähigkeit 972 und drahtloser Verbindungsfähigkeit 974 veranschaulicht. Zellulare Verbindungsfähigkeit 972 bezieht sich allgemein auf zellulare Netzwerkverbindungsfähigkeit, die durch drahtlose Träger, wie beispielsweise durch GSM (Globales System für Mobilkommunikation) oder Variationen oder Abarten davon, CDMA (Code Division Multiple Access, Codemultiplexverfahren) oder Variationen oder Abarten davon, TDM (Time Division Multiplexing, Zeitmultiplexverfahren) oder Variationen oder Abarten davon, LTE (Long Term Evolution, Langzeitevolution - auch als „4G“ bezeichnet) oder weitere zellulare Dienststandards bereitgestellt wird. Drahtlose Verbindungsfähigkeit 974 bezieht sich auf drahtlose Verbindungsfähigkeit, die nicht zellular ist, und persönliche Bereichsnetzwerke (wie beispielsweise Bluetooth), lokale Bereichsnetzwerke (wie beispielsweise Wifi) oder weite Bereichsnetzwerke (wie beispielsweise WiMax) oder weitere drahtlose Kommunikation oder eine Kombination davon aufweisen. Drahtlose Kommunikation bezieht sich auf den Transfer von Daten durch die Verwendung modulierter elektromagnetischer Strahlung durch ein nichtfestes Medium. Drahtgebundene Kommunikation findet durch ein festes Kommunikationsmedium statt.
  • Periphäre Verbindungen 980 weisen Hardwareschnittstellen und -Verbinder sowie Softwarekomponenten (z. B. Treiber, Protokollstapel) auf, um periphäre Verbindungen herzustellen. Es versteht sich, dass es sich bei der Vorrichtung 900 sowohl um eine periphäre Vorrichtung („zu“ 982) oder anderen Computervorrichtungen handeln kann, sowie periphäre Vorrichtungen („von“ 984) aufweisen kann, die mit ihr verbunden sind. Herkömmlicherweise hat die Vorrichtung 900 einen „Docking-“ Verbinder, um sich mit anderen Computervorrichtungen für Zwecke wie beispielsweise Verwalten (z. B. Herunterladen, Heraufladen, Ändern, Synchronisieren) von Inhalt auf der Vorrichtung 900 zu verbinden. Zusätzlich kann ein Docking-Verbinder der Vorrichtung 900 ermöglichen, sich mit gewissen Peripheriegeräten zu verbinden, die es der Vorrichtung 900 ermöglichen, Inhaltsausgang, zum Beispiel zu audiovisuellen oder anderen Systemen zu steuern.
  • Zusätzlich zu einem proprietären Docking-Verbinder oder weiterer proprietärer Verbindungshardware, kann die Vorrichtung 900 periphäre Verbindungen 980 über herkömmliche oder standardbasierte Verbinder herstellen. Herkömmliche Arten können einen universellen seriellen Bus- (USB) Verbinder, der jede beliebige einer Anzahl an unterschiedlichen Hardware-Schnittstellen aufweisen kann), DisplayPort einschließlich MiniDisplayPort (MDP), Hochdefinitions-Multimediaschnittstelle (HDMI, High Definition Multimedia Interface), Firewire oder eine weitere Art aufweisen.
  • Das System 900 veranschaulicht die Zwischenspeichersteuerung 990 in dem Speichersubsystem 960, welche eine Zwischenspeichersteuerung repräsentiert, die hohe Kompressibilitätsmarkierungen in Übereinstimmung mit einer hier beschriebenen Ausführungsform aufweist und verwendet. Die Zwischenspeichersteuerung 990 kann als Bestandteil eines mehrstufigen Speichers mit einem (nicht speziell gezeigten) Zwischenspeicher sowie auch Speicher 962 verstanden werden. In einer Ausführungsform weist die Zwischenspeichersteuerung 990 auf einer Ressource HC-Markierungen auf, auf welche mit geringerer Latenzzeit als auf einen Zwischenspeicher-Datenspeicher zugegriffen werden kann. In einer Ausführungsform ist die Zwischenspeichersteuerung 990 auf dem Prozessor 910 integriert. In einer Ausführungsform ist die Zwischenspeichersteuerung 990 Bestandteil einer Speichersteuerung 964. Die Zwischenspeichersteuerung 990 gibt die Vollziehung von Speicherzugriffsanforderungen von zwischengespeicherten Daten auf der Grundlage mindestens teilweise einer hohen Kompressibilitätsmarkierung in Übereinstimmung mit einer hier beschriebenen Ausführungsform zurück.
  • In einem Aspekt weist ein System zur Datenspeicherung auf: eine Gruppe von Vorrichtungen mit nichtflüchtigem Speicher (NVM); eine Speicherungssteuerung, die mit der Gruppe von Vorrichtungen mit NVM gekoppelt ist, wobei die Speicherungssteuerung das Lesen und Schreiben zu den Vorrichtungen mit NVM verwalten soll; und einen Datenpuffer, der zwischen die Gruppe von Vorrichtungen mit NVM und die Speicherungssteuerung auf einem Datenbus gekoppelt ist, wobei der Datenpuffer die Datensignale auf dem Datenbus erneut treiben und die Datensignale mit einem Taktsignal synchronisieren soll.
  • In einer Ausführungsform soll die Speicherungssteuerung zuerst ein Befehlssignal an die Gruppe von Vorrichtungen mit NVM senden, und als Nächstes ein Steuersignal an den Datenpuffer senden, wobei das Steuersignal den Datenpuffer auslösen soll, um die Datensignale an die Gruppe von Vorrichtungen mit NVM zu übertragen. In einer Ausführungsform sollen die Vorrichtungen mit NVM in einem Burst-Modus arbeiten, um Daten über 2N Zyklen zu übertragen, und der Datenpuffer soll arbeiten, um Daten über N Zyklen zu übertragen, wobei die Speicherungssteuerung konsekutive Befehle an den Datenpuffer ausgeben soll, um den Datenpuffer zu veranlassen, als Reaktion auf die konsekutiven Befehle 2N Zyklen lang zu arbeiten. In einer Ausführungsform soll der Datenpuffer Aussetzzyklen intern eliminieren, um 2N Zyklen von kontinuierlichem Datentransfer als Reaktion auf die konsekutiven Befehle herzustellen. In einer Ausführungsform umfasst der Datenpuffer eine Hostschnittstelle zu der Speicherungssteuerung und eine Speicherschnittstelle zu der Gruppe von Vorrichtungen mit NVM, und wobei der Datenpuffer unterschiedliche Konfigurationseinstellungen für die Hostschnittstelle als die Speicherschnittstelle anwenden soll, wobei die unterschiedlichen Konfigurationseinstellungen mindestens eine unterschiedliche Zeitplanungskonfigurationseinstellung aufweisen. In einer Ausführungsform soll der Datenpuffer die Datensignale von der Speicherungssteuerung zu den Vorrichtungen mit NVM erneut treiben, einschließlich die Datensignale mit einer Protokollzeitplanung einer Schnittstelle der Vorrichtungen mit NVM zu synchronisieren. In einer Ausführungsform soll der Datenpuffer die Datensignale von den Vorrichtungen mit NVM zu der Speicherungssteuerung erneut treiben, einschließlich die Datensignale mit einer Protokollzeitplanung einer Speicherungssteuerungsschnittstelle zu synchronisieren. In einer Ausführungsform umfasst die Gruppe von Vorrichtungen mit NVM eine erste Gruppe, und der Datenpuffer umfasst einen ersten Datenpuffer, und des Weiteren umfassend eine zweite Gruppe von Vorrichtungen mit NVM, und einen zweiten Datenpuffer, der zwischen die zweite Gruppe von Vorrichtungen mit NVM und die Speicherungssteuerung gekoppelt ist. In einer Ausführungsform des Weiteren umfassend, einen dritten Datenpuffer, wobei die erste und zweite Gruppe mit der Speicherungssteuerung in einer Kaskadenart koppeln, mit dem dritten Datenpuffer, der zwischen die Speicherungssteuerung und den ersten und zweiten Datenpuffer gekoppelt ist. In einer Ausführungsform des Weiteren umfassend, einen Befehlspuffer, der zwischen die Gruppe von Vorrichtungen mit NVM und die Speicherungssteuerung auf einem Befehlsbus gekoppelt ist, wobei der Befehlspuffer die Befehlssignale auf dem Befehlsbus erneut treiben und Befehlssignale mit einem Taktsignal synchronisieren soll. In einer Ausführungsform des Weiteren eines oder mehrere von umfassend: mindestens einen Prozessor, der kommunikativ mit der Speicherungssteuerung gekoppelt ist; eine Speichersteuerung, die kommunikativ mit der Speicherungssteuerung gekoppelt ist; ein Display, das kommunikativ mit mindestens einem Prozessor gekoppelt ist; eine Batterie, um das System mit Strom versorgen; oder eine Netzwerkschnittstelle, die kommunikativ mit mindestens einem Prozessor gekoppelt ist.
  • In einem Aspekt weist ein Festkörperlaufwerk (SSD) auf: eine Speicherungssteuerung aufweisend eine Schnittstelle, um mit einem Host-Prozessor zu koppeln, wobei die Speicherungssteuerung Lese- und Schreibanforderungen von dem Host-Prozessor verwalten soll; und mehrfache Speicherungsschaltungen, die mit der Speicherungssteuerung gekoppelt sind, aufweisend eine Vielzahl von Vorrichtungen mit nichtflüchtigem Speicher (NVM); und einen Datenpuffer, der zwischen die Vielzahl von Vorrichtungen mit NVM und die Speicherungssteuerung auf einem Datenbus gekoppelt ist, wobei der Datenpuffer die Datensignale auf dem Datenbus erneut treiben und die Datensignale mit einem Taktsignal synchronisieren soll.
  • In einer Ausführungsform soll die Speicherungssteuerung zuerst ein Befehlssignal an die Gruppe von Vorrichtungen mit NVM senden, und als Nächstes ein Steuersignal an den Datenpuffer senden, wobei das Steuersignal den Datenpuffer auslösen soll, die Datensignale an die Gruppe von Vorrichtungen mit NVM zu übertragen. In einer Ausführungsform sollen die Vorrichtungen mit NVM in einem Burst-Modus arbeiten, um Daten über 2N Zyklen zu übertragen, und der Datenpuffer soll arbeiten, um Daten über N Zyklen zu übertragen, wobei die Speicherungssteuerung konsekutive Befehle an den Datenpuffer ausgeben soll, um den Datenpuffer zu veranlassen, als Reaktion auf die konsekutiven Befehle 2N Zyklen lang zu arbeiten. In einer Ausführungsform soll der Datenpuffer Aussetzzyklen intern eliminieren, um 2N Zyklen von kontinuierlichem Datentransfer als Reaktion auf die konsekutiven Befehle herzustellen. In einer Ausführungsform umfasst der Datenpuffer eine Hostschnittstelle zu der Speicherungssteuerung und eine Speicherschnittstelle zu der Gruppe von Vorrichtungen mit NVM, und wobei der Datenpuffer unterschiedliche Konfigurationseinstellungen für die Hostschnittstelle als die Speicherschnittstelle anwenden soll, wobei die unterschiedlichen Konfigurationseinstellungen mindestens eine unterschiedliche Zeitplanungskonfigurationseinstellung aufweisen. In einer Ausführungsform soll der Datenpuffer die Datensignale von der Speicherungssteuerung zu den Vorrichtungen mit NVM erneut treiben, einschließlich die Datensignale mit einer Protokollzeitplanung einer Schnittstelle der Vorrichtungen mit NVM zu synchronisieren. In einer Ausführungsform soll der Datenpuffer die Datensignale von den Vorrichtungen mit NVM zu der Speicherungssteuerung erneut treiben, einschließlich die Datensignale mit einer Protokollzeitplanung einer Speicherungssteuerungsschnittstelle synchronisieren. In einer Ausführungsform sind die mehrfachen Speicherungsschaltungen in einer Kaskade organisiert, wobei der erste und zweite Datenpuffer jeweils mit ersten und zweiten Vielzahlen von Vorrichtungen mit NVM koppeln, und ein dritter Datenpuffer zwischen den ersten und zweiten Datenpuffer und die Speicherungssteuerung koppelt. In einer Ausführungsform umfassen die mehrfachen Speicherungsschaltungen des Weiteren: einen Befehlspuffer, der zwischen die Gruppe von Vorrichtungen mit NVM und die Speicherungssteuerung auf dem Befehlsbus gekoppelt ist, den Befehlspuffer, um die Befehlssignale auf dem Befehlsbus erneut zu treiben und Befehlssignale mit einem Taktsignal zu synchronisieren.
  • In einem Aspekt umfasst ein Verfahren für Datenzugriff: Empfangen eines Pufferbefehls an einem Puffer, der zwischen eine Gruppe von Vorrichtungen mit nichtflüchtigem Speicher (NVM) und eine Speicherungssteuerung gekoppelt ist, wobei der Pufferbefehl nach einem Datenzugriffsbefehl ausgegeben werden soll, der an die Gruppe von Vorrichtungen mit NVM ausgegeben wird; und als Reaktion auf das Empfangen des Pufferbefehls, erneutes Treiben von Datensignalen auf einem Datenbus zwischen den Vorrichtungen mit NVM und der Speicherungssteuerung, einschließlich des Synchronisierens der Datensignale mit einem Taktsignal.
  • In einer Ausführungsform umfasst das Empfangen des Pufferbefehls das Empfangen von zwei konsekutiven Befehlen, und als Reaktion auf das Empfangen der zwei konsekutiven Befehle, erneutes Treiben der zwei konsekutiven Bursts von Datensignalen als einen Burst von Datensignalen doppelter Länge. In einer Ausführungsform des Weiteren umfassend: erneutes Zeitplanen der Datensignale, um Aussetzzyklen intern zu eliminieren, um den Burst doppelter Länge von kontinuierlichem Datentransfer als Reaktion auf die konsekutiven Befehle herzustellen. In einer Ausführungsform des Weiteren umfassend: Anlernen einer Hostschnittstelle, die mit der Speicherungssteuerung gekoppelt ist, um Einstellungen für die Hostschnittstelle zu konfigurieren; und Anlernen einer Speicherschnittstelle, die mit den Vorrichtungen mit NVM gekoppelt ist, um Einstellungen für die Speicherschnittstelle zu konfigurieren, wobei das Anlernen der Speicherschnittstelle das Schreiben fester Datenstrukturen in ein Register auf dem Puffer über die Hostschnittstelle umfasst. In einer Ausführungsform umfasst das erneute Treiben von Datensignalen auf dem Datenbus das erneute Treiben von Schreibdatensignalen von der Speicherungssteuerung zu den Vorrichtungen mit NVM. In einer Ausführungsform umfasst das erneute Treiben der Schreibdatensignale das Synchronisieren der Schreibdatensignale mit einer Protokollzeitplanung einer Schnittstelle der Vorrichtungen mit NVM. In einer Ausführungsform umfasst das erneute Treiben von Datensignalen auf dem Datenbus das erneute Treiben von Lesedatensignalen von den Vorrichtungen mit NVM zu der Speicherungssteuerung. In einer Ausführungsform umfasst das erneute Treiben der Lesedatensignale das Synchronisieren der Lesedatensignale mit einer Protokollzeitplanung einer Speicherungssteuerungsschnittstelle. In einer Ausführungsform umfasst das erneute Treiben von Datensignalen auf dem Datenbus das erneute Treiben von Schreibdatensignalen von der Speicherungssteuerung zu den Vorrichtungen mit NVM. In einer Ausführungsform umfasst der Puffer einen Datenpuffer, und des Weiteren umfassend: Empfangen eines Pufferbefehls an einem Befehlspuffer, der zwischen die Gruppe von Vorrichtungen mit nichtflüchtigem Speicher (NVM) und die Speicherungssteuerung gekoppelt ist; und als Reaktion auf das Empfangen des Pufferbefehls erneutes Treiben eines Datenzugriffbefehls auf einem Befehlsbus zwischen den Vorrichtungen mit NVM und der Speicherungssteuerung, einschließlich des Synchronisierens des Datenzugriffbefehls mit einem Taktsignal. In einem Aspekt umfasst eine Einrichtung Mittel zum Durchführen von Operationen, um ein Verfahren für Datenzugriff in Übereinstimmung mit einer Ausführungsform des vorstehenden Verfahrens auszuführen. In einem Aspekt umfasst ein Herstellungsartikel ein computerlesbares Speicherungsmedium mit darauf gespeichertem Inhalt, welcher, wenn darauf zugegriffen wird, eine Maschine veranlasst, Operationen durchzuführen, um ein Verfahren für Datenzugriff in Übereinstimmung mit einer Ausführungsform des vorstehenden Verfahrens auszuführen.
  • In einem Aspekt weist eine Puffervorrichtung auf: Speicherschnittstellenlogik, um eine Gruppe von Vorrichtungen mit nichtflüchtigem Speicher (NVM) zu koppeln; Hostschnittstellenlogik, um mit einer Speicherungssteuerung zu koppeln, wobei die Speicherungssteuerung das Lesen und Schreiben zu den Vorrichtungen mit NVM verwalten soll; und Steuerlogik, um Datensignale zwischen den Vorrichtungen mit NVM und der Speicherungssteuerung auf einem Datenbus erneut zu treiben, und die Datensignale mit einem Taktsignal zu synchronisieren.
  • In einer Ausführungsform soll die Speicherungssteuerung zuerst ein Befehlssignal an die Gruppe von Vorrichtungen mit NVM senden, und als Nächstes ein Steuersignal an den Datenpuffer senden, wobei das Steuersignal den Datenpuffer auslösen soll, um die Datensignale an die Gruppe von Vorrichtungen mit NVM zu übertragen. In einer Ausführungsform sollen die Vorrichtungen mit NVM in einem Burst-Modus arbeiten, um Daten über 2N Zyklen zu übertragen, und der Datenpuffer soll arbeiten, um Daten über N Zyklen zu übertragen, wobei die Speicherungssteuerung konsekutive Befehle an den Datenpuffer ausgeben soll, um den Datenpuffer zu veranlassen, als Reaktion auf die konsekutiven Befehle 2N Zyklen lang zu arbeiten. In einer Ausführungsform soll der Datenpuffer Aussetzzyklen intern eliminieren, um 2N Zyklen von kontinuierlichem Datentransfer als Reaktion auf die konsekutiven Befehle herzustellen. In einer Ausführungsform umfasst der Datenpuffer eine Hostschnittstelle zu der Speicherungssteuerung und eine Speicherschnittstelle zu der Gruppe von Vorrichtungen mit NVM, und wobei der Datenpuffer unterschiedliche Konfigurationseinstellungen für die Hostschnittstelle als die Speicherschnittstelle anwenden soll, wobei die unterschiedlichen Konfigurationseinstellungen mindestens eine unterschiedliche Zeitplanungskonfigurationseinstellung aufweisen. In einer Ausführungsform soll der Datenpuffer die Datensignale von der Speicherungssteuerung zu den Vorrichtungen mit NVM erneut treiben, einschließlich die Datensignale mit einer Protokollzeitplanung einer Schnittstelle der Vorrichtungen mit NVM zu synchronisieren. In einer Ausführungsform soll der Datenpuffer die Datensignale von den Vorrichtungen mit NVM zu der Speicherungssteuerung erneut treiben, einschließlich die Datensignale mit einer Protokollzeitplanung einer Speicherungssteuerungsschnittstelle zu synchronisieren. In einer Ausführungsform umfasst die Gruppe von Vorrichtungen mit NVM eine erste Gruppe, und der Datenpuffer umfasst einen ersten Datenpuffer, und des Weiteren umfassend, eine zweite Gruppe von Vorrichtungen mit NVM, und einen zweiten Datenpuffer, der zwischen die zweite Gruppe von Vorrichtungen mit NVM und die Speicherungssteuerung gekoppelt ist. In einer Ausführungsform des Weiteren umfassend, einen dritten Datenpuffer, wobei die erste und zweite Gruppe mit der Speicherungssteuerung in einer Kaskadenart koppeln, mit dem dritten Datenpuffer, der zwischen die Speicherungssteuerung und den ersten und zweiten Datenpuffer gekoppelt ist. In einer Ausführungsform des Weiteren umfassend, einen Befehlspuffer, der zwischen die Gruppe von Vorrichtungen mit NVM und die Speicherungssteuerung auf einem Befehlsbus gekoppelt ist, den Befehlspuffer, um die Befehlssignale auf dem Befehlsbus erneut zu treiben und Befehlssignale mit einem Taktsignal zu synchronisieren.
  • Die wie hier veranschaulichten Ablaufschaubilder stellen Beispiele von Sequenzen von verschiedenen Prozessaktionen bereit. Die Ablaufschaubilder können Operationen anzeigen, die durch eine Software- oder Firmware-Routine sowie auch physikalische Operationen ausgeführt werden sollen. In einer Ausführungsform kann ein Ablaufschaubild den Zustand einer endlichen Zustandsmaschine (FSM, Finite State Machine) veranschaulichen, die in Hardware, Software oder einer Kombination implementiert sein kann. Obwohl die Aktionen in einer gewissen Sequenz oder Reihenfolge gezeigt sind, kann die Reihenfolge davon modifiziert werden, es sei denn, dies ist anderweitig spezifiziert. Somit sollten die veranschaulichten Ausführungsformen nur als ein Beispiel verstanden sein, und der Prozess kann in einer unterschiedlichen Reihenfolge durchgeführt werden, und einige Aktionen können parallel durchgeführt werden. Zusätzlich kann eine oder können mehrere Aktionen in verschiedenen Ausführungsformen weggelassen werden; somit sind nicht alle Aktionen in jeder Ausführungsform erforderlich. Weitere Prozessabläufe sind möglich.
  • In dem Maße wie verschiedene Operationen oder Funktionen hier beschrieben werden, können sie als Softwarecode, Anweisungen, Konfiguration, Daten oder eine Kombination beschrieben oder definiert werden. Bei dem Inhalt kann es sich um ein direkt ausführbares („Objekt-“ oder „ausführbare“ Form), Quellcode oder Differenzcode („Delta-“ oder „Patch-“ Code) handeln. Der Software-Inhalt der hier beschriebenen Ausführungsformen kann über einen Herstellungsartikel mit darauf gespeichertem Inhalt bereitgestellt werden, oder über ein Verfahren zum Betreiben einer Kommunikationsschnittstelle, um Daten über die Kommunikationsschnittstelle zu senden. Ein maschinenlesbares Speicherungsmedium kann eine Maschine veranlassen, die beschriebenen Funktionen oder Operationen durchzuführen, und weist jeden beliebigen Mechanismus auf, der Informationen in einer Form speichert, auf die eine Maschine (z. B. Computervorrichtung, elektronisches System, etc.) zugreifen kann, wie beispielsweise aufzeichnungsfähige/nicht aufzeichnungsfähige Medien (z. B. Nurlesespeicher (ROM), Speicher mit wahlfreiem Zugriff (RAM), magnetische Plattenspeicherungsmedien, optische Speicherungsmedien, Flash-Speichervorrichtungen, etc.). Eine Kommunikationsschnittstelle weist jeden beliebigen Mechanismus auf, der eine Schnittstelle mit jedem beliebigen eines festverdrahteten, drahtlosen, optischen, etc. Mediums bildet, um mit einer anderen Vorrichtung zu kommunizieren, wie beispielsweise eine Speicherbusschnittstelle, eine Prozessorbusschnittstelle, eine Internetverbindung, eine Plattensteuerung, etc. Die Kommunikationsschnittstelle kann durch Bereitstellen von Konfigurationsparametern oder Senden von Signalen oder beidem konfiguriert sein, um die Kommunikationsschnittstelle vorzubereiten, ein Datensignal bereitzustellen, das den Software-Inhalt beschreibt. Auf die Kommunikationsschnittstelle kann über ein/en oder mehrere Befehl/e oder Signal/e zugegriffen werden, die der Kommunikationsschnittstelle gesendet werden.
  • Bei verschiedenen hier beschriebenen Komponenten kann es sich um Mittel zum Durchführen der beschriebenen Operationen oder Funktionen handeln. Jede hier beschriebene Komponente weist Software, Hardware oder eine Kombination von diesen auf. Die Komponenten können als Software-Module, Hardware-Module, Spezialzweck-Hardware (z. B. anwendungsspezifische Hardware, anwendungsspezifische integrierte Schaltungen (ASICs), Digital-Signal-Prozessoren (DSPs), etc.), eingebettete Steuerungen, festverdrahtete Schaltungsanordnung, etc. implementiert sein.
  • Neben dem hier Beschriebenen können verschiedene Modifikationen an den offenbarten Ausführungsformen und Implementierungen der Erfindung vorgenommen werden, ohne von deren Schutzumfang abzuweichen. Deswegen sollten die Darstellungen und Beispiele hier in einem veranschaulichenden und nicht in einem einschränkenden Sinn verstanden sein. Der Schutzumfang der Erfindung sollte nur durch Bezugnahme auf die nun folgenden Ansprüche bemessen werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 15201370 [0001]

Claims (27)

  1. Beansprucht wird:
  2. Verfahren für Datenzugriff, umfassend: Empfangen eines Pufferbefehls an einem Puffer, der zwischen eine Gruppe von Vorrichtungen mit nichtflüchtigem Speicher (NVM) und eine Speicherungssteuerung gekoppelt ist, wobei der Pufferbefehl nach einem Datenzugriffsbefehl ausgegeben werden soll, der an die Gruppe von Vorrichtungen mit NVM ausgegeben wird; und als Reaktion auf das Empfangen des Pufferbefehls, erneutes Treiben von Datensignalen auf einem Datenbus zwischen den Vorrichtungen mit NVM und der Speicherungssteuerung, einschließlich des Synchronisierens der Datensignale mit einem Taktsignal.
  3. Verfahren nach Anspruch 1, wobei das Empfangen des Pufferbefehls das Empfangen von zwei konsekutiven Befehlen, und als Reaktion auf das Empfangen der zwei konsekutiven Befehle, erneutes Treiben der zwei konsekutiven Bursts von Datensignalen als einen Burst von Datensignalen doppelter Länge umfasst.
  4. Verfahren nach Anspruch 2, des Weiteren umfassend: erneutes Zeitplanen der Datensignale, um Aussetzzyklen intern zu eliminieren, um den Burst doppelter Länge von kontinuierlichem Datentransfer als Reaktion auf die konsekutiven Befehle herzustellen.
  5. Verfahren nach irgendeinem der Ansprüche 1 bis 3, des Weiteren umfassend: Anlernen einer Hostschnittstelle, die mit der Speicherungssteuerung gekoppelt ist, um Einstellungen für die Hostschnittstelle zu konfigurieren; und Anlernen einer Speicherschnittstelle, die mit den Vorrichtungen mit NVM gekoppelt ist, um Einstellungen für die Speicherschnittstelle zu konfigurieren, wobei das Anlernen der Speicherschnittstelle das Schreiben fester Datenstrukturen in ein Register auf dem Puffer über die Hostschnittstelle umfasst.
  6. Verfahren nach einem der Ansprüche 1 bis 4, wobei das erneute Treiben von Datensignalen auf dem Datenbus das erneute Treiben von Schreibdatensignalen von der Speicherungssteuerung zu den Vorrichtungen mit NVM umfasst.
  7. Verfahren nach Anspruch 5, wobei das erneute Treiben der Schreibdatensignale das Synchronisieren der Schreibdatensignale mit einer Protokollzeitplanung einer Schnittstelle der Vorrichtungen mit NVM umfasst.
  8. Verfahren nach einem der Ansprüche 1 bis 6, wobei das erneute Treiben von Datensignalen auf dem Datenbus das erneute Treiben von Lesedatensignalen von den Vorrichtungen mit NVM zu der Speicherungssteuerung umfasst.
  9. Verfahren nach Anspruch 7, wobei das erneute Treiben der Lesedatensignale das Synchronisieren der Lesedatensignale mit einer Protokollzeitplanung einer Speicherungssteuerungsschnittstelle umfasst.
  10. Verfahren nach einem der Ansprüche 1 bis 8, wobei der Puffer einen Datenpuffer umfasst, und des Weiteren umfassend: Empfangen eines Pufferbefehls an einem Befehlspuffer, der zwischen die Gruppe von Vorrichtungen mit nichtflüchtigem Speicher (NVM) und die Speicherungssteuerung gekoppelt ist; und als Reaktion auf das Empfangen des Pufferbefehls, erneutes Treiben eines Datenzugriffsbefehls auf einem Befehlsbus zwischen den Vorrichtungen mit NVM und der Speicherungssteuerung, einschließlich des Synchronisierens des Datenzugriffsbefehls mit einem Taktsignal.
  11. Einrichtung, Mittel zum Durchführen von Operationen umfassend, um ein Verfahren für Datenzugriff in Übereinstimmung mit einer Ausführungsform der Ansprüche 1 bis 9 auszuführen.
  12. Herstellungsartikel, umfassend ein computerlesbares Speicherungsmedium mit darauf gespeichertem Inhalt, welcher, wenn darauf zugegriffen wird, eine Maschine veranlasst, Operationen durchzuführen, um ein Verfahren für Datenzugriff in Übereinstimmung mit einer Ausführungsform der Ansprüche 1 bis 9 auszuführen.
  13. System zur Datenspeicherung, umfassend: eine Gruppe von Vorrichtungen mit nichtflüchtigem Speicher (NVM), eine Speicherungssteuerung, die mit der Gruppe von Vorrichtungen mit NVM gekoppelt ist, wobei die Speicherungssteuerung das Lesen und Schreiben zu den Vorrichtungen mit NVM verwalten soll; und einen Datenpuffer, der zwischen die Gruppe von Vorrichtungen mit NVM und die Speicherungssteuerung auf einem Datenbus gekoppelt ist, wobei der Datenpuffer die Datensignale auf dem Datenbus erneut treiben und Datensignale mit einem Taktsignal synchronisieren soll.
  14. System nach Anspruch 12, wobei die Speicherungssteuerung zuerst ein Befehlssignal an die Gruppe von Vorrichtungen mit NVM senden und als Nächstes ein Steuersignal an den Datenpuffer senden soll, wobei das Steuersignal den Datenpuffer auslösen soll, um die Datensignale an die Gruppe von Vorrichtungen mit NVM zu übertragen.
  15. System nach einem der Ansprüche 12 bis 13, wobei die Vorrichtungen mit NVM in einem Burst-Modus arbeiten sollen, um Daten über 2N Zyklen zu übertragen, und der Datenpuffer arbeiten soll, um Daten über N Zyklen zu übertragen, wobei die Speicherungssteuerung konsekutive Befehle an den Datenpuffer ausgeben soll, um den Datenpuffer zu veranlassen, als Reaktion auf die konsekutiven Befehle 2N Zyklen lang zu arbeiten.
  16. System nach einem der Ansprüche 12 bis 14, wobei der Datenpuffer eine Hostschnittstelle zu der Speicherungssteuerung und eine Speicherschnittstelle zu der Gruppe von Vorrichtungen mit NVM umfasst, und wobei der Datenpuffer unterschiedliche Konfigurationseinstellungen für die Hostschnittstelle als die Speicherschnittstelle anwenden soll, wobei die unterschiedlichen Konfigurationseinstellungen mindestens eine unterschiedliche Zeitplanungskonfigurationseinstellung aufweisen.
  17. System nach einem der Ansprüche 12 bis 15, wobei der Datenpuffer die Datensignale von der Speicherungssteuerung zu den Vorrichtungen mit NVM erneut treiben soll, einschließlich die Datensignale mit einer Protokollzeitplanung einer Schnittstelle der Vorrichtungen mit NVM zu synchronisieren.
  18. System nach einem der Ansprüche 12 bis 16, wobei der Datenpuffer die Datensignale von den Vorrichtungen mit NVM zu der Speicherungssteuerung erneut treiben soll, einschließlich die Datensignale mit einer Protokollzeitplanung einer Speicherungssteuerungsschnittstelle zu synchronisieren.
  19. System nach einem der Ansprüche 12 bis 17, wobei die Gruppe von Vorrichtungen mit NVM eine erste Gruppe umfasst, und der Datenpuffer einen ersten Datenpuffer umfasst, und des Weiteren umfassend eine zweite Gruppe von Vorrichtungen mit NVM und einen zweiten Datenpuffer, der zwischen die zweite Gruppe von Vorrichtungen mit NVM und die Speicherungssteuerung gekoppelt ist.
  20. System nach Anspruch 18, des Weiteren umfassend einen dritten Datenpuffer, wobei die erste und zweite Gruppe mit der Speicherungssteuerung in einer Kaskadenart koppeln, mit dem dritten Datenpuffer, der zwischen die Speicherungssteuerung und den ersten und zweiten Datenpuffer gekoppelt ist.
  21. System nach einem der Ansprüche 12 bis 19, des Weiteren umfassend einen Befehlspuffer, der zwischen die Gruppe von Vorrichtungen mit NVM und die Speicherungssteuerung auf einem Befehlsbus gekoppelt ist, wobei der Befehlspuffer die Befehlssignale auf dem Befehlsbus erneut treiben und Befehlssignale mit einem Taktsignal synchronisieren soll.
  22. System nach einem der Ansprüche 12 bis 20, des Weiteren eines oder mehrere umfassend: mindestens einen Prozessor der kommunikativ mit der Speicherungssteuerung gekoppelt ist; eine Speichersteuerung, die kommunikativ mit der Speicherungssteuerung gekoppelt ist; ein Display, das kommunikativ mit mindestens einem Prozessor gekoppelt ist; eine Batterie, um das System mit Strom zu versorgen; oder eine Netzwerkschnittstelle, die kommunikativ mit mindestens einem Prozessor gekoppelt ist.
  23. Festkörperlaufwerk (SSD), umfassend: eine Speicherungssteuerung, aufweisend eine Schnittstelle, um mit einem Host-Prozessor zu koppeln, wobei die Speicherungssteuerung Lese- und Schreibanforderungen von dem Host-Prozessor verwalten soll; und mehrfache Speicherungsschaltungen, die mit der Speicherungssteuerung gekoppelt sind, aufweisend, eine Vielzahl von Vorrichtungen mit nichtflüchtigem Speicher (NVM); und einen Datenpuffer, der zwischen die Vielzahl von Vorrichtungen mit NVM und die Speicherungssteuerung auf einem Datenbus gekoppelt ist, wobei der Datenpuffer die Datensignale auf dem Befehlsbus erneut treiben und Datensignale mit einem Taktsignal synchronisieren soll.
  24. SSD nach Anspruch 22, wobei die Speicherungssteuerung zuerst ein Befehlssignal an die Gruppe von Vorrichtungen mit NVM senden und als Nächstes ein Steuersignal an den Datenpuffer senden soll, wobei das Steuersignal den Datenpuffer auslösen soll, um die Datensignale an die Gruppe von Vorrichtungen mit NVM zu übertragen.
  25. SSD nach Anspruch 22, wobei der Datenpuffer eine Hostschnittstelle zu der Speicherungssteuerung und eine Speicherschnittstelle zu der Gruppe von Vorrichtungen mit NVM umfasst, und wobei der Datenpuffer unterschiedliche Konfigurationseinstellungen für die Hostschnittstelle als die Speicherschnittstelle anwenden soll, wobei die unterschiedlichen Konfigurationseinstellungen mindestens eine unterschiedliche Zeitplanungskonfigurationseinstellung aufweisen.
  26. SSD nach Anspruch 22, wobei der Datenpuffer die Datensignale von der Speicherungssteuerung zu den Vorrichtungen mit NVM erneut treiben soll, einschließlich die Datensignale mit einer Protokollzeitplanung einer Schnittstelle der Vorrichtungen mit NVM zu synchronisieren, und wobei der Datenpuffer die Datensignale von den Vorrichtungen mit NVM zu der Speicherungssteuerung erneut treiben soll, einschließlich die Datensignale mit einer Protokollzeitplanung einer Speicherungssteuerungsschnittstelle zu synchronisieren.
  27. Puffervorrichtung, umfassend: Speicherschnittstellenlogik, um mit einer Gruppe von Vorrichtungen mit nichtflüchtigem Speicher (NVM) zu koppeln; Hostschnittstellenlogik, um mit einer Speicherungssteuerung zu koppeln, wobei die Speicherungssteuerung das Lesen und Schreiben zu den Vorrichtungen mit NVM verwalten soll; und Steuerlogik, um die Datensignale zwischen den Vorrichtungen mit NVM und der Speicherungssteuerung auf einem Datenbus erneut zu treiben, und die Datensignale mit einem Taktsignal zu synchronisieren.
DE112017003334.9T 2016-07-01 2017-06-02 Lastreduzierte nichtflüchtige speicherschnittstelle Pending DE112017003334T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/201,370 US10459855B2 (en) 2016-07-01 2016-07-01 Load reduced nonvolatile memory interface
US15/201,370 2016-07-01
PCT/US2017/035716 WO2018004996A1 (en) 2016-07-01 2017-06-02 Load reduced nonvolatile memory interface

Publications (1)

Publication Number Publication Date
DE112017003334T5 true DE112017003334T5 (de) 2019-03-21

Family

ID=60787806

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017003334.9T Pending DE112017003334T5 (de) 2016-07-01 2017-06-02 Lastreduzierte nichtflüchtige speicherschnittstelle

Country Status (4)

Country Link
US (3) US10459855B2 (de)
CN (2) CN117032970A (de)
DE (1) DE112017003334T5 (de)
WO (1) WO2018004996A1 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180059945A1 (en) * 2016-08-26 2018-03-01 Sandisk Technologies Llc Media Controller with Response Buffer for Improved Data Bus Transmissions and Method for Use Therewith
US10679722B2 (en) 2016-08-26 2020-06-09 Sandisk Technologies Llc Storage system with several integrated components and method for use therewith
US20180059943A1 (en) * 2016-08-26 2018-03-01 Sandisk Technologies Llc Media Controller and Method for Management of CPU-Attached Non-Volatile Memory
US10613772B2 (en) * 2017-03-16 2020-04-07 Qualcomm Incorporated Methods and apparatuses for copying a data page in an unmanaged flash memory device
US10140222B1 (en) * 2017-07-06 2018-11-27 Micron Technology, Inc. Interface components
US10514748B2 (en) * 2017-09-27 2019-12-24 Western Digital Technologies, Inc. Reactive power management for non-volatile memory controllers
US10431305B2 (en) * 2017-12-14 2019-10-01 Advanced Micro Devices, Inc. High-performance on-module caching architectures for non-volatile dual in-line memory module (NVDIMM)
KR102637166B1 (ko) 2018-04-17 2024-02-16 삼성전자주식회사 대용량 데이터를 저장하는 네트워크 스토리지 장치
KR102519572B1 (ko) 2018-05-11 2023-04-07 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
JP2020047340A (ja) 2018-09-19 2020-03-26 キオクシア株式会社 不揮発性メモリ及びメモリシステム
CN110989918B (zh) * 2018-10-03 2023-03-28 慧荣科技股份有限公司 写入控制方法以及数据存储装置及其控制器
KR20200124045A (ko) 2019-04-23 2020-11-02 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200126666A (ko) 2019-04-30 2020-11-09 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11404097B2 (en) 2018-12-11 2022-08-02 SK Hynix Inc. Memory system and operating method of the memory system
US11139010B2 (en) 2018-12-11 2021-10-05 SK Hynix Inc. Memory system and operating method of the memory system
KR20200126678A (ko) * 2019-04-30 2020-11-09 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200137548A (ko) 2019-05-30 2020-12-09 에스케이하이닉스 주식회사 메모리 장치 및 이의 테스트 동작 방법
CN110060721A (zh) * 2019-04-08 2019-07-26 苏州汇峰微电子有限公司 一种动态随机存储器数据传输通道
US11132292B2 (en) * 2019-12-10 2021-09-28 Micron Technology, Inc. Active input/output expander of a memory sub-system
US11403804B2 (en) * 2020-01-03 2022-08-02 Nokia Technologies Oy Method for real time texture adaptation
US11150842B1 (en) * 2020-04-20 2021-10-19 Western Digital Technologies, Inc. Dynamic memory controller and method for use therewith
US11281399B2 (en) 2020-06-24 2022-03-22 Western Digital Technologies, Inc. Dual-interface storage system and method for use therewith
US11442665B2 (en) 2020-12-04 2022-09-13 Western Digital Technologies, Inc. Storage system and method for dynamic selection of a host interface

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3369227B2 (ja) 1992-11-09 2003-01-20 株式会社東芝 プロセッサ
US8171204B2 (en) 2000-01-06 2012-05-01 Super Talent Electronics, Inc. Intelligent solid-state non-volatile memory device (NVMD) system with multi-level caching of multiple channels
US7076678B2 (en) 2002-02-11 2006-07-11 Micron Technology, Inc. Method and apparatus for data transfer
US7234099B2 (en) 2003-04-14 2007-06-19 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
DE102004004796B4 (de) * 2004-01-30 2007-11-29 Infineon Technologies Ag Vorrichtung zur Datenübertragung zwischen Speichern
US7437497B2 (en) * 2004-08-23 2008-10-14 Apple Inc. Method and apparatus for encoding memory control signals to reduce pin count
US7571296B2 (en) 2004-11-11 2009-08-04 Nvidia Corporation Memory controller-adaptive 1T/2T timing control
US7620773B2 (en) * 2005-04-15 2009-11-17 Microsoft Corporation In-line non volatile memory disk read cache and write buffer
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US20060294295A1 (en) * 2005-06-24 2006-12-28 Yukio Fukuzo DRAM chip device well-communicated with flash memory chip and multi-chip package comprising such a device
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8397013B1 (en) * 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US7577039B2 (en) * 2005-11-16 2009-08-18 Montage Technology Group, Ltd. Memory interface to bridge memory buses
US7793059B2 (en) * 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
US7769942B2 (en) * 2006-07-27 2010-08-03 Rambus, Inc. Cross-threaded memory system
US8272781B2 (en) 2006-08-01 2012-09-25 Intel Corporation Dynamic power control of a memory device thermal sensor
US20080114924A1 (en) * 2006-11-13 2008-05-15 Jack Edward Frayer High bandwidth distributed computing solid state memory storage system
JP5130754B2 (ja) * 2007-03-15 2013-01-30 富士通セミコンダクター株式会社 半導体集積回路及びメモリシステム
US8154918B2 (en) 2008-06-30 2012-04-10 Sandisk Il Ltd. Method for page- and block based scrambling in non-volatile memory
WO2010061588A1 (ja) * 2008-11-28 2010-06-03 パナソニック株式会社 メモリ制御装置、データプロセッサ及びデータ読み出し方法
US9001607B2 (en) 2009-08-19 2015-04-07 Samsung Electronics Co., Ltd. Method and design for high performance non-volatile memory
US8862966B2 (en) 2009-09-09 2014-10-14 Advanced Micro Devices, Inc. Adjustment of write timing based on error detection techniques
US20120221767A1 (en) * 2011-02-28 2012-08-30 Apple Inc. Efficient buffering for a system having non-volatile memory
US8665665B2 (en) 2011-03-30 2014-03-04 Mediatek Inc. Apparatus and method to adjust clock duty cycle of memory
US8607089B2 (en) 2011-05-19 2013-12-10 Intel Corporation Interface for storage device access over memory bus
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US8934317B2 (en) * 2012-01-13 2015-01-13 Samsung Electronics Co., Ltd. Semiconductor memory devices having internal clock signals and memory systems including such memory devices
KR101962784B1 (ko) * 2012-10-09 2019-03-27 삼성전자주식회사 온도에 따라 차별화된 리드 동작 및 라이트 동작을 갖는 반도체 메모리 장치
US9280497B2 (en) * 2012-12-21 2016-03-08 Dell Products Lp Systems and methods for support of non-volatile memory on a DDR memory channel
JP6212367B2 (ja) 2012-12-28 2017-10-11 キヤノンイメージングシステムズ株式会社 情報処理装置、携帯端末、デバイス制御システム、およびその制御方法
JP6139010B2 (ja) 2013-03-15 2017-05-31 インテル・コーポレーション デバイス
KR102171262B1 (ko) * 2013-12-26 2020-10-28 삼성전자 주식회사 입력 버퍼와 입력 버퍼를 포함하는 플래쉬 메모리 장치
KR102193681B1 (ko) * 2014-01-28 2020-12-21 삼성전자주식회사 Dll을 이용한 ilpll 회로
US20150261446A1 (en) * 2014-03-12 2015-09-17 Futurewei Technologies, Inc. Ddr4-onfi ssd 1-to-n bus adaptation and expansion controller
KR102112024B1 (ko) * 2014-04-14 2020-05-19 삼성전자주식회사 데이터 스토리지 시스템에서의 스트로브 신호 성형방법 및 그에 따른 스트로브 신호 성형장치
US9484070B2 (en) 2014-04-30 2016-11-01 Micron Technology, Inc. Apparatuses supporting multiple interface types and methods of operating the same
US9792965B2 (en) 2014-06-17 2017-10-17 Rambus Inc. Memory module and system supporting parallel and serial access modes
US20160179388A1 (en) * 2014-12-18 2016-06-23 CNEXLABS, Inc. Method and apparatus for providing programmable nvm interface using sequencers
EP3230982A4 (de) 2015-01-28 2018-08-29 Hewlett-Packard Development Company, L.P. Unterstützung verschiedener arten von speichervorrichtungen
KR20160102770A (ko) * 2015-02-23 2016-08-31 삼성전자주식회사 메모리 모듈, 이를 포함하는 메모리 시스템, 및 이를 포함하는 데이터 저장 시스템
KR20170024807A (ko) * 2015-08-26 2017-03-08 에스케이하이닉스 주식회사 반도체 장치 및 이를 위한 수신회로
US10031677B1 (en) 2015-10-14 2018-07-24 Rambus Inc. High-throughput low-latency hybrid memory module
US9792224B2 (en) 2015-10-23 2017-10-17 Intel Corporation Reducing latency by persisting data relationships in relation to corresponding data in persistent memory
US9653147B1 (en) * 2015-12-02 2017-05-16 Integrated Device Technology Inc. Asymmetrical emphasis in a memory data bus driver
US10163508B2 (en) 2016-02-26 2018-12-25 Intel Corporation Supporting multiple memory types in a memory slot
US10108564B2 (en) * 2016-03-28 2018-10-23 Qualcomm Incorporated Active and stall cycle based dynamic scaling of processor frequency and bus bandwidth
US10152262B2 (en) * 2016-05-03 2018-12-11 Micron Technology, Inc. Memory access techniques in memory devices with multiple partitions

Also Published As

Publication number Publication date
US10459855B2 (en) 2019-10-29
CN117032970A (zh) 2023-11-10
CN109313617A (zh) 2019-02-05
US11789880B2 (en) 2023-10-17
WO2018004996A1 (en) 2018-01-04
CN109313617B (zh) 2023-08-25
US11500795B2 (en) 2022-11-15
US20230116774A1 (en) 2023-04-13
US20180004688A1 (en) 2018-01-04
US20200133899A1 (en) 2020-04-30

Similar Documents

Publication Publication Date Title
DE112017003334T5 (de) Lastreduzierte nichtflüchtige speicherschnittstelle
DE102020104367A1 (de) Refresh-befehlssteuerung für eine hostunterstützung einer rowhammer-mitigation
DE112017004268T5 (de) Befehlsbus mit doppelter datenrate
DE112013003248B4 (de) Steuern einer physischen Verbindung von einem ersten Protokoll unter Verwendung einer erweiterten Funktionsstruktur eines zweiten Protokolls
DE112015003397T5 (de) Vorrichtung, System und Verfahren zur Bestimmung von Vergleichsinformationen basierend auf Speicherdaten
DE112017001020T5 (de) Unterstützung einer vielzahl von speichertypen in einem speichersteckplatz
DE102009037984B4 (de) Speichereinheit für eine hierarchische Speicherarchitektur
DE112017001471T5 (de) Mehrebenen-speichermanagement
DE112011106021B4 (de) Zugreifen auf Daten, die in einem Befehls-/Adressregister-Gerät gespeichert sind
DE102018128601A1 (de) Hintergrunddatenauffrischung unter Verwendung eines Systemzeitstempels in Speicherungseinrichtungen
DE112017006599T5 (de) Programmierbare datenstruktur zum wiederholten schreiben in einen speicher
US10762003B2 (en) State change in systems having devices coupled in a chained configuration
US10032494B2 (en) Data processing systems and a plurality of memory modules
DE102020132763A1 (de) Undirektionaler informationskanal zur überwachung einer drift eines bidirektionalen informationskanals
EP2324431A1 (de) Eingangs-ausgangs-modul, verarbeitungsplattform und verfahren zur erweiterung einer speicherschnittstelle für eingangs-ausgangs-operationen
DE112017004966T5 (de) Erweiterte anwendung eines fehlerprüfungs- und korrekturcodes in einem speicher
DE112022000580T5 (de) Reduzierung der Latenzauswirkungen von Fehlerprüfung und Korrektur auf dem Chip (ECC)
DE102022105932A1 (de) Komprimierter verbindungsstiftmit geschlossenem regelkreis
DE102018106863A1 (de) Speichersystem zum Unterstützen einer internen DQ-Terminierung eines Datenpuffers
DE102021122233A1 (de) Beschleuniger-controller-hub
DE102020120800A1 (de) Verringern des Stromverbrauchs in nichtflüchtigem Speicher aufgrund von Standby-Leckstrom
DE112022000954T5 (de) Doppelabruf für Speicherdatenübertragung mit langer Burst-Länge
DE112012006070T5 (de) Speichergerät, das auf Gerätebefehle zur Betriebssteuerung reagiert
DE102016119494A1 (de) Takterzeugungsschaltung, welche eine Entzerrfunktion hat, und integrierte Halbleiterschaltung mit derselben
DE102021117355A1 (de) SSD-verwaltete Host-Schreib-Atomizität mit beliebiger Übertragungslänge

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: SK HYNIX NAND PRODUCT SOLUTIONS CORP., SAN JOS, US

Free format text: FORMER OWNER: INTEL CORPORATION, SANTA CLARA, CALIF., US

R012 Request for examination validly filed