DE112020000167T5 - Verschachtelte host-rücksetzungs- und nächste neuinitialisierungsoperationen - Google Patents

Verschachtelte host-rücksetzungs- und nächste neuinitialisierungsoperationen Download PDF

Info

Publication number
DE112020000167T5
DE112020000167T5 DE112020000167.9T DE112020000167T DE112020000167T5 DE 112020000167 T5 DE112020000167 T5 DE 112020000167T5 DE 112020000167 T DE112020000167 T DE 112020000167T DE 112020000167 T5 DE112020000167 T5 DE 112020000167T5
Authority
DE
Germany
Prior art keywords
reset
operations
data storage
host
storage system
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
DE112020000167.9T
Other languages
English (en)
Inventor
Shay Benisty
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of DE112020000167T5 publication Critical patent/DE112020000167T5/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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

Ausführungsformen der vorliegenden Offenbarung versuchen, die Zeitprobleme früherer Ansätze zu mildern, indem das Rücksetzen der NVMe-Vorrichtung und die erneute Initialisierung nach dem Rücksetzen parallel durchgeführt werden. In Ausführungsformen sind die Rücksetzungs- und Neuinitialisierungsoperationen der NVMe-Vorrichtung logisch in Front-End- und Back-End-Operationen unterteilt, die parallel ausgeführt werden können. Nach Empfang des Rücksetzungsbefehls von einem Host führt die NVMe-Vorrichtung Front-End-Rücksetzungsoperationen zum Rücksetzen der Vorrichtung aus und führt parallel Back-End-Neuinitialisierungsoperationen durch. Sobald die Front-End-Rücksetzungsoperationen abgeschlossen sind, oder nach einer vorbestimmten Zeitdauer, meldet die NVMe-Vorrichtung dem Host, dass die Vorrichtungsrücksetzung abgeschlossen ist, während Back-End-Operationen fortgesetzt werden. Sobald alle Rücksetzungs- und Neuinitialisierungsoperationen abgeschlossen sind, kann die NVMe-Vorrichtung fortfahren, E/A-Anweisungen vom Host auszuführen.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht die Priorität der US-Patentanmeldung Nr. 16/600.816 , eingereicht am 14. Oktober 2019, die der Anmelderin zugeordnet ist und durch Bezugnahme in ihrer Gesamtheit hierin eingeschlossen ist.
  • HINTERGRUND DER OFFENBARUNG
  • Gebiet der Offenbarung
  • Ausführungsformen der vorliegenden Offenbarung beziehen sich im Allgemeinen auf die Verwaltung einer Datenspeicherung und insbesondere auf das Rücksetzen einer NVMe-Vorrichtung.
  • Beschreibung des Stands der Technik
  • Während des Betriebs eines Hostsystems, das eine Datenspeicherungsvorrichtung mit NVMe (non-volatile memory express) enthält, ist es gelegentlich erforderlich, dass der NVMe einer Rücksetzungsoperation unterzogen wird.
  • Es gibt zwei Hauptphasen, die eine solche Rücksetzungsoperation bilden. Die erste ist die Behandlung der Vorrichtungsrücksetzung. Während der Rücksetzungsbehandlung wird eine Anzahl von Operationen ausgeführt, einschließlich, aber nicht beschränkt auf die Beendigung gegenwärtig ausstehender Verwaltungs- oder E/A-Prozesse, das Löschen von E/A-Übermittlungs- und Beendigungswarteschlangen, der Übergang der NVMe-Steuerung in einen Ruhezustand, das Leeren aller zwischengespeicherten Daten in das NAND und eine Aktualisierung von FTL-Tabellen in Vorbereitung auf die nächste Operation.
  • Sobald die Rücksetzungsoperationen abgeschlossen sind, wird die NVMe-Vorrichtung neu initialisiert und beginnt die zweite Phase des Rücksetzens der NVMe-Vorrichtung. Die Vorrichtung wird durch den Host mit einer Anzahl von Operationen neu initialisiert, wie Aktualisierung des Registerzustands, Konfiguration der NVMe-Steuerung, Erzeugen von E/A-Beendigungs- und Übermittlungswarteschlangen, und sobald diese abgeschlossen sind, Fortsetzung der normalen E/A-Operation des NVMe.
  • Die Rücksetzungs- und Neuinitialisierungsprozesse werden jedoch typischerweise seriell durchgeführt. Da nicht bekannt ist, wie lange die Rücksetzungs- und/oder Neuinitialisierungsphasen dauern dürfen, ist es unbekannt, wie lange der gesamte Prozess dauern wird. Da diese Zeit unbekannt ist, erfüllt der NVMe-Rücksetzungsprozess, gefolgt von einer Neuinitialisierung, möglicherweise keine standardbasierten Erwartungen eines Hostsystems. Solche Standards können NVMe, PCle und/oder andere Standards für die Verwendung von Speicherhardware einschließen.
  • Was benötigt wird, sind ein System und ein Verfahren zum Rücksetzen einer NVMe-Vorrichtung auf eine Weise, die zeitlich vorhersagbarer und standardkonform ist.
  • KURZDARSTELLUNG DER OFFENBARUNG
  • Ausführungsformen der vorliegenden Offenbarung versuchen, die Zeitprobleme früherer Ansätze zu mildern, indem das Rücksetzen und die Neuinitialisierung nach dem Rücksetzen von NVMe-, PCle- oder anderen Vorrichtungen parallel durchgeführt werden. In Ausführungsformen sind die Rücksetzungs- und Neuinitialisierungsoperationen der NVMe-Vorrichtung logisch in Front-End- und Back-End-Operationen unterteilt, die parallel ausgeführt werden können. Nach Empfang des Rücksetzungsbefehls von einem Host führt die NVMe-Vorrichtung Front-End-Rücksetzungsoperationen zum Rücksetzen der Vorrichtung aus und führt parallel Back-End-Neuinitialisierungsoperationen durch. Sobald die Front-End-Rücksetzungsoperationen abgeschlossen sind, oder nach einer vorbestimmten Zeitdauer, meldet die NVMe-Vorrichtung dem Host, dass die Vorrichtungsrücksetzung abgeschlossen ist, während Back-End-Operationen fortgesetzt werden. Sobald alle Rücksetzungs- und Neuinitialisierungsoperationen abgeschlossen sind, kann die NVMe-Vorrichtung fortfahren, E/A-Anweisungen vom Host auszuführen.
  • In einer Ausführungsform wird eine Datenspeicherungsvorrichtung offenbart. In Ausführungsformen kann die Datenspeicherungsvorrichtung eine Steuerung einschließen, die Anweisungen aufweist, welche, wenn sie von einem Prozessor ausgeführt werden, die Steuerung veranlassen, ein Verfahren zum Rücksetzen der Datenspeicherungsvorrichtung durchzuführen. In Ausführungsformen weist das Verfahren das logische Trennen eines Satzes von Front-End-Rücksetzungsaufgaben von einem Satz von Back-End-Rücksetzungsaufgaben, das Empfangen eines Rücksetzungsbefehls von einem Hostsystem, das parallele Durchführen des Satzes von Front-End-Rücksetzungsaufgaben und des Satzes von Back-End-Rücksetzungsaufgaben nach Empfang des Rücksetzungsbefehls auf. Das Verfahren kann weiterhin das Übertragen eines Rücksetzungsabschlusssignals an das Hostsystem nach Abschluss des Satzes von Front-End-Rücksetzungsaufgaben und das Übertragen eines Speicherungsvorrichtungs-Bereitschaftssignals an das Hostsystem, das angibt, dass sich die Speicherungsvorrichtung in einem Zustand zum Empfangen eines Befehls von dem Hostsystem befindet, aufweisen. In Ausführungsformen kann das Verfahren weiterhin das Empfangen eines Befehls von dem Hostsystem und das Ausführen des Befehls, wenn der Satz von Back-End-Rücksetzungsaufgaben abgeschlossen ist, aufweisen.
  • In einer anderen Ausführungsform wird ein Datenspeicherungssystem offenbart. Das Datenspeicherungssystem schließt in Ausführungsformen eine Schnittstelle ein, die konfiguriert ist, um Rücksetzungsanweisungen von einem Host zu empfangen, ein Front-End-Modul, das konfiguriert ist, um Front-End-Rücksetzungsoperationen auszuführen, und ein Back-End-Modul, das konfiguriert ist, um Back-End-Rücksetzungsoperationen auszuführen. Dieses System kann weiterhin ein Rücksetzungsbehandlungsmodul aufweisen, das konfiguriert ist, um das Front-End-Modul logisch von dem Back-End-Modul zu trennen, wobei die Front-End-Rücksetzungsoperationen und Back-End-Rücksetzungsoperationen parallel ausgeführt werden, und das Rücksetzungsbehandlungsmodul ist konfiguriert, um mit dem Host nach Abschluss von Front-End-Operationen zu kommunizieren, dass Rücksetzungsoperationen abgeschlossen sind.
  • In einer anderen Ausführungsform wird ein Datenspeicherungssystem offenbart, das eine Steuerung aufweist, die einen Prozessor zum Ausführen von Computeranweisungen zum Rücksetzen des Datenspeicherungssystems einschließt. In Ausführungsformen kann die Steuerung ein Front-End-Modul, das konfiguriert ist, um Front-End-Rücksetzungsoperationen auszuführen, ein Back-End-Modul, das konfiguriert ist, um Back-End-Rücksetzungsoperationen auszuführen, und ein Mittel zum logischen Trennen der Front-End-Rücksetzungsoperationen von den Back-End-Rücksetzungsoperationen einschließen, sodass die Front-End-Rücksetzungsoperationen und Back-End-Rücksetzungsoperationen parallel ausgeführt werden.
  • Figurenliste
  • Zur Verdeutlichung der Art und Weise, wie die vorstehend angegebenen Merkmale der vorliegenden Offenbarung im Detail verstanden werden können, kann eine ausführlichere Beschreibung der Offenbarung, die vorstehend kurz zusammengefasst ist, unter Bezugnahme auf Ausführungsformen erfolgen, von denen einige in den beigefügten Zeichnungen veranschaulicht sind. Es ist jedoch zu beachten, dass in den beigefügten Zeichnungen nur typische Ausführungsformen dieser Offenbarung veranschaulicht sind und diese daher nicht als ihren Schutzumfang einschränkend anzusehen sind, da die Offenbarung andere ebenso wirksame Ausführungsformen zulassen kann.
    • 1 zeigt eine NVMe-Vorrichtung gemäß einer oder mehreren Ausführungsformen.
    • 2 zeigt ein Flussdiagramm, das ein verschachteltes NVMe-Rücksetzen und Neuinitialisieren gemäß einer oder mehreren Ausführungsformen beschreibt.
    • 3 zeigt ein beispielhaftes Verarbeitungssystem zum verschachtelten Rücksetzen und Neuinitialisieren einer NVMe-Vorrichtung gemäß einer oder mehreren Ausführungsformen.
    • 4 zeigt ein beispielhaftes Zeitdiagramm gemäß offenbarten Ausführungsformen.
  • Zum besseren Verständnis wurden, soweit möglich, identische Bezugszeichen verwendet, um identische Elemente zu bezeichnen, die den Figuren gemein sind. Es wird in Betracht gezogen, dass die in einer Ausführungsform offenbarten Elemente ohne besondere Aufzählung vorteilhaft auf andere Ausführungsformen angewendet werden können.
  • DETAILLIERTE BESCHREIBUNG
  • Im Folgenden wird auf die Ausführungsformen der Offenbarung verwiesen. Es versteht sich jedoch, dass die Offenbarung nicht auf bestimmte beschriebene Ausführungsformen beschränkt ist. Stattdessen wird jede Kombination der folgenden Merkmale und Elemente, unabhängig davon, ob sie sich auf verschiedene Ausführungsformen beziehen oder nicht, zur Umsetzung und Praxis der Offenbarung in Betracht gezogen. Obwohl Ausführungsformen der Offenbarung Vorteile gegenüber anderen möglichen Lösungen und/oder gegenüber dem Stand der Technik erzielen können, ist die Offenbarung nicht einschränkend, ob ein bestimmter Vorteil durch eine bestimmte Ausführungsform erreicht wird oder nicht. Die folgenden Gesichtspunkte, Merkmale, Ausführungsformen und Vorteile sind daher nur veranschaulichend und gelten nicht als Elemente oder Einschränkungen der beiliegenden Ansprüche, es sei denn, sie werden ausdrücklich in einem oder mehreren Ansprüchen angegeben. Ebenso soll eine Bezugnahme auf „die Offenbarung“ nicht als Verallgemeinerung eines hierin offenbarten erfinderischen Gegenstands ausgelegt werden und soll nicht als Element oder Einschränkung der beiliegenden Ansprüche betrachtet werden, es sei denn, dies wird ausdrücklich in einem Anspruch bzw. in Ansprüchen angegeben.
  • Ausführungsformen der vorliegenden Offenbarung versuchen, die Zeitprobleme früherer Ansätze zu mildern, indem das Rücksetzen der NVMe-Vorrichtung und die erneute Initialisierung nach dem Rücksetzen parallel durchgeführt werden. In Ausführungsformen sind die Rücksetzungs- und Neuinitialisierungsoperationen der NVMe-Vorrichtung logisch unterteilt. Rücksetzungsoperationen sind in Front-End-Operationen und Back-End-Operationen unterteilt, wobei Back-End-Rücksetzungsoperationen parallel zu Neuinitialisierungsoperationen ausgeführt werden. Nach Empfang des Rücksetzungsbefehls von einem Host führt die NVMe-Vorrichtung Front-End-Rücksetzungsoperationen zum Rücksetzen der Vorrichtung aus. Sobald die Front-End-Rücksetzungsoperationen abgeschlossen sind, oder nach einer vorbestimmten Zeitdauer, meldet die NVMe-Vorrichtung dem Host, dass die Vorrichtungsrücksetzung abgeschlossen ist, während die Neuinitialisierung der Vorrichtung und die Back-End-Operationen fortgesetzt werden. Sobald alle Rücksetzungs- und Neuinitialisierungsoperationen abgeschlossen sind, kann die NVMe-Vorrichtung fortfahren, E/A-Anweisungen vom Host auszuführen.
  • 1 stellt eine beispielhafte NVMe-Vorrichtung 100 dar. Die NVMe-Vorrichtung 100 kann jede Art von Speicherungsvorrichtung mit nichtflüchtigem Speicher sein, jedoch können hierin offenbarte Ausführungsformen auf andere Arten von Datenspeicherungsvorrichtungen anwendbar sein. Geeignete Mittel für die NVMe-Vorrichtung 100 schließen Festkörperlaufwerke (SSD) ein und können andere Speicherungsvorrichtungen einschließen, die nichtflüchtigen und/oder flüchtigen Speicher verwenden.
  • Die NVMe-Vorrichtung 100 schließt eine NVMe-Vorrichtungssteuerung 105 gemäß Ausführungsformen ein. Die NVMe-Gerätesteuerung 105 schließt einen Rücksetzungsbehandler 110 ein. Der Rücksetzungsbehandler 110 schließt einen Rücksetzungsbehandlerprozessor 111 und Anweisungen ein, die in der Lage sind, Rücksetzungsoperationen für die NVMe-Vorrichtungssteuerung 105 zu verwalten. Geeignete Mittel zur Verwaltung von Rücksetzungsoperationen können in Hardware, Firmware, Software oder einem anderen Medium implementiert sein, das in der Lage ist, Anweisungen zu speichern, die vom Rücksetzungsbehandler 110 gelesen werden können. Der Rücksetzungsbehandler 110 in einigen Ausführungsformen schließt weiterhin eine Rücksetzungsbehandlerbewertung 112 zum Bewerten der Zeit zum Melden der abgeschlossenen Rücksetzung an einen Host 130 ein.
  • Der Rücksetzungsbehandler 110 kommuniziert mit einem Front-End 115 und einem Back-End 120. Der Rücksetzungsbehandler 110 dient neben dem Steuern der Operationen des Front-End 115 und Back-End 120 zum funktionalen und/oder logischen Trennen der Funktion jeder dieser Komponenten. Wie nachstehend erörtert, ist das Front-End 115 konfiguriert, um Rücksetzungsoperationen sowie Vorrichtungsneuinitialisierungsoperationen auszuführen. Der Rücksetzungsbehandler 110 in Ausführungsformen ist konfiguriert, um auch diese Funktionen des Front-End 115 logisch zu trennen. Die logische Trennung in Ausführungsformen kann auf Architekturebene der NVMe-Vorrichtung 100 durchgeführt werden.
  • Das Front-End 115 schließt einen Front-End-Prozessor 116 sowie eine Anzahl von Registern wie die NVMe-Register 117 ein und kann in einigen Ausführungsformen PCI-Konfigurationsraum 118 einschließen. Das Front-End 115 schließt Komponenten ein, die für die Interaktion mit dem Host 130 verantwortlich sind, wie PCle, PHY, MAC, NVMe, und Prozessoren, wie den Front-End-Prozessor 116. Das Front-End 115 kann konfiguriert sein, um eine Anzahl von Rücksetzungsoperationen auszuführen, einschließlich des Beendens gegenwärtig ausstehender Verwaltungs- oder E/A-Prozesse, des Löschens von E/A-Übermittlungs- und Beendigungswarteschlangen, des Übergangs der NVMe-Steuerung in einen Ruhezustand, des Entleerens aller zwischengespeicherten Daten in den NAND, des Aktualisierens der FTL-Tabellen in Vorbereitung auf die nächste Operation, des Bereinigens interner Datenbanktabellen (z. B. Kollisionstabellen), des Rücksetzens aller Status- und Konfigurationsregister, des Reinigens des Datenpfads und dergleichen. In Ausführungsformen ist das Front-End 115 konfiguriert, um die NVMe-Vorrichtung 100 neu zu initialisieren. Die Neuinitialisierung in Ausführungsformen schließt das Wiederherstellen der Verbindung zu einem Host, der mit der NVMe-Vorrichtung 100 gekoppelt ist, die PCIe-Aufzählung und -Initialisierung, die NVMe-Register-Neuinitialisierung, die Wiederherstellung von NVMe-Warteschlangen und die MSI-X-Tabelleninitialisierung ein, ist aber nicht darauf beschränkt.
  • Das Back-End 120 schließt einen Back-End-Prozessor 121 und Komponenten ein, die Module, welche für Interaktionen mit Speichern, wie DMA 122, verantwortlich sind, sowie Komponenten, die Datenintegrität gewährleisten, wie Fehlerkorrektur 123, integrieren. Das Back-End 120 in Ausführungsformen schließt Verbindungen zu einem oder mehreren NANDs und einem oder mehreren Speichern (z. B. DDR-Speicher) ein, auf die während Back-End-Rücksetzungsoperationen zugegriffen werden kann. Das Back-End 120 ist konfiguriert, um Rücksetzungsoperationen auszuführen, wie beispielsweise das Leeren aller Cache-Daten in das NAND, das Aktualisieren von Tabellen in dem NAND, das Bereinigen der internen Datenbanken, das Rücksetzen aller Status- und Konfigurationsregister und andere Hintergrundoperationen.
  • Der Host 130 verwendet die NVMe-Vorrichtung 100, die von der NVMe-Vorrichtungssteuerung 105 bei der Ausführung von E/A-Operationen gesteuert wird. Der Host 130 kann jede Art von Rechensystem sein, das in der Lage ist, die NVMe-Vorrichtung 100 zu verwenden. Geeignete Mittel für einen Host schließen eine tragbare Rechenvorrichtung, einen Desktop-/Workstation-Computer, ein verteiltes Rechensystem, ein virtualisiertes Rechensystem oder eine beliebige Art von Rechensystem ein, das in der Lage ist, die NVMe-Vorrichtung 100 zu verwenden.
  • Beim Empfangen eines Rücksetzungsbefehls bewertet die NVMe-Vorrichtungssteuerung 105 in einigen Ausführungsformen über die Rücksetzungsbehandlungsbewertung 112 des Rücksetzungsbehandlers 110, wann der Host 130 zu benachrichtigen ist, dass die Rücksetzung abgeschlossen ist und normale E/A-Operationen fortgesetzt werden können. Geeignete Mittel zur Bewertung der Zeitsteuerung der Benachrichtigung des Hosts 130 basieren auf Parametern wie der Anzahl anhängiger Befehle in der Vorrichtung, aktuelle Cache-Zwischenspeichergröße, NAND-Zustand, anhängige Hintergrundoperationen, verschmutzte Einträge in einer FTL-Tabelle, die zum NAND geleert werden sollen, und dergleichen, die im Front-End 115 während des Rücksetzens abgeschlossen werden sollten, sowie auf der geschätzten Zeit für das Rücksetzen und die Neuinitialisierung. Es sollte beachtet werden, dass die Zeit zum Benachrichtigen des Hosts als zu einer Zeit vor der Einleitung von Neuinitialisierungsoperationen und zum Abschluss seiner Rücksetzungoperationen durch das Back-End 120 bestimmt werden kann.
  • In anderen Ausführungsformen bewertet der Rücksetzungsbehandler 110 keine bestimmte Zeit, um den Host 130 zu benachrichtigen, und erzeugt stattdessen ein Signal, um den Host 130 zu benachrichtigen, dass die Rücksetzung abgeschlossen ist, wenn das Front-End 115 seine Rücksetzungsoperationen abgeschlossen hat, vor Beginn von Neuinitialisierungsoperationen und dem Abschluss von Operationen des Back-End 120.
  • Die NVMe-Vorrichtungssteuerung 105 ist in 1 so dargestellt, dass sie eine Anzahl diskreter Prozessoren aufweist, wie beispielsweise den Front-End-Prozessor 116, den Back-End-Prozessor 121 und den Steuerungsprozessor 140. Geeignete Mittel für einen oder mehrere dieser Prozessoren können jedoch ein einzelner Prozessor, mehrere Prozessoren oder ein oder mehrere Prozessoren sein, die sich entfernt von der NVMe-Vorrichtungssteuerung 105 oder der NVMe-Vorrichtung 100 befinden.
  • 2 zeigt ein Flussdiagramm 200, das ein verschachteltes NVMe-Rücksetzen und -Neuinitialisieren gemäß Ausführungsformen der Offenbarung beschreibt. Bei 205 wird ein Rücksetzungsbefehl ausgegeben. In einigen Ausführungsformen kann der Host 130 oder eine andere Vorrichtung außerhalb der NVMe-Vorrichtung 100 den Rücksetzungsbefehl ausgeben, während in anderen Ausführungsformen die NVMe-Vorrichtungssteuerung 105 den Rücksetzungsbefehl ausgeben kann.
  • Bei 210 wird eine Bewertung der Zeit für die Rücksetzungsbehandlung durchgeführt, um eine Zeit zur Benachrichtigung des Hosts über den Abschluss der Rücksetzung basierend auf anhängigen Aktivitäten in dem Front-End 115, die abgeschlossen werden müssen, und einer geschätzten Zeitsteuerung, die zum Rücksetzen und zur Neuinitialisieren erforderlich ist, zu bestimmen. Das Ergebnis dieser Bewertung kann von der NVMe-Vorrichtungssteuerung 105 verwendet werden, um zu bestimmen, wann dem Host 130 zu melden ist, dass die Rücksetzung abgeschlossen ist, während parallel die NVMe-Vorrichtung 100 mit der Neuinitialisierung beginnt und weiterhin Back-End-Rücksetzoperationen verarbeitet. In einer alternativen Ausführungsform wird keine Bewertung der Zeit für die Rücksetzungsbehandlung durchgeführt, und stattdessen wird ein Rücksetzungsabschlusssignal an den Host 130 bereitgestellt, wenn das Front-End 115 seine Rücksetzungsoperationen abgeschlossen hat, bevor Neuinitialisierungsoperationen eingeleitet werden, und in Ausführungsformen vor Abschluss von Rücksetzungsoperationen des Back-End 120.
  • Bei 215 führt das Front-End-115, dessen Rücksetzungsbehandlungsoperationen logisch von seinen Neuinitialisierungsoperationen und funktional von dem Back-End 120 isoliert wurden, Front-End-Rücksetzungsbehandlungsoperationen durch.
  • Bei 220 und parallel zu Schritt 215 führt das Back-End 120, funktionell isoliert vom Front-End 115, Back-End-Rücksetzungsbehandlungsoperationen aus.
  • Bei 225 wird bestimmt, ob das Front-End-115 Front-End-Rücksetzungsbehandlungsoperationen abgeschlossen hat oder nicht. Wenn nein, wird dem „nein“-Pfad gefolgt, um es dem Front-End 115 zu ermöglichen, Front-End-Rücksetzungsbehandlungsoperationen abzuschließen. Wenn die Front-End-Rücksetzungsbehandlungsoperationen abgeschlossen sind, fährt der Prozess mit 230 fort. In Ausführungsformen geschieht dies parallel zu der Ausführung von Back-End-Rücksetzungsbehandlungsoperationen durch das Back-End 120.
  • Bei 230 erfolgt basierend auf der Rücksetzungsbewertung eine Meldung an Host 130. Sobald die Zeit zur Benachrichtigung des Hosts über die Rücksetzung erreicht ist, sendet die NVMe-Vorrichtungssteuerung 105 ein Signal an den Host, das angibt, dass die Rücksetzung abgeschlossen ist. Dies erfolgt selbst dann, wenn Back-End-Rücksetzungsoperationen nicht abgeschlossen sind, und signalisiert den Start von Neuinitialisierungsoperationen am Front-End 115; diese Vorgänge werden parallel fortgesetzt.
  • In einer alternativen Ausführungsform, in der keine Zeit zur Benachrichtigung des Hosts über die Rücksetzung bestimmt wurde, sendet die NVMe-Vorrichtungssteuerung 105 ein Signal an den Host, dass die Rücksetzung abgeschlossen ist, sobald die Rücksetzungsoperationen am Front-End 115 abgeschlossen sind. Dies geschieht unabhängig davon, ob die Rücksetzungsoperationen am Back-End abgeschlossen sind oder nicht, und leitet Neuinitialisierungsoperationen ein.
  • Bei 235 initialisiert der Host 130 die NVMe-Vorrichtung 100 neu. Dies kann parallel zu Back-End-Rücksetzungsoperationen von Schritt 220 und Neuinitialisierungsoperationen, die bei 230 eingeleitet werden, erfolgen.
  • Bei 240 gibt der Host einen Türklingelschreibvorgang an eine E/A-Übermittlungswarteschlange aus, der angibt, dass ein E/A-Befehl anhängig ist.
  • Bei 245 bestimmt die NVMe-Steuerung 105, ob Back-End-Rücksetzungsoperationen von Schritt 220 abgeschlossen sind. Wenn nicht, werden die Backend-Rücksetzungsoperationen fortgesetzt, und es werden keine Befehle abgerufen. Wenn Back-End-Rücksetzungsoperationen und Neuinitialisierung abgeschlossen sind, fährt der Prozess mit Schritt 250 fort, in dem Befehle vom Host 130 abgerufen und verarbeitet werden können. In einer alternativen Ausführungsform können Befehle vom Host 130 abgerufen werden, bevor Back-End-Rücksetzungsoperationen abgeschlossen werden. In einer solchen Ausführungsform sendet das Front-End 115 keine Benachrichtigung an das Back-End 120, bevor alle Rücksetzungsoperationen, einschließlich Neuinitialisierung, abgeschlossen sind.
  • Bei 250 ruft die NVMe-Vorrichtung 100 Befehle vom Host 130 zur Ausführung ab.
  • 3 stellt ein beispielhaftes Hostsystem dar, in das offenbarte Ausführungsformen integriert werden können und in dem hierin beschriebene Verfahren in Bezug auf die 1 und 2 durchgeführt werden können.
  • Das Hostsystem 300 schließt eine Zentraleinheit (CPU) 302 ein, die mit dem Datenbus 304 verbunden ist. Die CPU 302 ist in der Lage, computerausführbare Anweisungen zu verarbeiten, wie sie zum Beispiel in dem Speicher 306 oder der Speicherung 308 gespeichert sein können, die das NVMe-Modul 350 einschließen können, um die hierin beschriebenen Verfahren durchzuführen, zum Beispiel in Bezug auf die 1 und 2. In Ausführungsformen kann das Hostsystem 300 ähnlich dem oben erwähnten Host 130 sein.
  • Geeignete Mittel für den Speicher 306 können ein einzelner physischer Speicher, mehrere Speicher sowie ein oder mehrere Speicher sein, die sich entfernt vom Hostsystem 300 befinden und auf die über ein Netzwerk zugegriffen wird. Auf ähnliche Weise können geeignete Mittel zur Speicherung 308 eine oder mehrere physische Speicherungsvorrichtungen sein, die verwendet werden können, und eine oder mehrere physische Speicherungsvorrichtungen können entfernt von dem Hostsystem 300 angeordnet sein und es kann über ein Netzwerk darauf zugegriffen werden. Eine solche physische Speicherungsvorrichtung, die die Speicherung 308 aufweist, ist in einigen Ausführungsformen das NVMe-Modul 350.
  • Geeignete Mittel für die CPU 302 in Ausführungsformen können eine einzelne CPU, mehrere CPUs, eine einzelne CPU mit mehreren Kernen, eine oder mehrere CPUs, die entfernt vom Hostsystem 300 angeordnet sind, eine oder mehrere virtualisierte CPUs oder andere Formen von Verarbeitungsarchitektur sein, die in der Lage sind, computerlesbare Anweisungen auszuführen.
  • Das Hostsystem 300 schließt weiterhin in Ausführungsformen eine oder mehrere Eingabe/Ausgabe-Vorrichtung(en) (E/A-Vorrichtungen) 310 und eine oder mehrere E/A-Vorrichtungsschnittstelle(n) 312 ein, die es dem Hostsystem 300 ermöglichen, E/A-Vorrichtungen 310 zu verbinden, wie beispielsweise Tastaturen, Anzeigen, Mausvorrichtungen, Stifte und andere Vorrichtungen, die eine Interaktion mit dem Hostsystem 300 ermöglichen. Es ist zu beachten, dass sich das Hostsystem 300 mit externen E/A-Vorrichtungen über physische und drahtlose Verbindungen verbinden kann.
  • Das Hostsystem 300 kann weiterhin eine Netzwerkschnittstelle 314 einschließen, um dem Hostsystem 300 Zugriff auf das externe Netzwerk 316 und gleichzeitig externe Rechenvorrichtungen, Komponenten und Dienste bereitzustellen.
  • Das Hostsystem 300 schließt weiterhin ein NVMe-Modul 350 ein, das in diesem Beispiel ein NVMe-Steuerungsmodul 355 und ein NAND-Modul 353, ein Rücksetzungsbehandlungsmodul 360, ein Rücksetzungsbehandlungsbewertungsmodul 363, ein Front-End-Modul 365, das funktionell und/oder logisch von einem Back-End-Modul 370 getrennt ist, zum Durchführen von Operationen, die in Verbindung mit den 1 und 2 beschrieben sind, einschließt.
  • 4 zeigt ein Zeitdiagramm 400 gemäß Ausführungsformen der Offenbarung.
  • Bei 410 wird eine Rücksetzung an die NVMe-Vorrichtung 100 ausgegeben. Die Rücksetzung 410 kann von einem Host 130 oder von der NVMe-Vorrichtung 100 selbst ausgegeben werden.
  • Bei 420 wird die Vorrichtungsrücksetzungsbehandlung durch den Rücksetzungsbehandler 110 eingeleitet, wodurch Rücksetzungsoperationen des Front-End 115, des Back-End 120 und die Neuinitialisierung logisch aufgeteilt werden. Bei 430 wird die Front-End-Rücksetzungsbehandlung eingeleitet, und sobald sie abgeschlossen ist, stellt der Rücksetzungsbehandler 110 dem Host 130 einen Problem-Rücksetzung-abgeschlossen bereit.
  • Bei 450 beginnt die NVMe-Vorrichtung 100 die Neuinitialisierung parallel zur Back-End-Rücksetzungsbehandlung 460.
  • Ein E/A-Befehlsabruf 470 vom Host kann zu einer beliebigen Zeit vor Abschluss von Back-End-Rücksetzungsbehandlung 460 und/oder Vorrichtungsneuinitialisierung 450 erfolgen. Befehle, die vor dem Abschluss einer dieser beiden abgerufen werden, bewirken, dass das Front-End 115 die Befehle hält, bis die Back-End-Rücksetzungsbehandlung 460 und die Vorrichtungsneuinitialisierung 450 abgeschlossen sind.
  • Die vorhergehende Beschreibung wird bereitgestellt, um es einem Fachmann zu ermöglichen, die verschiedenen hierin beschriebenen Ausführungsformen in der Praxis umzusetzen. Die hierin erörterten Beispiele schränken den Schutzumfang, die Anwendbarkeit oder Ausführungsformen, die in den Ansprüchen dargelegt sind, nicht ein. Verschiedene Modifikationen dieser Ausführungsformen werden dem Fachmann leicht ersichtlich sein, und die hierin definierten generischen Prinzipien können auf andere Ausführungsformen angewendet werden. Zum Beispiel können Änderungen an der Funktion und Anordnung von erörterten Elementen vorgenommen werden, ohne vom Schutzumfang der Offenbarung abzuweichen. Verschiedene Beispiele können verschiedene Prozeduren oder Komponenten weglassen, ersetzen oder hinzufügen, je nach Bedarf. Zum Beispiel können die beschriebenen Verfahren in einer anderen Reihenfolge als der beschriebenen durchgeführt werden, und verschiedene Schritte können hinzugefügt, weggelassen oder kombiniert werden. Außerdem können Merkmale, die in Bezug auf einige Beispiele beschrieben sind, in einigen anderen Beispielen kombiniert werden. Zum Beispiel kann eine Vorrichtung eingesetzt oder ein Verfahren anhand einer beliebigen Zahl der hierin dargelegten Gesichtspunkte ausgeübt werden. Außerdem soll der Schutzumfang der Offenbarung eine solche Vorrichtung oder ein solches Verfahren abdecken, die bzw. das unter Verwendung einer anderen Struktur, Funktionalität oder Struktur und Funktionalität zusätzlich zu oder außer den verschiedenen Gesichtspunkten der hierin dargelegten Offenbarung praktiziert wird. Es versteht sich, dass jeder Gesichtspunkt der hierin offenbarten Offenbarung durch ein oder mehrere Elemente eines Anspruchs verkörpert sein kann.
  • Wie hier verwendet, bezieht sich ein Ausdruck, der sich auf „mindestens eines von“ einer Liste von Elementen bezieht, auf jede Kombination dieser Elemente, einschließlich einzelner Elemente. Als ein Beispiel soll „mindestens eines von: a, b oder c“ a, b, c, a-b, a-c, b-c und a-b-c sowie jede Kombination mit Vielfachen desselben Elements (z. B., a-a, a-a-a, a-a-b, a-a-c, a-b-b, a-c-c, b-b, b-b-b, b-b-c, c-c und c-c-c oder jede andere Reihenfolge von a, b und c) abdecken.
  • Wie hierin verwendet, umfasst der Begriff „bestimmen“ eine Vielzahl von Handlungen. Zum Beispiel kann „bestimmen“ das Berechnen, Rechnen, Verarbeiten, Ableiten, Untersuchen, Nachschlagen (z. B. Nachschlagen in einer Tabelle, einer Datenbank oder einer anderen Datenstruktur), Ermitteln und ähnliches einschließen. „Bestimmen“ kann auch das Empfangen (z. B. das Empfangen von Informationen), den Zugriff (z. B. den Zugriff auf Daten in einem Speicher) und ähnliches einschließen. „Bestimmen“ kann auch das Lösen, Wählen, Auswählen, Festlegen und ähnliches einschließen.
  • Die hierin offenbarten Verfahren weisen einen oder mehrere Schritte oder eine oder mehrere Aktionen zum Erreichen der Verfahren auf. Die Verfahrensschritte und/oder Aktionen können miteinander vertauscht werden, ohne den Schutzumfang der Ansprüche zu verlassen. Mit anderen Worten, kann die Reihenfolge und/oder Verwendung von spezifischen Schritten und/oder Aktionen modifiziert werden, ohne vom Umfang der Ansprüche abzuweichen, es sei denn, es wird eine spezifische Reihenfolge von Schritten oder Aktionen spezifiziert. Ferner können die verschiedenen Vorgänge der vorstehend beschriebenen Verfahren durch jedes geeignete Mittel durchgeführt werden, das in der Lage ist, die entsprechenden Funktionen durchzuführen. Das Mittel kann verschiedene Hardware- und/oder Softwarekomponente(n) und/oder Modul(e) einschließen, einschließlich, aber nicht beschränkt auf eine Schaltung, eine anwendungsspezifische integrierte Schaltung (ASIC) oder einen Prozessor. Wenn es Operationen gibt, die in Figuren veranschaulicht sind, können diese Operationen im Allgemeinen entsprechende Gegenstück-Mittel-plus-Funktionskomponenten mit ähnlicher Nummerierung aufweisen.
  • Die verschiedenen veranschaulichenden Logikblöcke, Module und Schaltungen, die in Verbindung mit der vorliegenden Offenbarung beschrieben werden, können mit einem Allzweckprozessor, einem digitalen Signalprozessor (DSP), einer anwendungsspezifischen integrierten Schaltung (ASIC), einer feldprogrammierbaren Gatteranordnung (FPGA) oder einer anderen programmierbaren Logikvorrichtung (PLD), einer diskreten Gatter- oder Transistorlogik, diskreten Hardwarekomponenten oder einer beliebigen Kombination davon, die zur Ausführung der hierin beschriebenen Funktionen ausgelegt sind, implementiert oder durchgeführt werden. Ein Allzweckprozessor kann ein Mikroprozessor sein, jedoch kann der Prozessor alternativ jeder im Handel erhältliche Prozessor, Controller, Mikrocontroller oder eine Zustandsmaschine sein. Ein Prozessor kann auch als eine Kombination von Rechenvorrichtungen implementiert sein, z. B. eine Kombination aus einem DSP und einem Mikroprozessor, einer Vielzahl von Mikroprozessoren, einem oder mehreren Mikroprozessoren in Verbindung mit einem DSP-Kern oder einer beliebigen anderen solchen Konfiguration.
  • Ein Verarbeitungssystem kann mit einer Busarchitektur implementiert sein. Der Bus kann jede Anzahl von Verbindungsbussen und -brücken einschließen, je nach der spezifischen Anwendung des Verarbeitungssystems und den Gesamtdesignbeschränkungen. Der Bus kann unter anderem verschiedene Schaltungen miteinander verbinden, einschließlich eines Prozessors, maschinenlesbarer Medien und Eingabe-/Ausgabevorrichtungen. An den Bus kann auch eine Benutzerschnittstelle (z. B. Tastatur, Anzeige, Maus, Joystick usw.) angeschlossen sein. Der Bus kann auch verschiedene andere Schaltungen verbinden, wie Zeitgeberquellen, Peripheriegeräte, Spannungsregler, Leistungsverwaltungsschaltungen und andere Schaltungselemente, die im Stand der Technik gut bekannt sind und daher nicht weiter beschrieben werden. Der Prozessor kann mit einem oder mehreren Allzweck- und/oder Spezialprozessoren implementiert sein. Beispiele schließen Mikroprozessoren, Mikrocontroller, DSP-Prozessoren und andere Schaltungen ein, die Software ausführen können. Fachleute werden erkennen, wie die beschriebene Funktionalität für das Verarbeitungssystem in Abhängigkeit von der bestimmten Anwendung und den dem Gesamtsystem auferlegten Gesamtdesignbeschränkungen am besten zu implementieren ist.
  • Wenn sie in Software implementiert sind, können die Funktionen als eine oder mehrere Anweisungen oder Code auf einem computerlesbaren Medium gespeichert oder übertragen werden. Software ist allgemein so auszulegen, dass sie Anweisungen, Daten oder eine beliebige Kombination davon bedeutet, unabhängig davon, ob sie als Software, Firmware, Middleware, Mikrocode, Hardwarebeschreibungssprache oder anderweitig bezeichnet wird. Computerlesbare Medien schließen sowohl Computerspeicherungsmedien als auch Kommunikationsmedien ein, wie jedes Medium, das die Übertragung eines Computerprogramms von einem Ort zu einem anderen erleichtert. Der Prozessor kann für die Verwaltung des Busses und die allgemeine Verarbeitung verantwortlich sein, einschließlich der Ausführung von Softwaremodulen, die auf den computerlesbaren Speicherungsmedien gespeichert sind. Ein computerlesbares Speicherungsmedium kann mit einem Prozessor gekoppelt sein, sodass der Prozessor Informationen von dem Speicherungsmedium lesen und auf dieses schreiben kann. Alternativ dazu kann das Speicherungsmedium integraler Bestandteil des Prozessors sein. Beispielsweise können die computerlesbaren Medien eine Übertragungsleitung, eine durch Daten modulierte Trägerwelle und/oder ein computerlesbares Speicherungsmedium mit darauf gespeicherten Anweisungen getrennt von dem Funkknoten einschließen, auf die der Prozessor alle durch die Busschnittstelle zugreifen kann. Alternativ oder zusätzlich können die computerlesbaren Medien oder ein beliebiger Abschnitt davon in den Prozessor integriert sein, wie dies beispielsweise bei Cache-Dateien und/oder allgemeinen Registerdateien der Fall ist. Beispiele für maschinenlesbare Speicherungsmedien können beispielsweise RAM (Random Access Memory), Flash-Speicher, ROM (Read Only Memory), PROM (Programmable Read-Only Memory), EPROM (Erasable Programmable Read-Only Memory), EEPROM (Electrical Erasable Programmable Read-Only Memory), Register, Magnetplatten, optischen Platten, Festplatten oder jedes beliebige andere geeignete Speicherungsmedium oder eine beliebigen Kombination davon einschließen. Die maschinenlesbaren Medien können in einem Computerprogrammprodukt verkörpert sein.
  • Ein Softwaremodul kann eine einzelne Anweisung oder viele Anweisungen aufweisen und kann über mehrere verschiedene Codesegmente, unter verschiedenen Programmen und über mehrere Speicherungsmedien verteilt sein. Die computerlesbaren Medien können eine Anzahl von Softwaremodulen aufweisen. Die Softwaremodule schließen Anweisungen ein, die, wenn sie von einer Einrichtung wie einem Prozessor ausgeführt werden, bewirken, dass das Verarbeitungssystem verschiedene Funktionen ausführt. Die Softwaremodule können ein Sendemodul und ein Empfangsmodul einschließen. Jedes Softwaremodul kann sich in einer einzigen Speicherungsvorrichtung befinden oder über mehrere Speicherungsvorrichtungen verteilt sein. Beispielsweise kann bei Auftreten eines Auslöseereignisses ein Softwaremodul von einer Festplatte in den RAM geladen werden. Während der Ausführung des Softwaremoduls kann der Prozessor einige der Anweisungen in den Cache laden, um die Zugriffsgeschwindigkeit zu erhöhen. Eine oder mehrere Cache-Zeilen können dann in eine allgemeine Registerdatei zur Ausführung durch den Prozessor geladen werden. Wenn auf die Funktionalität eines Softwaremoduls Bezug genommen wird, versteht es sich, dass eine solche Funktionalität durch den Prozessor implementiert wird, wenn Anweisungen von diesem Softwaremodul ausgeführt werden.
  • Die folgenden Ansprüche sollen nicht auf die hierin gezeigten Ausführungsformen beschränkt sein, sondern es soll ihnen der volle Schutzumfang in Übereinstimmung mit der Formulierung der Ansprüche gewährt werden. Innerhalb eines Anspruchs soll eine Bezugnahme auf ein Element im Singular nicht „eins und nur eins“ bedeuten, sofern nicht speziell so angegeben, sondern „eins oder mehrere“. Sofern nicht spezifisch anders angegeben, bezieht sich der Ausdruck „einige“ auf ein(en) oder mehrere. Kein Anspruchselement ist gemäß den Bestimmungen von 35 U.S.C.§ 112(f) zu verstehen, sofern das Element nicht explizit unter Verwendung des Ausdrucks „Mittel für“ oder im Falle eines Verfahrensanspruchs des Ausdrucks „Schritt für“ erwähnt wird. Alle strukturellen und funktionalen Äquivalente zu den Elementen der verschiedenen Gesichtspunkte, die in dieser Offenbarung beschrieben sind, die Fachleuten bekannt sind oder später bekannt werden, werden hiermit ausdrücklich durch Bezugnahme aufgenommen und sollen in den Ansprüchen eingeschlossen sein. Darüber hinaus soll nichts hierin Offenbartes der Öffentlichkeit gewidmet sein, ungeachtet dessen, ob eine solche Offenbarung in den Ansprüchen ausdrücklich erwähnt wird.
  • Durch Befolgen der hierin offenbarten Systeme und Verfahren kann die Zeitsteuerung eines Rücksetzens einer NVMe-Vorrichtung vorhersagbarer werden, was ermöglicht, dass Operationen in einem Host auf effiziente Weise fortgesetzt werden.
  • In einer Ausführungsform wird eine Datenspeicherungsvorrichtung offenbart. In Ausführungsformen kann die Datenspeicherungsvorrichtung eine Steuerung einschließen, die Anweisungen aufweist, welche, wenn sie von einem Prozessor ausgeführt werden, die Steuerung veranlassen, ein Verfahren zum Rücksetzen der Datenspeicherungsvorrichtung durchzuführen. In Ausführungsformen weist das Verfahren das logische Trennen eines Satzes von Front-End-Rücksetzungsaufgaben von einem Satz von Back-End-Rücksetzungsaufgaben, das Empfangen eines Rücksetzungsbefehls von einem Hostsystem, das parallele Durchführen des Satzes von Front-End-Rücksetzungsaufgaben und des Satzes von Back-End-Rücksetzungsaufgaben nach Empfang des Rücksetzungsbefehls auf. Das Verfahren kann weiterhin das Übertragen eines Rücksetzungsabschlusssignals an das Hostsystem nach Abschluss des Satzes von Front-End-Rücksetzungsaufgaben und das Übertragen eines Speicherungsvorrichtungs-Bereitschaftssignals an das Hostsystem, das angibt, dass sich die Speicherungsvorrichtung in einem Zustand zum Empfangen eines Befehls von dem Hostsystem befindet, aufweisen. In Ausführungsformen kann das Verfahren weiterhin das Empfangen eines Befehls von dem Hostsystem und das Ausführen des Befehls, wenn der Satz von Back-End-Rücksetzungsaufgaben abgeschlossen ist, aufweisen.
  • In einer anderen Ausführungsform wird ein Datenspeicherungssystem offenbart. Das Datenspeicherungssystem schließt in Ausführungsformen eine Schnittstelle ein, die konfiguriert ist, um Rücksetzungsanweisungen von einem Host zu empfangen, ein Front-End-Modul, das konfiguriert ist, um Front-End-Rücksetzungsoperationen auszuführen, und ein Back-End-Modul, das konfiguriert ist, um Back-End-Rücksetzungsoperationen auszuführen. Dieses System kann weiterhin ein Rücksetzungsbehandlungsmodul aufweisen, das konfiguriert ist, um das Front-End-Modul logisch von dem Back-End-Modul zu trennen, wobei die Front-End-Rücksetzungsoperationen und Back-End-Rücksetzungsoperationen parallel ausgeführt werden, und das Rücksetzungsbehandlungsmodul ist konfiguriert, um mit dem Host nach Abschluss von Front-End-Operationen zu kommunizieren, dass Rücksetzungsoperationen abgeschlossen sind.
  • In einer anderen Ausführungsform wird ein Datenspeicherungssystem offenbart, das eine Steuerung aufweist, die einen Prozessor zum Ausführen von Computeranweisungen zum Rücksetzen des Datenspeicherungssystems einschließt. In Ausführungsformen kann die Steuerung ein Front-End-Modul, das konfiguriert ist, um Front-End-Rücksetzungsoperationen auszuführen, ein Back-End-Modul, das konfiguriert ist, um Back-End-Rücksetzungsoperationen auszuführen, und ein Mittel zum logischen Trennen der Front-End-Rücksetzungsoperationen von den Back-End-Rücksetzungsoperationen einschließen, sodass die Front-End-Rücksetzungsoperationen und Back-End-Rücksetzungsoperationen parallel ausgeführt werden.
  • Während sich das Vorstehende auf Ausführungsformen der vorliegenden Offenbarung bezieht, können andere und weitere Ausführungsformen der Offenbarung ausgearbeitet werden, ohne vom grundlegenden Schutzumfang davon abzuweichen, und der Schutzumfang wird durch die nachstehenden Ansprüche bestimmt.
  • 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 16600816 [0001]

