DE102020116192A1 - Nand-detektion und -wiederherstellung eines verworfenen befehls - Google Patents

Nand-detektion und -wiederherstellung eines verworfenen befehls Download PDF

Info

Publication number
DE102020116192A1
DE102020116192A1 DE102020116192.1A DE102020116192A DE102020116192A1 DE 102020116192 A1 DE102020116192 A1 DE 102020116192A1 DE 102020116192 A DE102020116192 A DE 102020116192A DE 102020116192 A1 DE102020116192 A1 DE 102020116192A1
Authority
DE
Germany
Prior art keywords
status
die
controller
command
data
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
DE102020116192.1A
Other languages
English (en)
Inventor
Robert Ellis
Kevin O´ Toole
Jacob Schmier
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 DE102020116192A1 publication Critical patent/DE102020116192A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Read Only Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Gesichtspunkte einer Speichervorrichtung, die einen Speicher und eine Steuerung einschließt, werden bereitgestellt, die eine Detektion verworfener Befehle basierend auf einem Die-Status (Bereit-/Belegt-Status) eines Befehls, der von einer Host-Vorrichtung empfangen wird, ermöglichen. Der Speicher kann Dies einschließen, die durch Chip-Enables (CE) gesteuert werden. Nach dem Auswählen eines Dies unter Verwendung von CE wartet die Steuerung zwischen einer minimalen und einer maximalen Zeit nach dem Empfangen des Befehls, um den Die-Status abzufragen, wobei die minimale Zeit die Zeit ist, bis zu der erwartet wird, dass der Befehl die Ausführung beginnt, und die maximale Zeit die kürzeste Zeit ist, bis zu der erwartet wird, dass der Befehl die Ausführung beendet. Die Steuerung fragt den Die-Status nach dem Warten des Zeitraums ab. Wenn der Die-Status bereit ist, während er hätte belegt sein sollen, detektiert die Steuerung, dass der Befehl, der den Daten zugeordnet ist, verworfen wird, und fordert von der Host-Vorrichtung an, den Befehl erneut auszugeben.