Claims (20)

  1. Datenspeicherungsvorrichtung, aufweisend: eine Steuerung, aufweisend Anweisungen, die, wenn sie von einem Prozessor ausgeführt werden, die Steuerung veranlassen, ein Verfahren zum Rücksetzen der Datenspeicherungsvorrichtung durchzuführen, das Verfahren aufweisend: logisches Trennen eines Satzes von Front-End-Rücksetzungsaufgaben von einem Satz von Back-End-Rücksetzungsaufgaben; Empfangen eines Rücksetzungsbefehls von einem Hostsystem; Durchführen des Satzes von Front-End-Rücksetzungsaufgaben und des Satzes von Back-End-Rücksetzungsaufgaben parallel nach Empfang des Rücksetzungsbefehls; Übertragen eines Rücksetzungsabschlusssignals an das Hostsystem nach Abschluss des Satzes von Front-End-Rücksetzungsaufgaben; Übertragen eines Speicherungsvorrichtungs-Bereitschaftssignals an das Hostsystem, das angibt, dass sich die Speicherungsvorrichtung in einem Zustand zum Empfangen eines Befehls von dem Hostsystem befindet; Empfangen eines Befehls von dem Hostsystem; und Ausführen des Befehls, wenn der Satz von Back-End-Rücksetzungsaufgaben abgeschlossen ist.
  2. Datenspeicherungsvorrichtung nach Anspruch 1, wobei der Satz von Back-End-Rücksetzungsaufgaben nicht abgeschlossen ist, wenn das Rücksetzungsabschlusssignal übertragen wird.
  3. Datenspeicherungsvorrichtung nach Anspruch 1, weiterhin aufweisend eine Neuinitialisierung der Speicherungsvorrichtung durch das Hostsystem nach dem Übertragen des Rücksetzungssignals an das Hostsystem.
  4. Datenspeicherungsvorrichtung nach Anspruch 1, wobei das Speicherungsvorrichtungs-Bereitschaftssignal nach einer Verzögerungszeit übertragen wird.
  5. Datenspeicherungsvorrichtung nach Anspruch 4, wobei die Verzögerungszeit das Schätzen, mit einem Prozessor, einer Zeit zum Abschließen eines von den Front-End-Aufgaben und den Back-End-Aufgaben aufweist.
  6. Datenspeicherungsvorrichtung nach Anspruch 5, wobei die Verzögerungszeit das Schätzen, mit einem Prozessor, einer Zeit zum Abschließen sowohl der Front-End-Aufgaben als auch der Back-End-Aufgaben aufweist.
  7. Datenspeicherungsvorrichtung nach Anspruch 1, wobei der Satz von Front-End-Aufgaben eines von Rücksetzen eines Registers und Rücksetzen einer Warteschlange aufweist und der Satz von Back-End-Aufgaben das Schreiben in eines von einem NAND und einem Speicher aufweist.
  8. Datenspeicherungssystem, aufweisend: eine Schnittstelle, die konfiguriert ist, um Rücksetzungsanweisungen von einem Host zu empfangen; ein Front-End-Modul, das konfiguriert ist, um Front-End-Rücksetzungsoperationen auszuführen; ein Back-End-Modul, das konfiguriert ist, um Back-End-Rücksetzungsoperationen auszuführen; und ein Rücksetzungsbehandlungsmodul, das konfiguriert ist, um das Front-End-Modul logisch von dem Back-End-Modul zu trennen, wobei die Front-End-Rücksetzungsoperationen und Back-End-Rücksetzungsoperationen parallel ausgeführt werden, wobei das Rücksetzungsbehandlungsmodul konfiguriert ist, um mit dem Host nach Abschluss von Front-End-Rücksetzungsoperationen zu kommunizieren, dass Rücksetzungsoperationen abgeschlossen sind.
  9. Datenspeicherungssystem nach Anspruch 8, weiterhin aufweisend ein Rücksetzungshandhabungsbewertungsmodul, das konfiguriert ist, um eine Zeit zur Benachrichtigung des Hosts über den Abschluss der Rücksetzung zu bestimmen.
  10. Datenspeicherungssystem nach Anspruch 9, wobei die Zeit zur Benachrichtigung über den Abschluss der Rücksetzung als kürzer bestimmt wird als die Zeit, die erforderlich ist, um Back-End-Rücksetzungsoperationen auszuführen.
  11. Datenspeicherungssystem nach Anspruch 9, wobei die Zeit zur Benachrichtigung über den Abschluss der Rücksetzung kürzer ist als die Zeit, die erforderlich ist, um Back-End-Rücksetzungsoperationen und Front-End-Rücksetzungsoperationen auszuführen.
  12. Datenspeicherungssystem nach Anspruch 9, wobei das Rücksetzungsbehandlungsbewertungsmodul konfiguriert ist, um die Zeit zur Benachrichtigung über den Abschluss der Rücksetzung basierend zumindest teilweise auf dem Abschluss eines von den Front-End-Rücksetzungsoperationen und Back-End-Rücksetzungsoperationen zu bestimmen.
  13. Datenspeicherungssystem nach Anspruch 9, wobei das Rücksetzungsbehandlungsbewertungsmodul konfiguriert ist, um die Zeit zur Benachrichtigung über den Abschluss der Rücksetzung basierend zumindest teilweise auf dem Abschluss sowohl der Front-End-Rücksetzungsoperationen als auch der Back-End-Rücksetzungsoperationen zu bestimmen.
  14. Datenspeicherungssystem nach Anspruch 11, wobei mindestens eine der Front-End-Rücksetzungsoperationen verwendet wird, um die Zeit zur Benachrichtigung über den Abschluss der Rücksetzung als anhängige Aktivitäten in dem Datenspeicherungssystem zu der Zeit zu bestimmen, zu dem die Rücksetzungsanweisungen von dem Host empfangen werden.
  15. Datenspeicherungssystem nach Anspruch 8, wobei das Rücksetzungsbehandlungsmodul vor dem Abschluss von Back-End-Rücksetzungsoperationen mit dem Host kommuniziert, dass Rücksetzungsoperationen abgeschlossen sind.
  16. Datenspeicherungssystem nach Anspruch 15, wobei das Datenspeicherungssystem konfiguriert ist, um einen Türklingelzugriff auf den Host vor dem Abschluss von Back-End-Rücksetzungsoperationen bereitzustellen.
  17. Datenspeicherungssystem nach Anspruch 16, wobei das Datenspeicherungssystem so konfiguriert ist, dass es keine Befehle von dem Host abruft, bis Back-End-Rücksetzungsoperationen abgeschlossen sind.
  18. Datenspeicherungssystem, aufweisend: eine Steuerung, die einen Prozessor zum Ausführen von Computeranweisungen zum Rücksetzen des Datenspeicherungssystems aufweist: ein Front-End-Modul, das konfiguriert ist, um Front-End-Rücksetzungsoperationen auszuführen; ein Back-End-Modul, das konfiguriert ist, um Back-End-Rücksetzungsoperationen auszuführen; und ein Mittel zum logischen Trennen der Front-End-Rücksetzungsoperationen von den Back-End-Rücksetzungsoperationen, wobei die Front-End-Rücksetzungsoperationen und Back-End-Rücksetzungsoperationen parallel ausgeführt werden.
  19. Datenspeicherungssystem nach Anspruch 18, weiterhin aufweisend ein Mittel zum Benachrichtigen eines Hosts, dass mindestens eines von den Front-End-Rücksetzungsoperationen und Back-End-Rücksetzungsoperationen abgeschlossen ist.
  20. Datenspeicherungssystem nach Anspruch 19, das so konfiguriert ist, dass eines von den Front-End-Rücksetzungsoperationen und Back-End-Rücksetzungoperationen nach dem Benachrichtigen des Hosts nicht abgeschlossen ist.