Description

  • HINTERGRUND
  • Gebiet
  • Diese Offenbarung bezieht sich im Allgemeinen auf elektronische Vorrichtungen und insbesondere auf Speichervorrichtungen.
  • Hintergrund
  • Speichervorrichtungen ermöglichen es Benutzern, Daten zu speichern und abzurufen. Beispiele von Speichervorrichtungen schließen Vorrichtungen für nicht-flüchtigen Speicher ein. Ein nicht-flüchtiger Speicher behält Daten im Allgemeinen nach einem Leistungszyklus bei. Ein Beispiel eines nicht-flüchtigen Speichers ist ein Flash-Speicher, der (eine) Anordnung(en) von NAND-Zellen auf einem oder mehreren Dies einschließen kann. Flash-Speicher kann in Festkörpervorrichtungen (Solid-State Devices, SSDs), Secure Digital-Karten (SD-Karten) und dergleichen zu finden sein.
  • Eine Flash-Speichervorrichtung kann Steuerinformationen speichern, die Daten zugeordnet sind. Zum Beispiel kann eine Flash-Speichervorrichtung Steuertabellen unterhalten, die eine Abbildung von logischen Adressen auf physische Adressen einschließen. Diese Steuertabellen werden verwendet, um den physischen Ort von logischen Sektoren oder Blöcken in dem Flash-Speicher zu verfolgen. Die Steuertabellen sind in dem nicht-flüchtigen Speicher gespeichert, um einen Zugriff auf die gespeicherten Daten nach einem Leistungszyklus zu ermöglichen.
  • Die Flash-Speichervorrichtung kann mit mehreren Dies gehäust sein, die einen einzelnen Bus teilen. Jedes Die kann einen Chip Enable-Stift (CE-Stift) (oder Chip Select-Stift (CS-Stift)) einschließen, der es einer Steuerung der Flash-Speichervorrichtung ermöglicht, ein Signal zu senden, um eines der Dies zum Ausführen von Befehlen von einer Host-Vorrichtung freizugeben (oder auszuwählen). Wenn zum Beispiel der Flash-Speicher einen Lesebefehl zum Lesen von Daten von einem Die empfängt, kann die Steuerung CE verwenden, um das Die auszuwählen (z. B. das Die zu aktivieren oder zu reaktivieren), bevor die Daten von dem Die gelesen werden. Die Steuerung kann zwischen Dies auswählen, indem sie an diese Dies gerichtete CEs entsprechend sendet.
  • Wenn jedoch die Flash-Speichervorrichtung CE-Signale sendet, um zwischen verschiedenen Dies auszuwählen oder solche zu aktivieren, kann das Die nicht korrekt auf das CE-Signal reagieren. Wenn zum Beispiel ein Fehler in der NAND-Schaltunglogik, wie ein Metall-zu-Metall-Kurzschluss vorliegt, kann das Die später als erwartet aktiviert werden. Wenn die Steuerung anschließend versucht, Daten von dem Die zu lesen, zu schreiben oder zu löschen, bevor das Die erfolgreich aktiviert ist, kann das Die den Befehl nicht verarbeiten. Dadurch kann der Befehl im Hintergrund verworfen werden.
  • KURZDARSTELLUNG
  • Ein Gesichtspunkt einer Speichervorrichtung wird hierin offenbart. Die Speichervorrichtung schließt einen Speicher ein, der eingerichtet ist, um Daten und einen Die-Status für einen Befehl zu speichern, der den Daten zugeordnet ist. Der Die-Status schließt eines von einem Bereit-Status oder einem Belegt-Status ein. Die Speichervorrichtung schließt außerdem eine Steuerung ein, die eingerichtet ist, um von einer Host-Vorrichtung den Befehl, der den Daten zugeordnet ist, zu empfangen. Die Steuerung ist weiterhin eingerichtet, um einen Zeitraum tDCDmin <= t < tDCDmax nach dem Empfangen des Befehls zum Abfragen des Die-Status zu warten, wobei fDCDmin eine minimale Zeit ist, bis zu der erwartet wird, dass der Befehl die Ausführung beginnt, und tDCDmax eine minimale Zeit ist, bis zu der erwartet wird, dass der Befehl die Ausführung beendet. Die Steuerung ist weiterhin eingerichtet, um den Die-Status nach dem Warten des Zeitraums abzufragen und um zu detektieren, ob der Befehl, der den Daten zugeordnet ist, basierend auf dem Die-Status verworfen wird.
  • Ein weiterer Gesichtspunkt einer Speichervorrichtung wird hierin offenbart. Die Speichervorrichtung schließt einen Speicher ein, der eingerichtet ist, um Daten und einen Die-Status für einen Befehl zu speichern, der den Daten zugeordnet ist. Der Speicher schließt eine Vielzahl von Speicherorten ein, die durch ein oder mehrere CE-Signale gesteuert werden. Die Speichervorrichtung schließt außerdem eine Steuerung ein, die eingerichtet ist, um von einer Host-Vorrichtung den Befehl, der den Daten zugeordnet ist, für einen Speicherort der Vielzahl von Speicherorten zu empfangen und um den Speicherort unter Verwendung des einen oder der mehreren CE-Signale auszuwählen. Die Steuerung ist weiterhin eingerichtet, um einen Zeitraum tDCDmin <= t < tDCDmax nach dem Empfangen des Befehls zum Abfragen des Die-Status zu warten, wobei tDCDmin eine minimale Zeit ist, bis zu der erwartet wird, dass der Befehl die Ausführung beginnt, und tDCDmax eine minimale Zeit ist, bis zu der erwartet wird, dass der Befehl die Ausführung beendet. Die Steuerung ist weiterhin eingerichtet, um den Die-Status nach dem Warten des Zeitraums abzufragen und um zu detektieren, ob der Befehl, der den Daten zugeordnet ist, basierend auf dem Die-Status verworfen wird. Der Die-Status schließt eines von einem Bereit-Status oder einem Belegt-Status ein.
  • Ein weiterer Gesichtspunkt einer Speichervorrichtung wird hierin offenbart. Die Speichervorrichtung schließt Speicher ein, der eingerichtet ist, um Daten und einen Die-Status für einen Befehl zu speichern, der den Daten zugeordnet ist. Der Die-Status schließt eines von einem Bereit-Status oder einem Belegt-Status ein. Die Speichervorrichtung schließt außerdem eine Steuerung ein, die eingerichtet ist, um von einer Host-Vorrichtung den Befehl, der den Daten zugeordnet ist, zu empfangen. Die Steuerung ist weiterhin eingerichtet, um einen Zeitraum fDCDmin <= t < tDCDmax nach dem Empfangen des Befehls zum Abfragen des Die-Status zu warten, wobei fDCDmin eine minimale Zeit ist, bis zu der erwartet wird, dass der Befehl die Ausführung beginnt, und tDCDmax eine minimale Zeit ist, bis zu der erwartet wird, dass der Befehl die Ausführung beendet. Die Steuerung ist weiterhin eingerichtet, um den Die-Status nach dem Warten des Zeitraums abzufragen und um zu detektieren, dass der Befehl, der den Daten zugeordnet ist, verworfen wird, und um von der Host-Vorrichtung anzufordern, den Befehl erneut auszugeben, wenn der Die-Status der Bereit-Status ist.
  • Es versteht sich, dass andere Gesichtspunkte der Speichervorrichtung für den Fachmann aus der folgenden detaillierten Beschreibung leicht ersichtlich werden, wobei verschiedene Gesichtspunkte von Einrichtungen und Verfahren zur Veranschaulichung gezeigt und beschrieben werden. Wie zu erkennen ist, können diese Gesichtspunkte in anderen und unterschiedlichen Formen implementiert werden und sind ihre verschiedenen Details in verschiedenen anderen Hinsichten zu einer Modifikation fähig. Dementsprechend sind die Zeichnungen und die detaillierte Beschreibung als veranschaulichend und nicht als einschränkend zu betrachten.
  • Figurenliste
  • Verschiedene Gesichtspunkte der vorliegenden Erfindung werden nun in der detaillierten Beschreibung als Beispiel und nicht als Einschränkung unter Bezugnahme auf die beigefügten Zeichnungen dargestellt, wobei gilt:
    • 1 ist ein Blockdiagramm, das eine beispielhafte Ausführungsform einer Speichervorrichtung in Kommunikation mit einer Host-Vorrichtung veranschaulicht.
    • 2 ist ein Konzeptdiagramm, das ein Beispiel einer logisch-zu-physisch-Abbildungstabelle in einem nicht-flüchtigen Speicher der Speichervorrichtung von 1 veranschaulicht.
    • 3 ist ein Konzeptdiagramm, das ein Beispiel einer Steuerung in Kommunikation mit mehreren Dies in der Speichervorrichtung von 1 veranschaulicht.
    • 4 ist ein Konzeptdiagramm, das ein Beispiel einer Befehlszeitsteuerungssequenz, einschließlich der Detektion eines verworfenen Befehls durch die Speichervorrichtung von 1, veranschaulicht.
    • 5 ist ein konzeptionelles Zeitsteuerungsdiagramm, das ein Beispiel einer Signalkommunikation zwischen der Steuerung und Dies in der Speichervorrichtung von 1 veranschaulicht.
    • 6 ist ein Flussdiagramm, das ein Verfahren zum Durchführen einer Detektion eines verworfenen Befehls durch die Speichervorrichtung von 1 veranschaulicht.
    • 7 ist ein Flussdiagramm, das ein beispielhaftes Verfahren zum Detektieren eines verworfenen Befehls durch die Speichervorrichtung von 1 veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • Die nachstehend dargelegte detaillierte Beschreibung in Verbindung mit den beigefügten Zeichnungen ist als eine Beschreibung verschiedener beispielhafter Ausführungsformen der vorliegenden Offenbarung gedacht und soll nicht die einzigen Ausführungsformen darstellen, in denen die vorliegende Erfindung praktisch umgesetzt werden kann. Die detaillierte Beschreibung schließt spezifische Details ein, um ein gründliches Verständnis der vorliegenden Erfindung bereitzustellen. Jedoch ist es für einen Fachmann ersichtlich, dass die vorliegende Erfindung ohne diese spezifischen Details praktisch umgesetzt werden kann. In einigen Fällen sind hinlänglich bekannte Strukturen und Komponenten in Blockdiagrammform gezeigt, um zu vermeiden, dass die Konzepte der vorliegenden Erfindung unklar werden. Akronyme und andere beschreibende Terminologie können lediglich der Einfachheit und Klarheit halber verwendet werden und sollen den Schutzumfang der Erfindung nicht einschränken.
  • Die Wörter „beispielhaft“ und „Beispiel“ werden hierin in der Bedeutung von „als ein Beispiel oder Fall oder zur Veranschaulichung dienend“ verwendet. Jede hierin als „beispielhaft“ beschriebene beispielhafte Ausführungsform ist nicht zwangsläufig als bevorzugt oder vorteilhaft gegenüber anderen beispielhaften Ausführungsformen auszulegen. Gleichermaßen erfordert der Begriff „beispielhafte Ausführungsform“ einer Vorrichtung, eines Verfahrens oder eines Herstellungsartikels nicht, dass alle beispielhaften Ausführungsformen der Erfindung die beschriebene(n) Komponenten, Struktur, Merkmale, Funktionalität, Prozesse, Vorteile, Nutzen oder Betriebsmodi einschließen.
  • In der folgenden detaillierten Beschreibung werden verschiedene Gesichtspunkte einer Speichervorrichtung in Kommunikation mit einer Host-Vorrichtung dargestellt. Diese Gesichtspunkte sind für Flash-Speichervorrichtungen, wie SSDs und SD-Karten, gut geeignet. Jedoch wird der Fachmann erkennen, dass diese Gesichtspunkte auf alle Typen von Speichervorrichtungen, die zum Speichern von Daten in der Lage sind, ausgedehnt werden können. Entsprechend soll jede Bezugnahme auf eine bestimmte Einrichtung oder ein bestimmtes Verfahren nur die verschiedenen Gesichtspunkte der vorliegenden Erfindung veranschaulichen, wobei davon ausgegangen wird, dass diese Gesichtspunkte einen weiten Bereich von Anwendungen aufweisen können, ohne vom Schutzumfang und Geist der vorliegenden Offenbarung abzuweichen.
  • Wenn eine Steuerung einer Speichervorrichtung versucht, zwischen CEs von verschiedenen Dies auszuwählen, kann das ausgewählte Die nicht innerhalb akzeptabler Zeitsteuerungsparameter aktiviert werden. Wenn dadurch die Steuerung anschließend ein oder mehrere Befehlsbytes an das ausgewählte Die sendet, um zu versuchen, Daten in NAND zu lesen, zu schreiben oder zu löschen, kann das Die die Befehlsbytes möglicherweise nicht korrekt verarbeiten, was zu einem jeweiligen Verwerfen des Lese-, Schreib- oder Löschbefehls führt. Da Lesebefehle von den vorher erwähnten Befehlen üblicherweise am häufigsten gesendet werden, werden diese Befehle unter solchen Umständen tendenziell am häufigsten verworfen.
  • Das Verwerfen von Befehlen aufgrund von Problemen in der CE-zu-CE-Auswahl kann der Steuerung der Speichervorrichtung unbekannt sein. Wenn die Steuerung zum Beispiel versucht, einen Lesebefehl in dem NAND in einem unbeabsichtigt deaktivierten Die auszuführen, können die Daten nicht von dem NAND in Latche erfasst werden. Dadurch können vorhergehende Daten (z. B. von einem vorhergehenden Lesebefehl) unwissentlich von den Latchen an die Steuerung übertragen werden, was durch die Speichervorrichtung nicht detektierbar sein kann, weil z. B. eine Fehlerkorrekturcodedecodierung (ECC-Decodierung) weiterhin erfolgreich sein kann. Wenngleich die Steuerung normalerweise periodische Statusbefehle sendet, um einen Bereit-/Belegt-Status des Dies zu identifizieren, was angibt, ob das Die aktuell einen Befehl ausführt (z. B. das Die belegt ist) oder das Ausführen eines Befehls beendet hat (z. B. das Die bereit ist), werden solche Statusbefehle nach der maximal erwarteten Zeit zum Ausführen von Host-Befehlen gesendet. Dadurch, selbst wenn die Steuerung ausgehend von dem Bereit-/Belegt-Status bestimmt, dass das Die bereit ist, ist nicht bekannt, ob das Die bereit ist, weil es den letzten Befehl korrekt ausgeführt hat oder weil es die gesamte Zeit seit dem vorhergehenden Befehl bereit blieb und nie belegt war.
  • Ein Ansatz, um das vorher erwähnte Problem aus einer verzögerten CE-zu-CE-Auswahl zu behandeln, besteht darin, die Zeitverzögerung (tCS) zwischen einer Aktivsetzung des CE-Signals und einem Präsentieren des Befehls auf dem Bus an den NAND zu erhöhen. Wenngleich ein solcher Ansatz die Wahrscheinlichkeit von verworfenen Befehlen reduzieren kann, indem zusätzliche Zeit zur Berücksichtigung einer späten CE-Aktivierung hinzugefügt wird, gewährleistet dieser Ansatz nicht, dass verworfene Befehle aufgetreten sind. Zum Beispiel kann die Steuerung der Speichervorrichtung auf eine maximale tCS beschränkt sein, und wenn eine späte Aktivierung des Dies von CE nach der maximalen tCS auftritt, können weiterhin verworfene Befehle resultieren. Darüber hinaus ist das Erhöhen von tCS eine globale Änderung, die die Speichervorrichtungsleistung erheblich reduzieren kann, weil sich die Verzögerung auf die Ausführungszeitsteuerung aller Dies auswirken kann, die den gleichen Bus mit der Steuerung für alle Typen von Befehlen teilen (z. B. einschließlich Dies, bei denen möglicherweise keine Probleme bei der CE-zu-CE-Auswahl bestehen).
  • Daher stellt, um das Verwerfen von Befehlen aufgrund von Problemen bei der CE-zu-CE-Auswahl ohne eine Leistungsreduzierung zu detektieren, die vorliegende Offenbarung einen Ansatz für eine Detektion eines verworfenen Befehls (Dropped Command Detection, DCD) bereit, der sich auf ein Abfragen des Bereit-/Belegt-Status der Speichervorrichtung innerhalb eines Zeitrahmens, nachdem ein Befehl durch die Speichervorrichtung ausgegeben wird, aber bevor es wahrscheinlich ist, dass die Speichervorrichtung die Verarbeitung des Befehls beendet, stützt. Der Zeitrahmen ist derart eingerichtet, dass die Steuerung der Speichervorrichtung nicht versucht, den Status zu früh (z. B., während der Befehl noch initialisiert wird und somit eine Bereit-/Belegt-Statusanzeige ungültig wäre) oder zu spät (z. B., wenn der Befehl die Ausführung möglicherweise bereits beendet hat, was im Allgemeinen bei normalen, periodischen Statusabfragen, wie oben beschrieben, der Fall ist) abzufragen. Wenn der Status während dieses Zeitrahmens als bereit angegeben wird, kann die Steuerung bestimmen, dass der Befehl verworfen wurde, und kann sofort Abhilfemaßnahmen treffen, während, wenn der Status während dieses Zeitrahmens als belegt angegeben wird, die Steuerung bestimmen kann, dass der Befehl korrekt ausgeführt wird. Dadurch ermöglicht es die vorliegende Offenbarung der Steuerung, eine Detektion eines verworfenen Befehls ohne die Leistungsreduzierung, die durch das Auferlegen von globalen Zeitverzögerungen (z. B. tCS-Änderungen) verursacht werden kann, durchzuführen.
  • 1 zeigt ein beispielhaftes Blockdiagramm 100 einer Speichervorrichtung 102, die mit einer Host-Vorrichtung 104 (auch „Host“) gemäß einer beispielhaften Ausführungsform kommuniziert. Der Host 104 und die Speichervorrichtung 102 können ein System, wie ein Computersystem (z. B. Server, Desktop, Mobiltelefon/Laptop, Tablet, Smartphone usw.), bilden. Die Komponenten von 1 können physisch zusammen angeordnet sein oder nicht. In dieser Hinsicht kann der Host 104 entfernt von der Speichervorrichtung 102 angeordnet sein. Wenngleich 1 veranschaulicht, dass der Host 104 getrennt von der Speichervorrichtung 102 gezeigt ist, kann der Host 104 in anderen Ausführungsformen ganz oder teilweise in die Speichervorrichtung 102 integriert sein. Alternativ dazu kann der Host 104 in seiner Gesamtheit oder alternativ mit einiger Funktionalität in der Speichervorrichtung 102 über mehrere entfernte Einheiten verteilt sein.
  • Der Fachmann wird erkennen, dass andere beispielhafte Ausführungsformen mehr oder weniger als die in 1 gezeigten Elemente einschließen können und dass die offenbarten Prozesse in anderen Umgebungen implementiert werden können. Zum Beispiel können andere beispielhafte Ausführungsformen eine unterschiedliche Anzahl von Hosts, die mit der Speichervorrichtung 102 kommunizieren, oder mehrere Speichervorrichtungen 102, die mit dem/den Host(s) kommunizieren, einschließen.
  • Die Host-Vorrichtung 104 kann Daten in der Speichervorrichtung 102 speichern und/oder Daten von dieser abrufen. Die Host-Vorrichtung 104 kann eine beliebige Rechenvorrichtung einschließen, einschließlich zum Beispiel eines Computerservers, einer Network Attached Storage-Einheit (NAS-Einheit), eines Desktop-Computers, eines Notebook-Computers (z. B. eines Laptop-Computers), eines Tablet-Computers, einer mobilen Rechenvorrichtung, wie eines Smartphones, eines Fernsehers, einer Kamera, einer Anzeigevorrichtung, eines digitalen Medienwiedergabegeräts, einer Videospielkonsole, einer Videostreaming-Vorrichtung oder dergleichen. Die Host-Vorrichtung 104 kann mindestens einen Prozessor 101 und einen Host-Speicher 103 einschließen. Der mindestens eine Prozessor 101 kann eine beliebige Form von Hardware einschließen, die zum Verarbeiten von Daten in der Lage ist, und kann eine Universalverarbeitungseinheit (wie eine zentrale Verarbeitungseinheit (Central Processing Unit, CPU)), eine dedizierte Hardware (wie eine anwendungsspezifische integrierte Schaltung (Application Specific Integrated Circuit, ASIC)), einen Digitalsignalprozessor (DSP), konfigurierbare Hardware (wie eine feldprogrammierbare Gatteranordnung (Field Programmable Gate Array, FPGA)) oder eine beliebige andere Form von Verarbeitungseinheit, die durch Softwareanweisungen, Firmware oder dergleichen eingerichtet ist, einschließen. Der Host-Speicher 103 kann durch die Host-Vorrichtung 104 verwendet werden, um durch den Host verarbeitete Daten oder Anweisungen oder von der Speichervorrichtung 102 empfangene Daten zu speichern. In einigen Beispielen kann der Host-Speicher 103 nicht-flüchtigen Speicher, wie magnetische Speichervorrichtungen, optische Speichervorrichtungen, holografische Speichervorrichtungen, Flash-Speichervorrichtungen (z. B. NAND oder NOR), Phasenwechselspeichervorrichtungen (PCM-Vorrichtungen), resistive Direktzugriffsspeicher-Vorrichtungen (ReRAM-Vorrichtungen), magnetoresistive Direktzugriffsspeicher-Vorrichtungen (MRAM-Vorrichtungen), ferroelektrische Direktzugriffsspeicher-Vorrichtungen (F-RAM-Vorrichtungen) und einen beliebigen anderen Typ von nicht-flüchtigen Speichervorrichtungen, einschließen. In anderen Beispielen kann der Host-Speicher 103 flüchtigen Speicher, wie Direktzugriffsspeicher (RAM), dynamischen Direktzugriffsspeicher (DRAM), statischen RAM (SRAM) und synchronen dynamischen RAM (SDRAM (z. B. DDR1, DDR2, DDR3, DDR3L, LPDDR3, DDR4 und dergleichen) einschließen. Der Host-Speicher 103 kann auch sowohl nicht-flüchtigen Speicher als auch flüchtigen Speicher, egal ob miteinander integriert oder als diskrete Einheiten, einschließen.
  • Die Host-Schnittstelle 106 ist eingerichtet, um die Speichervorrichtung 102 mit dem Host 104 über einen Bus/ein Netzwerk 108 zu verbinden, und kann die Verbindung unter Verwendung von zum Beispiel Ethernet oder WiFi oder einem Bus-Standard, wie Serial Advanced Technology Attachment (SATA), PCI express (PCle), Small Computer System Interface (SCSI) oder Serial Attached SCSI (SAS) neben anderen möglichen Kandidaten, herstellen. Alternativ dazu kann die Host-Schnittstelle 106 drahtlos sein und kann die Speichervorrichtung 102 unter Verwendung von zum Beispiel einer Mobilfunkkommunikation (z. B. 5G NR, 4G LTE, 3G, 2G, GSM/UMTS, CDMA One/CDMA2000 usw.), drahtlosen Verteilungsverfahren durch Zugangspunkte (z. B. IEEE 802.11, WiFi, HiperLAN usw.), Infrarot (IR), Bluetooth, Zigbee oder einer anderen Technologie für ein drahtloses Weitverkehrsnetzwerk (Wireless Wide Area Network, WWAN), ein drahtloses lokales Netzwerk (Wireless Local Area Network, WLAN), ein drahtloses persönliches Netzwerk (Wireless Personal Area Network, WPAN) oder vergleichbaren Technologien für ein Weitverkehrsnetzwerk, ein lokales Netzwerk und ein persönliches Netzwerk mit dem Host 104 verbinden.
  • Wie in der beispielhaften Ausführungsform von 1 gezeigt, schließt die Speichervorrichtung 102 einen nicht-flüchtigen Speicher (Non-Volatile Memory, NVM) 110 zum nicht-flüchtigen Speichern von Daten, die von dem Host 104 empfangen werden, ein. Der NVM 110 kann zum Beispiel integrierte Flash-Schaltungen, NAND-Speicher (z. B. Single-Level-Zellen-Speicher (SLC-Speicher), Multi-Level-Zellen-Speicher (MLC-Speicher), Triple-Level-Zellen-Speicher (TLC-Speicher), Quad-Level-Zellen-Speicher (QLC-Speicher), Penta-Level-Zellen-Speicher (PLC-Speicher) oder eine beliebige Kombination davon) oder NOR-Speicher einschließen. Der NVM 110 kann eine Vielzahl von Speicherorten 112 einschließen, die Systemdaten zum Betreiben der Speichervorrichtung 102 oder Benutzerdaten, die von dem Host zur Speicherung in der Speichervorrichtung 102 empfangen werden, speichern können. Zum Beispiel kann der NVM eine Cross-Point-Architektur, einschließlich einer 2-D-NAND-Anordnung von Speicherorten 112 mit n Zeilen und m Spalten, einschließen, wobei m und n gemäß der Größe des NVM vordefiniert sind. In der veranschaulichten beispielhaften Ausführungsform von 1 kann jeder Speicherort 112 ein Block 114 sein, der mehrere Zellen 116 einschließt. Die Zellen 116 können zum Beispiel SLCs, MLCs, TLCs, QLCs und/oder PLCs sein. Andere Beispiele von Speicherorten 112 sind möglich; zum Beispiel kann jeder Speicherort ein Die sein, das mehrere Blöcke enthält. Darüber hinaus kann jeder Speicherort einen oder mehrere Blöcke in einer 3-D-NAND-Anordnung einschließen. Darüber hinaus können die veranschaulichten Speicherorte 112 logische Blöcke sein, die auf einem oder mehreren physischen Blöcken abgebildet sind.
  • Die Speichervorrichtung 102 schließt außerdem einen flüchtigen Speicher 118 ein, der zum Beispiel einen dynamischen Direktzugriffsspeicher (DRAM) oder einen statischen Direktzugriffsspeicher (SRAM) einschließen kann. Daten, die in einem flüchtigen Speicher 118 gespeichert sind, können Daten, die aus dem NVM 110 gelesen werden, oder Daten, die in den NVM 110 geschrieben werden sollen, einschließen. In dieser Hinsicht kann der flüchtige Speicher 118 einen Schreibpuffer oder einen Lesepuffer zum temporären Speichern von Daten einschließen. Während 1 den flüchtigen Speicher 118 als von einer Steuerung 123 der Speichervorrichtung 102 entfernt veranschaulicht, kann der flüchtige Speicher 118 in die Steuerung 123 integriert sein.
  • Der Speicher (z. B. der NVM 110) ist eingerichtet, um Daten 119, die von der Host-Vorrichtung 104 empfangen werden, zu speichern. Die Daten 119 können in den Zellen 116 eines beliebigen der Speicherorte 112 gespeichert sein. Als ein Beispiel veranschaulicht 1 die Daten 119, die an verschiedenen Speicherorten 112 gespeichert sind, obwohl die Daten an dem gleichen Speicherort gespeichert sein können. In einem anderen Beispiel können die Speicherorte 112 verschiedene Dies sein und können die Daten in einem oder mehreren der verschiedenen Dies gespeichert sein.
  • Alle der Daten 119 können einer logischen Adresse zugeordnet sein. Zum Beispiel kann der NVM 110 eine logisch-zu-physisch-Abbildungstabelle (L2P-Abbildungstabelle) 120 für die Speichervorrichtung 102 speichern, die allen Daten 119 eine logische Adresse zuordnet. Die L2P-Abbildungstabelle 120 speichert die Abbildung von logischen Adressen, die für Daten spezifiziert sind, die von dem Host 104 geschrieben werden, auf physische Adressen in dem NVM 110, wobei der/die Ort(e) angegeben werden, in denen alle der Daten gespeichert sind. Diese Abbildung kann durch die Steuerung 123 der Speichervorrichtung durchgeführt werden. Die L2P-Abbildungstabelle kann eine Tabelle oder eine andere Datenstruktur sein, die eine Kennung einschließt, wie eine logische Blockadresse (LBA), die jedem Speicherort 112 in dem NVM, in dem Daten gespeichert sind, zugeordnet ist. Während 1 eine einzelne L2P-Abbildungstabelle 120 veranschaulicht, die an einem der Speicherorte 112 von NVM gespeichert ist, um eine unangemessene Verunklarung der Konzepte von 1 zu vermeiden, kann die L2P-Abbildungstabelle 120 tatsächlich mehrere Tabellen einschließen, die an einem oder mehreren Speicherorten von NVM gespeichert sind.
  • 2 ist ein Konzeptdiagramm 200 eines Beispiels einer L2P-Abbildungstabelle 205, die die Abbildung von Daten 202, die von einer Host-Vorrichtung empfangen werden, auf logische Adressen und physische Adressen in dem NVM 110 von 1 veranschaulicht. Die Daten 202 können den Daten 119 in 1 entsprechen, während die L2P-Abbildungstabelle 205 der L2P-Abbildungstabelle 120 in 1 entsprechen kann. In einer beispielhaften Ausführungsform können die Daten 202 in einer oder mehreren Seiten 204 gespeichert sein, z. B. Seiten 1 bis x, wobei x die Gesamtanzahl von Seiten von Daten ist, die in den NVM 110 geschrieben werden. Jede Seite 204 kann einem oder mehreren Einträgen 206 der L2P-Abbildungstabelle 205 zugeordnet sein, die eine logische Blockadresse (LBA) 208, eine physische Adresse 210, die den in den NVM geschriebenen Daten zugeordnet ist, und eine Länge 212 der Daten identifizieren. Die LBA 208 kann eine logische Adresse sein, die in einem Schreibbefehl für die von der Host-Vorrichtung empfangenen Daten spezifiziert ist. Die physische Adresse 210 kann den Block und die Verschiebung angeben, bei denen die Daten, die der LBA 208 zugeordnet sind, physisch geschrieben werden. Die Länge 212 kann eine Größe der geschriebenen Daten angeben (z. B. 4 KB oder eine andere Größe).
  • Unter erneuter Bezugnahme auf 1 speichert der flüchtige Speicher 118 außerdem einen Cache 122 für die Speichervorrichtung 102. Der Cache 122 schließt Einträge ein, die die Abbildung von logischen Adressen, die für Daten spezifiziert sind, die durch den Host 104 angefordert werden, auf physische Adressen in dem NVM 110 zeigen, wobei der/die Ort(e) angegeben werden, in denen die Daten gespeichert sind. Diese Abbildung kann durch die Steuerung 123 durchgeführt werden. Wenn die Steuerung 123 einen Lesebefehl oder einen Schreibbefehl für die Daten 119 empfängt, prüft die Steuerung den Cache 122 auf die logisch-zu-physisch-Abbildung aller Daten. Wenn eine Abbildung nicht vorhanden ist (es z. B. die erste Anforderung für die Daten ist), greift die Steuerung auf die L2P-Abbildungstabelle 120 zu und speichert die Abbildung in dem Cache 122. Wenn die Steuerung 123 den Lesebefehl oder Schreibbefehl ausführt, greift die Steuerung auf die Abbildung aus dem Cache zu und liest die Daten aus dem NVM 110 an der spezifizierten physischen Adresse oder schreibt sie in diesen. Der Cache kann in Form einer Tabelle oder einer anderen Datenstruktur gespeichert sein, die eine logische Adresse einschließt, die jedem Speicherort 112 in NVM zugeordnet ist, wo Daten gelesen werden.
  • Der NVM 110 schließt Leseverstärker 124 und Daten-Latche 126 ein, die mit jedem Speicherort 112 verbunden sind. Zum Beispiel kann der Speicherort 112 ein Block sein, der Zellen 116 auf mehreren Bitleitungen einschließt und kann der NVM 110 einen Leseverstärker 124 auf jeder Bitleitung einschließen. Darüber hinaus können ein oder mehrere Daten-Latche 126 mit den Bitleitungen und/oder Leseverstärkern verbunden sein. Bei den Daten-Latchen kann es sich zum Beispiel um Schieberegister handeln. Wenn Daten aus den Zellen 116 des Speicherorts 112 gelesen werden, erfassen die Leseverstärker 124 die Daten durch Verstärken der Spannungen auf den Bitleitungen auf einen logischen Pegel (z. B. lesbar als eine „0“ oder eine „1‟) und werden die erfassten Daten in den Daten-Latchen 126 gespeichert. Die Daten werden dann von den Daten-Latchen 126 an die Steuerung 123 übertragen, wonach die Daten in dem flüchtigen Speicher 118 gespeichert werden, bis sie an die Host-Vorrichtung 104 übertragen werden. Wenn Daten in die Zellen 116 des Speicherorts 112 geschrieben werden, speichert die Steuerung 123 die programmierten Daten in den Daten-Latchen 126 und werden die Daten anschließend von den Daten-Latchen 126 an die Zellen 116 übertragen.
  • Die Speichervorrichtung 102 schließt eine Steuerung 123 ein, die Schaltlogik, wie einen oder mehrere Prozessoren zum Ausführen von Anweisungen einschließt, und kann einen Mikrocontroller, einen Digitalsignalprozessor (DSP), eine anwendungsspezifische integrierte Schaltung (Application-Specific Integrated Circuit, ASIC), eine feldprogrammierbare Gatteranordnung (Field Programmable Gate Array, FPGA), festverdrahtete Logik, analoge Schaltlogik und/oder eine Kombination davon einschließen.
  • Die Steuerung 123 ist eingerichtet, um Daten zu empfangen, die von einer oder mehreren der Zellen 116 der verschiedenen Speicherorte 112 als Reaktion auf einen Lesebefehl übertragen werden. Zum Beispiel kann die Steuerung 123 die Daten 119 lesen, indem sie die Leseverstärker 124 aktiviert, um die Daten aus den Zellen 116 in Daten-Latche 126 zu erfassen, und die Steuerung 123 kann die Daten von den Daten-Latchen 126 empfangen. Die Steuerung 123 ist außerdem eingerichtet, um als Reaktion auf einen Schreibbefehl Daten in eine oder mehrere der Zellen 116 zu programmieren. Zum Beispiel kann die Steuerung 123 die Daten 119 schreiben, indem sie Daten an die Daten-Latche 126 sendet, um in die Zellen 116 programmiert zu werden. Die Steuerung 123 ist weiterhin eingerichtet, um beim Lesen oder Schreiben von Daten in die Zellen 116 auf die L2P-Abbildungstabelle 120 in dem NVM 110 zuzugreifen. Zum Beispiel kann die Steuerung 123 logisch-zu-physisch-Adressabbildungen von dem NVM 110 als Reaktion auf Lese- oder Schreibbefehle von der Host-Vorrichtung 104 empfangen, die physischen Adressen identifizieren, die auf die logischen Adressen abgebildet sind, die in den Befehlen identifiziert sind, (z. B. die logischen Adressen in physische Adressen übersetzen) und auf Daten in den Zellen 116, die sich an den abgebildeten physischen Adressen befinden, zugreifen oder diese speichern.
  • Die Steuerung 123 und ihre Komponenten können mit eingebetteter Software implementiert sein, die die verschiedenen Funktionen der in dieser Offenbarung beschriebenen Steuerung durchführt. Alternativ dazu kann Software zum Implementieren jeder der zuvor erwähnten Funktionen und Komponenten in dem NVM 110 oder in einem Speicher außerhalb der Speichervorrichtung 102 oder der Host-Vorrichtung 104 gespeichert sein, und es kann durch die Steuerung 123 zur Ausführung durch den einen oder die mehreren Prozessoren der Steuerung 123 auf sie zugegriffen werden. Alternativ dazu können die Funktionen und Komponenten der Steuerung mit Hardware in der Steuerung 123 implementiert sein, oder sie können unter Verwendung einer Kombination der zuvor erwähnten Hardware und Software implementiert sein.
  • Im Betrieb speichert die Host-Vorrichtung 104 Daten in der Speichervorrichtung 102 durch Senden eines Schreibbefehls an die Speichervorrichtung 102, der eine oder mehrere logische Adressen (z. B. LBAs) sowie eine Länge der zu schreibenden Daten spezifiziert. Das Schnittstellenelement 106 empfängt den Schreibbefehl, und die Steuerung ordnet einen Speicherort 112 in dem NVM 110 der Speichervorrichtung 102 zum Speichern der Daten zu. Die Steuerung 123 speichert die L2P-Abbildung in dem NVM (und dem Cache 122), um eine logische Adresse, die den Daten zugeordnet ist, auf die physische Adresse des Speicherorts 112 abzubilden, der für die Daten zugeordnet ist. Die Steuerung speichert außerdem die Länge der L2P-abgebildeten Daten. Die Steuerung 123 speichert dann die Daten an dem Speicherort 112, indem sie sie an einen oder mehrere Daten-Latche 126 sendet, die mit dem zugeordneten Speicherort verbunden sind, von dem die Daten in die Zellen 116 programmiert werden.
  • Der Host 104 kann Daten von der Speichervorrichtung 102 abrufen, indem er einen Lesebefehl, der eine oder mehrere logische Adressen spezifiziert, die den Daten zugeordnet sind, die von der Speichervorrichtung 102 abgerufen werden sollen, sowie eine Länge der zu lesenden Daten sendet. Die Schnittstelle 106 empfängt den Lesebefehl, und die Steuerung 123 greift auf die L2P-Abbildung in dem Cache 122 oder ansonsten in dem NVM zu, um die logischen Adressen, die in dem Lesebefehl spezifiziert sind, in die physischen Adressen zu übersetzen, die den Ort der Daten angeben. Die Steuerung 123 liest dann die angeforderten Daten aus dem durch die physischen Adressen spezifizierten Speicherort 112, indem sie die Daten unter Verwendung der Leseverstärker 124 erfasst und in Daten-Latchen 126 speichert, bis die gelesenen Daten über die Host-Schnittstelle 106 an den Host 104 zurückgegeben werden.
  • 3 veranschaulicht ein beispielhaftes Diagramm 300, das eine Steuerung 302 in Kommunikation mit mehreren Dies 304, die einen Bus 306 teilen, veranschaulicht. Die Steuerung 302 kann der Steuerung 123 von 1 entsprechen, und die Dies 304 können den Speicherorten 112 von 1 entsprechen. Jedes Die kann verschiedene Stifte einschließen, die als Schnittstellen zwischen der Steuerung und dem Die dienen. Zum Beispiel kann jedes Die einen CE 308, der eingerichtet ist, um ein Chip-Enable-Signal von der Steuerung zu empfangen, einen Eingabe/Ausgabe (E/A) 310, der eingerichtet ist, um Befehle von der Steuerung (z. B. zum Lesen, Schreiben oder Löschen von Daten) zu empfangen, und einen Bereit/Belegt (R/B) 312, der eingerichtet ist, um einen Bereit- oder Belegt-Status (einen NAND-Die-Status, der in dem Speicher des Dies gespeichert ist) an die Steuerung auszugeben, einschließen. Der Klarheit halber sind nur CE 308, E/A 310 und R/B 312 in 3 für jedes Die veranschaulicht; jedoch können die Dies 304 andere Stifte einschließen. Zum Beispiel kann jedes Die eine Adressspeicherungsfreigabe (Address Latch Enable, ALE) zum Speichern von Adressen in NAND, eine Befehlsspeicherungsfreigabe (Command Latch Enable, CLE) zum Speichern von Befehlen in ein Befehlsregister, eine RE (Read Enable, Lesefreigabe) zum Freigeben von Ausgabedatenpuffern, eine WE (Write Enable, Schreibfreigabe) zum Takten von Daten, Adressen oder Befehlen in den NAND und ein bidirektionales Datenstrobensignal (DQS) zum Verarbeiten von Datentransaktionen einschließen.
  • In einem Beispiel kann die Steuerung 302 Befehle von einer Host-Vorrichtung (z. B. der Host-Vorrichtung 104) für Daten auf verschiedenen Dies empfangen. Zum Beispiel kann die Steuerung 302 einen ersten Lesebefehl für Daten auf einem der Dies 304 (z. B. einem ersten Die) empfangen und kann die Steuerung 302 einen zweiten Lesebefehl für Daten auf einem anderen der Dies 304 (z. B. einem zweiten Die) empfangen. Entsprechend, um den ersten Lesebefehl auszuführen, sendet die Steuerung 302 ein CE-Signal auf dem Bus 306 an die CE 308 des ersten Dies und sendet die Steuerung 302, nach einem vorkonfigurierten Zeitraum (z. B. der oben beschriebenen tCS), einen Befehl auf dem Bus 306 an die E/A 310, um die Daten von dem ersten Die zu lesen. Zum Beispiel kann die Steuerung einen Befehl senden, um Leseverstärker (z. B. die Leseverstärker 124 von 1) zu aktivieren, um Daten von dem ersten Die (z. B. die Daten 119) zu erfassen, und um dann die erfassten Daten von den Latchen (z. B. den Latchen 126) an die Steuerung zu übertragen. Während die Steuerung darauf wartet, dass der erste Lesebefehl ausgeführt wird, kann die Steuerung 302 den zweiten Lesebefehl durch Senden eines CE-Signals auf dem Bus an die CE 308 des zweiten Dies ausführen, und nach dem vorkonfigurierten Zeitraum tCS sendet die Steuerung einen Befehl an die E/A 310, um in ähnlicher Weise Daten von dem zweiten Die zu erfassen. Die Steuerung kann in ähnlicher Weise mit den anderen Dies auf dem Bus 306 interagieren, während Befehle für ihre jeweiligen Dies ausgeführt werden.
  • Wenn die Steuerung einen neuen Befehl empfängt oder bestimmt, einen anderen abgefragten Befehl von der Host-Vorrichtung für einen der Dies 304 auszuführen, wartet die Steuerung, bis sie bestimmt, dass ein vorhergehender Befehl beendet ist, bevor sie den neuen Befehl auf diesem Die ausführt. Das heißt, dass die Steuerung einen Zeitraum entsprechend einer maximal erwarteten Zeit für das Beenden der Ausführung des vorhergehenden Befehls wartet und dann das Die durch Senden von periodischen Bereit-/Belegt-Statusanfragen an das Die abfragt. Wenn die Steuerung zum Beispiel plant, einen weiteren Lesebefehl für das erste Die auszuführen, wartet die Steuerung, bis die vorher erwähnte Zeit abgelaufen ist, bevor sie einen Statusbefehl an das erste Die über den E/A 310 für seinen Bereit-/Belegt-Status sendet oder den R/B 312 auf seinen Bereit-/Belegt-Status überprüft. Wenn die Steuerung identifiziert, dass das Die 304 bereit ist, geht die Steuerung davon aus, dass das Die die Befehlsausführung beendet hat, und sendet ein CE-Signal an das erste Die, gefolgt von dem neuen Befehl, wie oben beschrieben. Alternativ dazu, wenn die Steuerung identifiziert, dass das Die noch belegt ist, geht die Steuerung davon aus, dass das Die noch den vorhergehenden Befehl ausführt, und setzt das Abfragen des Status fort, bis das Die bereit wird. Die Steuerung führt dann den neuen Befehl aus. Der Prozess kann in ähnlicher Weise für alle Dies 304 wiederholt werden. Somit kann die Steuerung 302 die CE-Auswahl zwischen den mehreren Dies auf dem Bus umschalten, um Befehle für die verschiedenen Dies auszuführen.
  • Wenn jedoch zum Beispiel aufgrund eines Metall-zu-Metall-Kurzschlussproblems mit dem CE 308 von einem der Dies eine nicht berücksichtigte Umschaltverzögerung zwischen den CEs auftritt, kann die Steuerung 302 den neuen Befehl an den E/A 310 senden, um Daten auf dem Die 304 zu lesen, zu schreiben oder zu löschen, bevor das Die durch die CE aktiviert wird, um den neuen Befehl zu verarbeiten. Dadurch kann der Befehl durch das jeweilige Die ignoriert oder verworfen werden. In einem solchen Fall kann die Steuerung 302 nicht dazu in der Lage sein, den verworfenen Befehl einfach durch Abfragen des Bereit-/Belegt-Status nach der maximal erwarteten Zeit für die Befehlsausführung, wie oben beschrieben, zu detektieren, weil eine anfängliche Bestimmung, dass das Die bereit ist, infolge des Abfragens mehrdeutig sein kann. Das heißt, dass das Die bereit sein kann, weil es das Ausführen des neuen Befehls beendet hat oder weil es das Ausführen des vorhergehenden Befehls beendet hat und den neuen Befehl nie verarbeitet hat. Somit können die verworfenen Befehle im Hintergrund (z. B. der Steuerung unbekannt) sein. Darüber hinaus kann das Erhöhen von tCS auf eine maximale Grenze nicht helfen, wenn die CE-Umschaltverzögerung länger als die Grenze ist, sowie die Leistung von allen Dies 304 auf dem Bus 306 global opfern.
  • Um dieses Problem von im Hintergrund verworfenen Befehlen zu behandeln, beinhaltet die vorliegende Offenbarung ein System einer Detektion eines verworfenen Befehls (Dropped Command Detection, DCD). 4 veranschaulicht ein beispielhaftes Diagramm 400 einer Befehlsausführungszeitleiste, einschließlich DCD. Während 4 ein Beispiel veranschaulicht, in dem die Steuerung einen Lesebefehl ausführt, kann die Steuerung andere Befehle (z. B. Schreibbefehle oder Löschbefehle) ausführen, während sie eine Detektion eines verworfenen Befehls durchführt. In diesem Beispiel gibt die Steuerung ein NAND-Lesen unter Verwendung eines Mehrbyte-Lesebefehls 402 aus: einen Anfangsbefehl 404 (z. B. 00h), gefolgt von einer physischen Adresse 406 (z. B. fünf oder sechs Bytes) der zu lesenden Daten und einem Nachbefehl 408 (z. B. 30h). Das Feld, das die physische Adresse 406 einschließt, kann eine Kennung für das Die einschließen, in dem sich die Adresse befindet. Somit kann die Steuerung 302 unter Bezugnahme auf 3 den Mehrbyte-Befehl 402 an den E/A 310 von einem der Dies ausgeben, um Daten von diesem Die zu lesen.
  • Nach dem Ausgeben des Lesebefehls für ein bestimmtes Die wartet die Steuerung zwischen einer minimalen Zeit 410 für den Befehl zum Initialisieren oder Beginnen der Ausführung und einer maximalen Zeit 412 für den Befehl zum Beenden der Ausführung, bevor sie eine Detektion eines verworfenen Befehls (Dropped Command Detection, DCD) auf diesem Die durchführt. Zum Beispiel kann die Steuerung warten, indem sie damit fortfährt, andere Befehle für andere Dies durchzuführen, oder indem sie es unterlässt, Befehle durchzuführen. Sobald die Steuerung bis zu einem Zeitpunkt (z. B. tDCD) innerhalb dieses Zeitrahmens gewartet hat, führt die Steuerung eine DCD-Statusabfrage 414 des Die-Status (z. B. bereit oder belegt) des NAND durch. Der Zeitrahmen, in dem die Steuerung eine akzeptable DCD-Statusabfrage durchführen kann, kann somit durch tDCD_min < tDCD < tDCD_max definiert werden, wobei die minimale Zeit 410 (tDCD_min) die kürzeste Zeit ist, damit ein Bereit-/Belegt-Status des Dies gültig ist (z. B. 600 ns oder eine andere Zahl für einen Lesebefehl), und die maximale Zeit 412 (tDCD_max) die kürzeste Zeit ist, bevor der Befehl 402 als beendet betrachtet werden kann (z. B. 30 µs oder eine andere Zahl für einen Lesebefehl). Somit kann die maximale Zeit 412 für tDCD selbst eine minimale Zeit für die Befehlsausführungsbeendigung sein (z. B. zwischen 30 µs und 100 µs für einen Lesebefehl).
  • Die Steuerung kann die DCD-Statusabfrage 414 für den Bereit-/Belegt-Status eines Dies basierend auf der durch das Die bereitgestellten R/B-Schnittstelle durchführen, wie oben in Bezug auf 3 beschrieben. Zum Beispiel kann die Steuerung einen Statusbefehl auf dem Bus 306 an ein Die 304 über den E/A 310 senden, um den Bereit-/Belegt-Status zu bestimmen. Während die Steuerung den Bereit-/Belegt-Status von dem Die auch über einen mit dem R/B 312 verbundenen Draht lesen kann, kann dieser Ansatz für DCD weniger vorteilhaft sein, wenn mehrere Dies den gleichen Bus wie in 3 teilen. Wenn zum Beispiel die Steuerung über einen einzelnen Bus mit allen R/B 312 (Stiften) jedes Dies verbunden ist, kann die Steuerung nicht dazu in der Lage sein, zu bestimmen, von welchem Die welcher Status stammt, im Gegensatz zu einem Statusbefehl, der das ausgewählte Die identifizieren kann. Darüber hinaus kann ein Reservieren von zusätzlichen Stiften an der Steuerung für eine separate Verbindung mit dem R/B 312 jedes Dies aufgrund der begrenzten Anzahl von Stiften der Steuerung unpraktisch sein.
  • Entsprechend veranschaulicht 4 ein Beispiel, in dem die Steuerung einen Mehrbyte-Statusbefehl, einschließlich eines Anfangsbefehls 416 (z. B. F1h) und eines Nachbefehls 418 (z. B. 71h), sendet, um DCD durchzuführen. Der Anfangsbefehl 416 kann das Die angeben, auf das die DCD-Statusabfrage 414 gerichtet ist, und der Nachbefehl 418 kann dem Die eine Anweisung angeben, seinen Bereit-/Belegt-Status an die Steuerung zurückzugeben. Diese beiden Befehle in Kombination mit der physischen Adresse 406, die das Ziel-Die identifiziert, ermöglicht es dem richtigen Die, den Statusbefehl erfolgreich zu decodieren und zu empfangen. Zum Beispiel kann unter Bezugnahme auf 3 eines der Dies 304 (ein erstes Die) als Die 0 identifiziert werden und kann ein anderes der Dies 304 (ein zweites Die) als Die 1 identifiziert werden. Wenn somit das zweite Die eine physische Adresse, die dieses Die identifiziert, gefolgt von dem Anfangsbefehl F1h und dem Nachbefehl 71h empfängt, kann das zweite Die den Statusbefehl basierend auf seiner Kennung erfolgreich decodieren, während das Decodieren des Statusbefehls durch das erste Die und ein anderes Die auf dem Bus möglicherweise fehlschlägt. Daher gibt das zweite Die seinen Bereit-/Belegt-Status an die Steuerung zurück. Dieses Adressierungsschema kann Fehler verhindern, die durch dazwischenliegende Befehle (z. B. zwischen dem Lesebefehl 402 und der DCD-Statusabfrage 414 oder zwischen dem Anfangsbefehl 416 und dem Nachbefehl 418) verursacht werden, die auf unterschiedliche Dies gerichtet sind, die den gleichen Bus mit der Steuerung teilen.
  • Nachdem das Die die DCD-Statusabfrage 414 von der Steuerung empfängt, wenn das Die den Lesebefehl 402 korrekt ausführt, empfängt die Steuerung einen Belegt-Status 420 als Reaktion auf die Abfrage von dem Die. Basierend auf diesem Belegt-Status 420 kann die Steuerung bestimmen, dass der Befehl nicht verworfen wurde, und die Steuerung kann damit fortfahren, mit anderen Dies unter Verwendung des Busses zu interagieren, bis der Befehl vollständig ausgeführt ist und das Die bereit wird. Die Steuerung kann bestimmen, wann das Die bereit wird, indem sie den Bereit-/Belegt-Status des Dies abfragt, nachdem die maximal erwartete Zeit für die Befehlsausführung (z. B. die Standardverzögerung 422) beendet ist. Zum Beispiel kann die Standardverzögerung 422 für einen Lesebefehl 100 µs sein, während die Standardverzögerung 422 für einen Löschbefehl 5 ms sein kann. Nachdem die Standardverzögerung 422 abgelaufen ist, kann die Steuerung periodisch Statusbefehlsabfragen 424 an das Die senden, um zu bestimmen, ob das Die noch belegt ist (z. B. gibt das Die einen weiteren Belegt-Status 426 zurück) oder bereit wird.
  • Wenn jedoch das Die als Reaktion auf die DCD-Statusabfrage 414 nicht den Belegt-Status 420 zurückgibt und stattdessen einen Bereit-Status zurückgibt, kann die Steuerung bestimmen, dass der Befehl verworfen wurde (z. B. aufgrund einer Verzögerung der CE-zu-CE-Auswahl) und dass der Lesebefehl 402 nicht korrekt ausgeführt wurde. Dadurch kann die Steuerung Abhilfemaßnahmen einbeziehen, wie Benachrichtigen der Host-Vorrichtung, erneutes Senden des Lesebefehls 402 oder Durchführen anderer Fehlerkorrekturmaßnahmen.
  • Somit ermöglicht es das Beispiel von 4 der Steuerung, verworfene Befehle erfolgreich zu detektieren, ohne die Standardverzögerung 422 zu warten, um den Bereit-/Belegt-Status des Dies zu überprüfen, die, wie oben beschrieben, für die Bestimmung zu spät sein kann, weil sie weit nach der maximalen Zeit 412 für DCD ist und somit der durch das Die berichtete Status mehrdeutig sein wird. Zum Beispiel kann die Standardverzögerung 422 für einen Lesebefehl 100 µs sein, während die maximale Zeit 412 für DCD 30 µs oder eine andere Zahl, die erheblich kleiner als die Standardverzögerung ist, sein kann. Zusätzlich dazu, während verworfene Befehle erfolgreich detektiert werden können, wenn die DCD-Statusabfrage 414 durch die Steuerung zu einem beliebigen Zeitpunkt innerhalb der minimalen Zeit 410 und der maximalen Zeit 412 gesendet wird, kann die Effizienz verbessert werden, indem die Steuerung eingerichtet wird, um die DCD-Statusabfrage 414 näher an der minimalen Zeit 410 zu senden (z. B. bis 600 ns oder eine andere Zahl anstatt 30 µs). Dadurch, wenn ein Problem auftritt und das Die einen Bereit-Status zurückgibt, wenn es den Belegt-Status 420 hätte zurückgeben sollen, kann die Steuerung dazu in der Lage sein, den verworfenen Befehl sobald wie möglich zu bestimmen (z. B. mindestens bis zu der minimalen Zeit 410), um schnell Abhilfemaßnahmen zu treffen, anstatt unnötigerweise bis zu der maximalen Zeit 412 für DCD zu warten.
  • 5 veranschaulicht ein beispielhaftes Zeitsteuerungsdiagramm 500 von Signalen, die während der Ausführung eines Lesebefehls (z. B. des Lesebefehls 402 von 4) zwischen einer Steuerung (z. B. der Steuerung 123 oder 302) und einem Die (z. B. dem Die 304) kommuniziert werden. Während verschiedene Signale, die oben in Bezug auf 3 angegeben wurden, wie CLE, ALE, WE, RE und DQS, in diesem Beispiel der Vollständigkeit halber gezeigt sind, wird nachfolgend nur eine Zeitsteuerung in Bezug auf die Signale CE (z. B. CE 308), E/A (z. B. E/A 310) und R/B (z. B. R/B 312) beschrieben.
  • Wenn die Steuerung den Lesebefehl von der Host-Vorrichtung empfängt, schaltet die Steuerung das CE-Signal (z. B. von 1 auf 0) für das Die bei (oder etwa bei) der Zeitsteuerung 502 um. Die Steuerung gibt dann den Lesebefehl auf E/A an das Die bei (oder etwa bei) der Zeitsteuerung 504 aus, der die Ausführung des Befehls beginnt und anschließend in der Ausgabe eines Belegt-Status auf RB (z. B. 0) resultiert. Anschließend, während der Zeitsteuerung 506 (die z. B. der Spanne der Standardverzögerung 422 von 4 entsprechen kann), gibt die Steuerung im Allgemeinen keine neuen Befehle an das Die aus, weil erwartet wird, dass das Die damit beschäftigt ist, den vorhergehenden Befehl auszuführen, wie in 5 veranschaulicht. Stattdessen kann die Steuerung damit fortfahren, Befehle an andere Dies auf dem gleichen Bus auszugeben. Nach der Zeitsteuerung 506 kann die Steuerung das Die beginnend bei der Zeitsteuerung 508 abfragen, indem sie Statusbefehle (z. B. 80h) über E/A sendet oder indem sie die RB-Leitung überprüft, um zu bestimmen, ob das Die noch belegt ist. In dem veranschaulichten Beispiel ist das Die noch belegt (z. B. ist RB(0) noch 0), sodass die Steuerung das Abfragen fortsetzt, bis das RB angibt, dass das Die wieder bereit ist (z. B. kehrt RB(0) später zu 1 zurück, wenngleich in der Figur nicht gezeigt). Die Steuerung kann dann einen neuen Befehl für das Die ausführen.
  • Wenngleich 5 ein Beispiel veranschaulicht, bei dem der Befehl korrekt ausgeführt wurde (z. B. die RB-Leitung wie erwartet belegt wurde), kann der Befehl in anderen Beispielen im Hintergrund verworfen werden. Wenn zum Beispiel die Zeitsteuerung 502 für das CE-Umschalten später auftritt als die Zeitsteuerung 504 für das Ausgeben des Lesebefehls, wie oben beschrieben, kann das Die den Lesebefehl nicht ausführen und kann RB(0) die gesamte Zeit 1 (z. B. Bereit-Status) bleiben. Zu dem Zeitpunkt, zu dem das Abfragen für den Bereit-/Belegt-Status bei der Zeitsteuerung 508 beginnt, wenn erwartet wird, dass der Befehl die Ausführung beendet, detektiert die Steuerung den Bereit-Status, aber dieser wird mehrdeutig sein; die Steuerung wird nicht dazu in der Lage sein, zu bestimmen, ob RB(0) anfänglich 0 war und dann 1 wurde oder ob es immer 1 war.
  • Daher, um solche im Hintergrund verworfenen Befehle zu detektieren, kann die Steuerung eine Statusabfrage (z. B. die DCD-Statusabfrage 414 von 4) innerhalb von konfigurierten minimalen und maximalen DCD-Zeitsteuerungen senden. Zum Beispiel kann die Steuerung die Statusabfrage innerhalb einer minimalen Zeit 510, die der minimalen Zeit 410 oder tDCD_min entspricht, und einer maximalen Zeit 512, die der maximalen Zeit 412 oder tDCD_max entspricht, senden. Zum Beispiel kann die minimale Zeit 510 eingerichtet sein, um eine kürzeste Zeit zu sein, in der erwartet wird, dass der Befehl die Ausführung in dem Die bei oder nach der Zeitsteuerung 504 beginnt, und kann die maximale Zeit 512 eingerichtet sein, um eine kürzeste Zeit zu sein, in der erwartet wird, dass der Befehl die Ausführung innerhalb der Zeitsteuerung 506 beendet. Somit können die minimale Zeit und die maximale Zeit für verschiedene Dies unterschiedlich sein (z. B. kann jedes tDCD-Minimum/Maximum-Paar von einem spezifischen NAND-Knoten abhängen); zum Beispiel können die Zeitsteuerungen 504 und 506 nicht immer für jedes Die gleich sein. Wenn die Steuerung bestimmt, dass der Status bereit ist, wenn sie einen Belegt-Status erwartet hat, dann kann die Steuerung zuverlässig bestimmen, dass der Befehl verworfen wurde, und dann damit fortfahren, den Befehl ohne Verzögerung erneut auszugeben oder CE-Leitungen umzuschalten.
  • 6 veranschaulicht ein beispielhaftes Flussdiagramm 600 eines Verfahrens zur Detektion eines verworfenen Befehls. Zum Beispiel kann das Verfahren in einer Speichervorrichtung 102, wie der in 1 veranschaulichten, ausgeführt werden. Jeder der Schritte in dem Flussdiagramm kann unter Verwendung der Steuerung wie unten beschrieben (z. B. der Steuerung 123) oder durch ein beliebiges anderes geeignetes Mittel gesteuert werden.
  • Wie durch Block 602 dargestellt, erstellt die Steuerung einen NAND-Befehl für ein Die. Wenn die Steuerung zum Beispiel einen Befehl von der Host-Vorrichtung empfängt (z. B. einen Lese-, Schreib- oder Löschbefehl), der eine logische Adresse einschließt, die einem Speicherort in einem Die zugeordnet ist, übersetzt die Steuerung die logische Adresse in eine physische Adresse in dem NAND. Zum Beispiel identifiziert die Steuerung unter Bezugnahme auf 2 die logische Adresse 208 in der L2P-Abbildungstabelle 205 (z. B. die L2P-Abbildungstabelle 120 von 1) und übersetzt die logische Adresse in die physische Adresse 210, die zum Ausführen des Befehls verwendet werden soll.
  • Wie durch Block 604 dargestellt, gibt die Steuerung einen NAND-Befehl an das Die aus. Zum Beispiel kann die Steuerung unter Bezugnahme auf 4 den Lesebefehl 402 ausgeben, der den Anfangsbefehl 404 (z. B. 00h), gefolgt von der physischen Adresse 406 (z. B. fünf oder sechs Bytes) der zu lesenden Daten, gefolgt von dem Nachbefehl 408 (z. B. 30h) einschließt. Das Feld, das die physische Adresse 406 einschließt, kann eine Kennung für das Die einschließen, in dem sich die Adresse befindet. Somit kann die Steuerung 302 unter Bezugnahme auf 3 den Lesebefehl 402 an den E/A 310 von einem der Dies ausgeben, um Daten von diesem Die zu lesen. Alternativ dazu kann die Steuerung als Reaktion auf den von der Host-Vorrichtung empfangenen Befehl andere Befehle ausführen (z. B. einen Schreibbefehl oder einen Löschbefehl).
  • Wie durch Block 606 dargestellt, führt die Steuerung nach dem Ausgeben des NAND-Befehls für das Die eine DCD durch. Der DCD-Prozess kann durch eine beliebige Kombination von Blöcken 608, 610, 612 und 618 dargestellt werden, die unten ausführlicher beschrieben werden.
  • Wie durch Block 608 dargestellt, wartet die Steuerung für eine Zeit t, wobei tDCD_min <= t < tDCD_max, bevor sie den Bereit-/Belegt-Status des Dies abfragt. Zum Beispiel, unter Bezugnahme auf 4, kann die Steuerung nach dem Ausgeben des Lesebefehls für ein bestimmtes Die zwischen einer minimalen Zeit 410 für den Befehl zum Initialisieren oder Beginnen der Ausführung und einer maximalen Zeit 412 für den Befehl zum Beenden der Ausführung warten, bevor sie eine DCD auf diesem Die durchführt. Zum Beispiel kann die Steuerung warten, indem sie damit fortfährt, andere Befehle für andere Dies durchzuführen, oder indem sie es unterlässt, Befehle durchzuführen. Der Zeitrahmen, in dem die Steuerung eine akzeptable DCD-Statusabfrage durchführen kann, kann somit durch tDCD_min < tDCD < tDCD_max definiert werden, wobei die minimale Zeit 410 (tDCD_min) die kürzeste Zeit ist, damit ein Bereit-/Belegt-Status des Dies gültig ist, und die maximale Zeit 412 (tDCD_max) die kürzeste Zeit ist, bevor der Befehl 402 als beendet betrachtet werden kann.
  • Wie durch Block 610 dargestellt, kann die Steuerung einen Bereit-/Belegt-Status des Dies abfragen. Zum Beispiel, unter Bezugnahme auf 4, führt die Steuerung eine DCD-Statusabfrage 414 des Die-Status (z. B. bereit oder belegt) des Dies durch, sobald die Steuerung bis zu einem Zeitpunkt (z. B. tDCD) innerhalb dieses Zeitrahmens gewartet hat. Zum Beispiel kann die Steuerung einen Statusbefehl auf dem Bus 306 an ein Die 304 über den E/A 310 senden. Als ein Beispiel des Statusbefehls kann die Steuerung den Anfangsbefehl 416 (z. B. F1h) unmittelbar gefolgt von dem Nachbefehl 418 (z. B. 71h) senden, um eine DCD an einem identifizierten Die durchzuführen.
  • Wie durch Block 612 dargestellt, bestimmt die Steuerung, ob der Bereit-/Belegt-Status des Dies als belegt angegeben wird. Wenn das Die als belegt angegeben wird, dann kann die Steuerung detektieren, dass der Befehl nicht verworfen ist, und wie durch Block 614 dargestellt, wartet die Steuerung, bis sie eine normale erste (Standard-)Abfrage des Bereit-/Belegt-Status des Dies durchführt. Die Steuerung fragt dann den Status des Dies periodisch ab, bis der Status schließlich als bereit angegeben wird, wonach die Steuerung, wie durch Block 616 dargestellt, einen Bericht an die Host-Vorrichtung ausgibt, dass der Status des Dies normal ist. Zum Beispiel, unter Bezugnahme auf 4, empfängt die Steuerung einen Belegt-Status 420 als Reaktion auf die Abfrage von dem Die, nachdem das Die die DCD-Statusabfrage 414 von der Steuerung empfängt, wenn das Die den Lesebefehl 402 korrekt ausführt. Basierend auf diesem Belegt-Status 420 kann die Steuerung bestimmen, dass der Befehl nicht verworfen wurde, und die Steuerung kann damit fortfahren, mit anderen Dies unter Verwendung des Busses zu interagieren, bis der Befehl vollständig ausgeführt ist und das Die bereit wird. Die Steuerung kann bestimmen, wann das Die bereit wird, indem sie den Bereit-/Belegt-Status des Dies abfragt, nachdem die maximal erwartete Zeit für die Befehlsausführung (z. B. die Standardverzögerung 422) beendet ist. Zum Beispiel, nachdem die Standardverzögerung 422 abgelaufen ist, kann die Steuerung periodisch Statusbefehlsabfragen 424 an das Die senden, um zu bestimmen, ob das Die noch belegt ist (z. B. gibt das Die einen weiteren Belegt-Status 426 zurück) oder bereit wird. Sobald das Die bereit wird, kann die Steuerung die Host-Vorrichtung darüber benachrichtigen, dass der Betrieb des Dies normal verläuft.
  • Wenn jedoch das Die basierend auf der Bestimmung bei Block 612 als bereit angegeben wird, dann detektiert die Steuerung, dass der Befehl verworfen wurde, und wie durch Block 618 dargestellt, gibt die Steuerung einen Fehler an das System aus, um den Befehl zu wiederholen oder eine andere Behandlung durchzuführen. Wenn zum Beispiel unter Bezugnahme auf 4 das Die als Reaktion auf die DCD-Statusabfrage 414 nicht den Belegt-Status 420 zurückgibt und stattdessen einen Bereit-Status zurückgibt, kann die Steuerung bestimmen, dass der Befehl verworfen wurde (z. B. aufgrund einer Verzögerung der CE-zu-CE-Auswahl) und dass der Lesebefehl 402 nicht korrekt ausgeführt wurde. Dadurch kann die Steuerung Abhilfemaßnahmen einbeziehen, wie Benachrichtigen der Host-Vorrichtung, erneutes Senden des Lesebefehls 402 oder Durchführen anderer Fehlerkorrekturmaßnahmen.
  • 7 veranschaulicht ein beispielhaftes Flussdiagramm 700 eines anderen Verfahrens zur Detektion eines verworfenen Befehls. Zum Beispiel kann das Verfahren in einer Speichervorrichtung 102, wie der in 1 veranschaulichten, ausgeführt werden. Jeder der Schritte in dem Flussdiagramm kann unter Verwendung der Steuerung wie unten beschrieben (z. B. der Steuerung 123) oder durch ein beliebiges anderes geeignetes Mittel gesteuert werden.
  • Wie durch Block 702 dargestellt, kann die Steuerung von einer Host-Vorrichtung einen Befehl empfangen, der Daten für einen Speicherort einer Vielzahl von Speicherorten zugeordnet ist. Die Vielzahl von Speicherorten kann durch ein oder mehrere CE-Signale gesteuert werden; zum Beispiel kann die Vielzahl von Speicherorten Dies umfassen, die einen einzelnen Bus mit der Steuerung teilen. Ein Die-Status kann in dem Speicherort gespeichert sein, und der Die-Status kann eines von einem Bereit-Status oder einem Belegt-Status einschließen. Zum Beispiel, unter Bezugnahme auf 3, kann die Steuerung 302 Befehle von einer Host-Vorrichtung (z. B. der Host-Vorrichtung 104) für Daten auf verschiedenen Dies 304, die einen Bus 306 teilen, empfangen. Zum Beispiel kann die Steuerung 302 einen ersten Lesebefehl für Daten auf einem der Dies 304 (z. B. einem ersten Die) empfangen und kann die Steuerung 302 einen zweiten Lesebefehl für Daten auf einem anderen der Dies 304 (z. B. einem zweiten Die) empfangen. Die Steuerung 302 kann der Steuerung 123 von 1 entsprechen, und die Dies 304 können den Speicherorten 112 von 1 entsprechen. Jedes Die kann verschiedene Stifte, wie einen CE 308, der eingerichtet ist, um ein Chip-Enable-Signal von der Steuerung zu empfangen, einen Eingabe/Ausgabe (E/A) 310, der eingerichtet ist, um Befehle von der Steuerung (z. B. zum Lesen, Schreiben oder Löschen von Daten) zu empfangen, und einen Bereit/Belegt (R/B) 312, der eingerichtet ist, um einen Bereit- oder Belegt-Status (einen-Die-Status, der in dem Speicher des Dies gespeichert ist) an die Steuerung auszugeben, einschließen.
  • Wie durch Block 704 dargestellt, kann die Steuerung den Speicherort unter Verwendung des einen oder der mehreren CE-Signale auswählen. Zum Beispiel, unter Bezugnahme auf 3, wenn die Steuerung 302 den ersten Lesebefehl für eines der Dies 304 (z. B. das erste Die) ausführt, kann die Steuerung ein CE-Signal auf dem Bus 306 an den CE 308 des ersten Dies senden, und wenn die Steuerung den zweiten Lesebefehl für einen anderen der Dies 304 (z. B. den zweiten Die) ausführt, kann die Steuerung ein CE-Signal auf dem Bus 306 an den CE 308 des zweiten Dies senden. Nach einem vorkonfigurierten Zeitraum (z. B. der oben beschriebenen tCS) kann die Steuerung 302 einen Befehl auf dem Bus 306 an den E/A 310 senden, um die Daten von dem entsprechenden Die zu lesen.
  • Wie durch Block 706 dargestellt, kann die Steuerung einen Zeitraum tDCDmin <= t < tDCDmax nach dem Empfangen des Befehls zum Abfragen des in dem Speicher gespeicherten Die-Status warten, wobei fDCDmin eine minimale Zeit ist, bis zu der erwartet wird, dass der Befehl die Ausführung beginnt, und tDCDmax eine minimale Zeit ist, bis zu der erwartet wird, dass der Befehl die Ausführung beendet. fDCDmin und tDCDmax kann für verschiedene Dies unterschiedlich sein. Zum Beispiel, unter Bezugnahme auf 6, wie durch Block 608 dargestellt, kann die Steuerung für eine Zeit t warten, wobei tDCD_min <= t < tDCD_max, bevor sie den Bereit-/Belegt-Status des Dies abfragt. Zum Beispiel, unter Bezugnahme auf 4, kann die Steuerung nach dem Ausgeben des Lesebefehls für ein bestimmtes Die zwischen einer minimalen Zeit 410 für den Befehl zum Initialisieren oder Beginnen der Ausführung und einer maximalen Zeit 412 für den Befehl zum Beenden der Ausführung warten, bevor sie einen Bereit-/Belegt-Status dieses Dies abfragt. Unter Bezugnahme auf 5 kann die minimale Zeit 510 (z. B. die minimale Zeit 410) eingerichtet sein, um eine kürzeste Zeit zu sein, in der erwartet wird, dass der Befehl die Ausführung in dem Die bei oder nach der Zeitsteuerung 504 beginnt, und kann die maximale Zeit 512 (z. B. die maximale Zeit 412) eingerichtet sein, um eine kürzeste Zeit zu sein, in der erwartet wird, dass der Befehl die Ausführung innerhalb der Zeitsteuerung 506 beendet. Somit können die minimale Zeit und die maximale Zeit für verschiedene Dies unterschiedlich sein (z. B. kann jedes tDCD-Minimum/Maximum-Paar von einem spezifischen NAND-Knoten abhängen), weil die Zeitsteuerung 504 und die Zeitsteuerung 506 nicht immer für jedes Die gleich sein können.
  • Wie durch Block 708 dargestellt, kann die Steuerung den Die-Status abfragen, nachdem sie den Speicherort ausgewählt und den Zeitraum gewartet hat. Die Steuerung kann den Die-Status durch eines von Senden von Statusbefehlen an eines der Dies auf dem einzelnen Bus oder Lesen eines belegten Drahts von einem der Dies abfragen. Zum Beispiel, unter Bezugnahme auf 6, wie durch 610 Block dargestellt, kann die Steuerung einen Bereit-/Belegt-Status des Dies abfragen. Zum Beispiel, unter Bezugnahme auf 4, kann die Steuerung eine DCD-Statusabfrage 414 des Die-Status (z. B. bereit oder belegt) des Dies durchführen, sobald die Steuerung bis zu einem Zeitpunkt (z. B. tDCD) innerhalb dieses Zeitrahmens gewartet hat. Zum Beispiel kann die Steuerung einen Statusbefehl auf dem Bus 306 an das Die 304 über den E/A 310 senden. Als ein Beispiel des Statusbefehls kann die Steuerung den Anfangsbefehl 416 (z. B. F1h) unmittelbar gefolgt von dem Nachbefehl 418 (z. B. 71h) senden, um eine DCD an einem identifizierten Die durchzuführen. Alternativ dazu kann die Steuerung den Bereit-/Belegt-Status von dem Die über einen Draht, der mit dem Stift R/B 312 verbunden ist, lesen.
  • Wie durch Block 710 dargestellt, kann die Steuerung basierend auf dem Die-Status detektieren, ob der Befehl, der den Daten zugeordnet ist, verworfen wird. Zum Beispiel, unter Bezugnahme auf 4, gibt das Die einen Bereit-Status an die Steuerung als Reaktion auf die Abfrage zurück, nachdem das Die die DCD-Statusabfrage 414 von der Steuerung empfängt, wenn das Die keinen Befehl ausführt. Zum Beispiel kann das Die 304 eine Statusantwort, einschließlich seines Bereit-Status, an die Steuerung auf dem Bus 306 über den E/A 310 berichten oder kann das Die eine „1“ (bereit) auf dem Bus 306 über den R/B 312 zurückgeben. Basierend auf dem identifizierten Status kann die Steuerung bestimmen, dass der Befehl verworfen wurde und dass der Lesebefehl 402 nicht korrekt ausgeführt wurde, weil die Steuerung einen Bereit-Status empfangen hat, während sie einen Belegt-Status erwartete.
  • Wenn der Befehl verworfen wird, dann kann die Steuerung, wie durch Block 712 dargestellt, von der Host-Vorrichtung anfordern, den Befehl erneut auszugeben, wenn der Die-Status der Bereit-Status ist. Zum Beispiel, unter Bezugnahme auf 6, wie durch Block 618 dargestellt, kann die Steuerung einen Fehler an das System ausgeben, um den Befehl zu wiederholen oder eine andere Behandlung durchzuführen. Wenn zum Beispiel unter Bezugnahme auf 4 das Die als Reaktion auf die DCD-Statusabfrage 414 keinen Belegt-Status 420 zurückgibt und stattdessen einen Bereit-Status zurückgibt, kann die Steuerung bestimmen, dass der Befehl verworfen wurde (z. B. aufgrund einer Verzögerung der CE-zu-CE-Auswahl) und dass der Lesebefehl 402 nicht korrekt ausgeführt wurde. Dadurch kann die Steuerung Abhilfemaßnahmen einbeziehen, wie Benachrichtigen der Host-Vorrichtung, erneutes Senden des Lesebefehls 402 oder Durchführen anderer Fehlerkorrekturmaßnahmen.
  • Ansonsten, wie durch Block 714 dargestellt, fragt die Steuerung den Die-Status wiederholt ab, wenn der Die-Status der Belegt-Status ist, bis der Die-Status der Bereit-Status wird. Zum Beispiel, unter Bezugnahme auf 6, wenn das Die als belegt angegeben wird, dann wartet die Steuerung, wie durch Block 614 dargestellt, bis sie eine normale erste (Standard-)Abfrage des Bereit-/Belegt-Status des Dies durchführt. Die Steuerung fragt dann periodisch den Status des Dies ab, bis der Status schließlich als bereit angegeben wird. Zum Beispiel, nachdem die Standardverzögerung 422 abgelaufen ist, kann die Steuerung periodisch Statusbefehlsabfragen 424 an das Die senden, um zu bestimmen, ob das Die noch belegt ist (z. B. gibt das Die einen weiteren Belegt-Status 426 zurück) oder bereit wird. Sobald das Die bereit wird, kann die Steuerung die Host-Vorrichtung darüber benachrichtigen, dass der Betrieb des Dies normal verläuft.
  • Entsprechend ermöglicht die vorliegende Offenbarung eine Detektion verworfener Befehle, während sie die Systemstabilität erhöht, die Leistung erhöht und die Auswirkung verworfener Befehle auf die Dienstgüte (Quality of Service, QoS) reduziert. Die Systemstabilität kann erhöht werden, indem es ermöglicht wird, verworfene Befehle zu detektieren, ohne die Zeit zwischen dem Zeitpunkt, an dem Dies unter Verwendung von CE ausgewählt werden, und dem Zeitpunkt, an dem jeder Befehl schließlich ausgeführt wird, global zu erhöhen (z. B., ohne tCS zu erhöhen), weil ein solcher Ansatz nicht einmal die Detektion verworfener Befehle, wie oben beschrieben, gewährleisten kann. Die Leistung kann somit erhöht werden, ohne die Systemstabilität zu beeinflussen, indem eine Erhöhung von tCS vermieden wird, wodurch es ermöglicht wird, dass Befehle eine schnelle Ausführung beibehalten. Darüber hinaus können Lesevorgänge mit einer verbesserten QoS durchgeführt werden, weil die Speichervorrichtung bestimmen kann, dass die Leseerfassung nicht korrekt ausgeführt wurde, und dadurch können unbeabsichtigte Daten (z. B. zuvor gelesenene Daten für einen anderen Befehl, die ein Decodieren oder ECC-Überprüfungen bestehen) oder ungültige Daten (z. B. Daten, die nicht decodiert werden und somit einen Fehlerwiederherstellungspfad erzwingen können) detektiert werden, bevor sie an die Host-Vorrichtung übertragen werden.
  • Die verschiedenen Gesichtspunkte dieser Offenbarung werden bereitgestellt, um es einem Fachmann zu ermöglichen, die vorliegende Erfindung praktisch umzusetzen. Verschiedene Modifikationen an beispielhaften Ausführungsformen, die in dieser Offenbarung dargestellt werden, werden für den Fachmann leicht ersichtlich sein, und die hierin offenbarten Konzepte können auf andere magnetische Speichervorrichtungen ausgedehnt werden. Daher sollen die Ansprüche nicht auf die verschiedenen Gesichtspunkte dieser Offenbarung beschränkt sein, sondern es soll ihnen der volle Schutzumfang in Übereinstimmung mit der Formulierung der Ansprüche gewährt werden. Alle strukturellen und funktionalen Äquivalente zu den verschiedenen Komponenten der beispielhaften Ausführungsformen, die in dieser Offenbarung beschrieben sind und die einem Fachmann bekannt sind oder später bekannt werden, werden hiermit ausdrücklich durch Bezugnahme aufgenommen und sollen durch die Ansprüche 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. Kein Anspruchselement ist gemäß den Bestimmungen von 35 U.S.C. § 112(f) in den Vereinigten Staaten oder eines analogen Gesetzes oder Rechtsgrundsatzes in einer anderen Region zu verstehen, sofern das Element nicht explizit unter Verwendung des Ausdrucks „Mittel für“ oder im Falle eines Verfahrensanspruchs unter Verwendung des Ausdrucks „Schritt für“ erwähnt wird.

Claims (20)

  1. Speichervorrichtung, aufweisend: Speicher, der eingerichtet ist, um Daten und einen Die-Status für einen Befehl, der den Daten zugeordnet ist, zu speichern, wobei der Die-Status eines von einem Bereit-Status oder einem Belegt-Status einschließt; und eine Steuerung, die eingerichtet ist, um von einer Host-Vorrichtung den Befehl, der den Daten zugeordnet ist, zu empfangen, wobei die Steuerung weiterhin eingerichtet ist, um einen Zeitraum tDCDmin <= t < tDCDmax nach dem Empfangen des Befehls zum Abfragen des Die-Status zu warten, wobei tDCDmin eine minimale Zeit ist, bis zu der erwartet wird, dass der Befehl die Ausführung beginnt, und tDCDmax eine minimale Zeit ist, bis zu der erwartet wird, dass der Befehl die Ausführung beendet; und wobei die Steuerung weiterhin eingerichtet ist, um den Die-Status nach dem Warten des Zeitraums abzufragen und um zu detektieren, ob der Befehl, der den Daten zugeordnet ist, basierend auf dem Die-Status verworfen wird.
  2. Speichervorrichtung gemäß Anspruch 1, wobei der Speicher eine Vielzahl von Speicherorten einschließt, die durch ein oder mehrere Chip-Enable-Signale (CE-Signale) gesteuert werden, und der Befehl, der den Daten zugeordnet ist, für einen Speicherort der Vielzahl von Speicherorten ist.
  3. Speichervorrichtung gemäß Anspruch 2, wobei die Steuerung weiterhin eingerichtet ist, um den Speicherort unter Verwendung des einen oder der mehreren CE-Signale auszuwählen und den Die-Status für den Befehl abzufragen, nachdem sie den Speicherort ausgewählt hat.
  4. Speichervorrichtung gemäß Anspruch 3, wobei die Vielzahl von Speicherorten Dies aufweisen, die einen einzelnen Bus mit der Steuerung teilen.
  5. Speichervorrichtung gemäß Anspruch 1, wobei die Steuerung eingerichtet ist, um zu detektieren, dass der Befehl, der den Daten zugeordnet ist, verworfen wird, und um anschließend von der Host-Vorrichtung anzufordern, den Befehl erneut auszugeben, wenn der Die-Status der Bereit-Status ist.
  6. Speichervorrichtung gemäß Anspruch 1, wobei die Steuerung weiterhin eingerichtet ist, um den Die-Status wiederholt abzurufen, wenn der Die-Status der Belegt-Status ist, bis der Die-Status der Bereit-Status wird.
  7. Speichervorrichtung, aufweisend: Speicher, der eingerichtet ist, um Daten und einen Die-Status für einen Befehl, der den Daten zugeordnet ist, zu speichern, wobei der Speicher eine Vielzahl von Speicherorten einschließt, die durch ein oder mehrere Chip-Enable-Signale (CE-Signale) gesteuert werden; und eine Steuerung, die eingerichtet ist, um von einer Host-Vorrichtung den Befehl, der den Daten zugeordnet ist, für einen Speicherort der Vielzahl von Speicherorten zu empfangen und um den Speicherort unter Verwendung des einen oder der mehreren CE-Signale auszuwählen, wobei die Steuerung weiterhin eingerichtet ist, um einen Zeitraum tDCDmin <= t < tDCDmax nach dem Empfangen des Befehls zum Abfragen des Die-Status zu warten, wobei tDCDmin eine minimale Zeit ist, bis zu der erwartet wird, dass der Befehl die Ausführung beginnt, und tDCDmax eine minimale Zeit ist, bis zu der erwartet wird, dass der Befehl die Ausführung beendet; und wobei die Steuerung weiterhin eingerichtet ist, um den Die-Status nach dem Warten des Zeitraums abzufragen und um zu detektieren, ob der Befehl, der den Daten zugeordnet ist, basierend auf dem Die-Status verworfen wird, wobei der Die-Status eines von einem Bereit-Status oder einem Belegt-Status einschließt.
  8. Speichervorrichtung gemäß Anspruch 7, wobei die Vielzahl von Speicherorten Dies aufweisen, die einen einzelnen Bus mit der Steuerung teilen.
  9. Speichervorrichtung gemäß Anspruch 8, wobei die Steuerung eingerichtet ist, um den Die-Status abzufragen durch eines von: Senden von Statusbefehlen an einen der Dies auf dem einzelnen Bus oder Lesen eines belegten Drahts von dem einem der Dies.
  10. Speichervorrichtung gemäß Anspruch 8, wobei fDCDmin und tDCDmax für verschiedene Dies unterschiedlich sind.
  11. Speichervorrichtung gemäß Anspruch 7, wobei die Steuerung eingerichtet ist, um zu detektieren, dass der Befehl, der den Daten zugeordnet ist, verworfen wird, wenn der Die-Status der Bereit-Status ist.
  12. Speichervorrichtung gemäß Anspruch 11, wobei die Steuerung weiterhin eingerichtet ist, um von der Host-Vorrichtung anzufordern, den Befehl erneut auszugeben, wenn der Die-Status der Bereit-Status ist.
  13. Speichervorrichtung gemäß Anspruch 7, wobei die Steuerung weiterhin eingerichtet ist, um den Die-Status wiederholt abzurufen, wenn der Die-Status der Belegt-Status ist, bis der Die-Status der Bereit-Status wird.
  14. Speichervorrichtung, aufweisend: Speicher, der eingerichtet ist, um Daten und einen Die-Status für einen Befehl, der den Daten zugeordnet ist, zu speichern, wobei der Die-Status eines von einem Bereit-Status oder einem Belegt-Status einschließt; und eine Steuerung, die eingerichtet ist, um von einer Host-Vorrichtung den Befehl, der den Daten zugeordnet ist, zu empfangen, wobei die Steuerung weiterhin eingerichtet ist, um einen Zeitraum tDCDmin <= t < tDCDmax nach dem Empfangen des Befehls zum Abfragen des Die-Status zu warten, wobei tDCDmin eine minimale Zeit ist, bis zu der erwartet wird, dass der Befehl die Ausführung beginnt, und tDCDmax eine minimale Zeit ist, bis zu der erwartet wird, dass der Befehl die Ausführung beendet; und wobei die Steuerung weiterhin eingerichtet ist, um den Die-Status nach dem Warten des Zeitraums abzufragen und um zu detektieren, dass der Befehl, der den Daten zugeordnet ist, verworfen wird, und um von der Host-Vorrichtung anzufordern, den Befehl erneut auszugeben, wenn der Die-Status der Bereit-Status ist.
  15. Speichervorrichtung gemäß Anspruch 14, wobei der Speicher eine Vielzahl von Speicherorten einschließt, die durch ein oder mehrere Chip-Enable-Signale (CE-Signale) gesteuert werden, und der Befehl, der den Daten zugeordnet ist, für einen Speicherort der Vielzahl von Speicherorten ist.
  16. Speichervorrichtung gemäß Anspruch 15, wobei die Steuerung weiterhin eingerichtet ist, um den Speicherort unter Verwendung des einen oder der mehreren CE-Signale auszuwählen und den Die-Status für den Befehl abzufragen, nachdem sie den Speicherort ausgewählt hat.
  17. Speichervorrichtung gemäß Anspruch 15, wobei die Vielzahl von Speicherorten Dies aufweisen, die einen einzelnen Bus mit der Steuerung teilen.
  18. Speichervorrichtung gemäß Anspruch 17, wobei die Steuerung eingerichtet ist, um den Die-Status abzufragen durch eines von: Senden von Statusbefehlen an einen der Dies auf dem einzelnen Bus oder Lesen eines belegten Drahts von dem einem der Dies.
  19. Speichervorrichtung gemäß Anspruch 17, wobei fDCDmin und tDCDmax für verschiedene Dies unterschiedlich sind.
  20. Speichervorrichtung gemäß Anspruch 14, wobei die Steuerung weiterhin eingerichtet ist, um den Die-Status wiederholt abzurufen, wenn der Die-Status der Belegt-Status ist, bis der Die-Status der Bereit-Status wird.
DE102020116192.1A 2020-02-10 2020-06-18 Nand-detektion und -wiederherstellung eines verworfenen befehls Pending DE102020116192A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/786,889 US11150841B2 (en) 2020-02-10 2020-02-10 NAND dropped command detection and recovery
US16/786,889 2020-02-10

Publications (1)

Publication Number Publication Date
DE102020116192A1 true DE102020116192A1 (de) 2021-08-12

Family

ID=76968730

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020116192.1A Pending DE102020116192A1 (de) 2020-02-10 2020-06-18 Nand-detektion und -wiederherstellung eines verworfenen befehls

Country Status (4)

Country Link
US (2) US11150841B2 (de)
KR (1) KR102500896B1 (de)
CN (1) CN113253910A (de)
DE (1) DE102020116192A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11586393B2 (en) * 2020-12-30 2023-02-21 Macronix International Co., Ltd. Control method for requesting status of flash memory, flash memory die and flash memory with the same
US11836384B2 (en) 2022-03-10 2023-12-05 Western Digital Technologies, Inc. Automatic prediction timers adaptation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0778777B2 (ja) 1991-02-19 1995-08-23 インターナショナル・ビジネス・マシーンズ・コーポレイション ディジタルコンピュータとメモリの通信方法および通信システム
KR100365690B1 (ko) * 2000-08-08 2002-12-26 삼성전자 주식회사 불휘발성 메모리, 복수개의 불휘발성 메모리들을 구비한시스템 , 및 이 시스템의 데이터 리드 방법
US7793167B2 (en) 2007-08-23 2010-09-07 International Business Machines Corporation Detection and correction of dropped write errors in a data storage system
US8438356B2 (en) 2007-10-01 2013-05-07 Marvell World Trade Ltd. Flash memory controller
US20090172213A1 (en) 2007-12-31 2009-07-02 Sowmiya Jayachandran Command completion detection in a mass storage device
US8819328B2 (en) * 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US8543758B2 (en) * 2011-05-31 2013-09-24 Micron Technology, Inc. Apparatus including memory channel control circuit and related methods for relaying commands to logical units
US8996782B2 (en) 2012-03-23 2015-03-31 Kabushiki Kaisha Toshiba Memory system and bank interleaving method
US9335952B2 (en) 2013-03-01 2016-05-10 Ocz Storage Solutions, Inc. System and method for polling the status of memory devices
US9218279B2 (en) * 2013-03-15 2015-12-22 Western Digital Technologies, Inc. Atomic write command support in a solid state drive
US9620182B2 (en) * 2013-12-31 2017-04-11 Sandisk Technologies Llc Pulse mechanism for memory circuit interruption
KR102417696B1 (ko) * 2018-03-20 2022-07-07 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법

Also Published As

Publication number Publication date
KR20210102019A (ko) 2021-08-19
US20220019382A1 (en) 2022-01-20
US11726717B2 (en) 2023-08-15
CN113253910A (zh) 2021-08-13
US11150841B2 (en) 2021-10-19
KR102500896B1 (ko) 2023-02-16
US20210247931A1 (en) 2021-08-12

Similar Documents

Publication Publication Date Title
DE102015014851B4 (de) Ressourcenzuteilung und -freigabe für die Energieverwaltung in Vorrichtungen
DE102006002526B4 (de) Steuervorrichtung für eine Solid-State-Disk und Verfahren zum Betreiben derselben
DE112018000180T5 (de) System und verfahren zum adaptiven senden frühzeitiger beendigung unter verwendung eines steuerungsspeicherpuffers
DE112011106013T5 (de) System und Verfahren für den intelligenten Datentransfer von einem Prozessor in ein Speicheruntersystem
DE102016009806A1 (de) Speichern von paritätsdaten getrennt von geschützten daten
DE112017003334T5 (de) Lastreduzierte nichtflüchtige speicherschnittstelle
DE102017104125A1 (de) Zonen von Übersetzungstabellen von logischen in physische Datenadressen mit parallelisiertem Log-Listenreplay
DE112020005060T5 (de) Ratengrenze für den übergang von zonen zum öffnen
DE112016004314T5 (de) Programmierbare zeitgebung von chipinterner terminierung in einem mehrrangigen system
DE102020130044A1 (de) Techniken zum verhindern von lese-störung in nand-speicher
DE112017001471T5 (de) Mehrebenen-speichermanagement
DE102017104150A1 (de) Abnutzungsausgleich in Speichervorrichtungen
DE102008036822A1 (de) Verfahren zum Speichern von Daten in einem Solid-State-Speicher, Solid-State-Speichersystem und Computersystem
DE102009037984A1 (de) Speichervorrichtung für eine Hierarchische Speicherarchitektur
DE112013003255T5 (de) Managementmechanismus für fehlerhafte Blöcke
DE102013016993A1 (de) Embedded Multimedia Card (eMMC), einen Host steuernde eMMC und Verfahren zum Betreiben eines eMMC-Systems
DE102020115970B3 (de) Befehlsoptimierung durch intelligente schwellwertdetektion
DE102021114457A1 (de) Abwicklung von lesen in vorrichtungen mit in zonen unterteiltem namensraum
DE102018123937A1 (de) Verwalten von Flash-Speicher-Lesevorgängen
DE102020116366A1 (de) System und verfahren für reduzierte latenz von lese-, änderungs- und schreibvorgängen
DE102020116192A1 (de) Nand-detektion und -wiederherstellung eines verworfenen befehls
DE102019104871A1 (de) Nichtflüchtige dateiaktualisierungsmedien
DE102018005453A1 (de) Methoden, um Cache-Kohärenz basierend auf Cache-Typ bereitzustellen
DE112020005395T5 (de) Kapazitätserweiterung für speicher-untersysteme
DE102019112291A1 (de) Verbessertes speicherungsmodell für ein computersystem mit persistentem systemspeicher

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 PARTNERSCHAFT MBB, DE