DE112020000167.9T 2019-10-14 2020-03-18 Verschachtelte host-rücksetzungs- und nächste neuinitialisierungsoperationen Pending DE112020000167T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/600,816 US10860333B1 (en) 2019-10-14 2019-10-14 Interleaved host reset and next re-initialization operations
US16/600,816 2019-10-14
PCT/US2020/023406 WO2021076179A1 (en) 2019-10-14 2020-03-18 Interleaved host reset and next re-initialization operations

Publications (1)

Publication Number Publication Date
DE112020000167T5 true DE112020000167T5 (de) 2021-09-16

Family

ID=73653571

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020000167.9T Pending DE112020000167T5 (de) 2019-10-14 2020-03-18 Verschachtelte host-rücksetzungs- und nächste neuinitialisierungsoperationen

Country Status (5)

Country Link
US (2) US10860333B1 (de)
KR (1) KR20210088707A (de)
CN (1) CN113196224A (de)
DE (1) DE112020000167T5 (de)
WO (1) WO2021076179A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11561909B2 (en) * 2021-04-28 2023-01-24 Western Digital Technologies, Inc. Bandwidth allocation for storage system commands in peer-to-peer environment
US11640335B2 (en) * 2021-06-15 2023-05-02 Western Digital Technologies, Inc. Multiple function level reset management
US11977755B2 (en) * 2021-09-02 2024-05-07 Micron Technology, Inc. Firmware power up sequencing in memory sub-systems

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495606A (en) * 1993-11-04 1996-02-27 International Business Machines Corporation System for parallel processing of complex read-only database queries using master and slave central processor complexes
US6256695B1 (en) * 1999-03-15 2001-07-03 Western Digital Corporation Disk drive method of determining SCSI bus state information after a SCSI bus reset condition
DE60202857T2 (de) * 2001-03-14 2006-02-09 International Business Machines Corp. Verfahren und prozessorsystem zur audiosignalverarbeitung
US7313681B2 (en) * 2003-11-20 2007-12-25 International Business Machines Corporation Apparatus, system, and method for adapter fastload
DE112004002928T5 (de) 2004-07-29 2007-08-09 Spansion LLC, Santa Clara Verfahren zum Steuern der Initialisierung eines nicht-flüchtigen Speicherbauelements und nicht-flüchtiges Speicherbauelement
US20100271378A1 (en) * 2009-04-24 2010-10-28 Yun Shon Low Rapid Activation Of A Device Having An Electrophoretic Display
US8307151B1 (en) 2009-11-30 2012-11-06 Micron Technology, Inc. Multi-partitioning feature on e-MMC
US10360143B2 (en) * 2010-07-01 2019-07-23 Qualcomm Incorporated Parallel use of integrated non-volatile memory and main volatile memory within a mobile device
US8856482B2 (en) 2011-03-11 2014-10-07 Micron Technology, Inc. Systems, devices, memory controllers, and methods for memory initialization
US8719646B2 (en) 2012-04-30 2014-05-06 Freescale Semiconductor, Inc. Non-volatile memory (NVM) reset sequence with built-in read check
US20140223213A1 (en) 2013-02-05 2014-08-07 Kabushiki Kaisha Toshiba Memory system
CN104751889B (zh) 2013-12-26 2018-05-15 北京兆易创新科技股份有限公司 一种非易失性存储器的复位方法
KR102415385B1 (ko) 2015-07-22 2022-07-01 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 저장 장치
US20170168747A1 (en) 2015-12-11 2017-06-15 Intel Corporation Intelligent memory support for platform reset operation
US9990023B2 (en) 2016-03-28 2018-06-05 Apple Inc. Systems and methods for handling sudden power failures in solid state drives
CN108021471A (zh) * 2016-11-04 2018-05-11 三星电子株式会社 数据存储装置、数据处理系统及制造数据存储装置的方法
US11243782B2 (en) * 2016-12-14 2022-02-08 Microsoft Technology Licensing, Llc Kernel soft reset using non-volatile RAM
US10909051B2 (en) 2017-06-01 2021-02-02 Seagate Technology Llc NAND flash reset control
US10929309B2 (en) 2017-12-19 2021-02-23 Western Digital Technologies, Inc. Direct host access to storage device memory space
US10613778B2 (en) * 2018-03-21 2020-04-07 Western Digital Technologies, Inc. Dynamic host memory allocation to a memory controller

Also Published As

Publication number Publication date
US10860333B1 (en) 2020-12-08
US20210109765A1 (en) 2021-04-15
US11422828B2 (en) 2022-08-23
CN113196224A (zh) 2021-07-30
KR20210088707A (ko) 2021-07-14
WO2021076179A1 (en) 2021-04-22

Similar Documents

Publication Publication Date Title
DE112020000167T5 (de) Verschachtelte host-rücksetzungs- und nächste neuinitialisierungsoperationen
DE112005001512B4 (de) Vorrichtung und Verfahren für den Hochleistungs- Zugriff auf einen flüchtigen Plattenlaufwerkspeicher unter Einsatz einer integrierten Direkt-Speicherzugriffs-Einrichtung
DE102013110085B4 (de) Nicht-flüchtige speichervorrichtung
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE102008058209A1 (de) Anordnung und Verfahren um zu verhindern, dass ein Anwenderbetriebssystem in einem VMM System eine Anordnung abschaltet, die von einem Servicebetriebssystem verwendet wird
DE112013000465B4 (de) Verwaltung einer fernen Datenreplikation
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE102018209205A1 (de) Datenspeicher mit intelligentem Speicher oder Ladeverfahren und -vorrichtung
DE112013002054T5 (de) Neu konfigurierbare Wiederherstellungsmodi in Hochverfügbarkeitsprozessoren
DE102006009617A1 (de) Systeme und Verfahren zum Steuern von mehreren Hot Plug Vorgängen
DE102015217933B4 (de) Vorrichtung zum Verarbeiten von Daten und Verfahren zum Betreiben einer solchen Vorrichtung
DE102012201154A1 (de) Transaktionsspeicher
DE102011085989A1 (de) Verfahren und Vorrichtung zum Ausführen von parallelen Speicherlese- und Speicherschreiboperationen
DE112011103194T5 (de) Koordinieren von Gerät- und Anwendungsunterbrechungsereignissen zum Plattformenergiesparen
DE102011075814A1 (de) Speicherpuffer mit zugänglicher Information nach einem Schreibfehler
DE102016119991B4 (de) Emulation von Taktjittern
DE102013021107B4 (de) Steuerung einer input/output schnittstelle
DE112020003004T5 (de) Dma-scatter- und gather-operationen für nicht zusammenhängenden speicher
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE102015112598A1 (de) Halbleitervorrichtung, Halbleitersystem und Ein-Chip-System
DE102017124078A1 (de) Ordinale modifikation der dienstgüte
DE102011017634B4 (de) Signalleitung zum Anzeigen eines Schreibfehlers in einem Speicher
DE102010050432A1 (de) Verfahren, um eine Halbleiterlaufwerk-Leistung unter Verwendung eines programmierbaren Bus-Arbiters zu verbessern
DE112019000460T5 (de) Adapter für direkten speicherzugriff
DE102018105848A1 (de) CPU-Fehlerkorrektur während Erasure-Code-Codierung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE

R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE