DE112020000178T5 - Verwaltung von in zonen unterteilten namensräumen nichtflüchtiger speicherungsvorrichtungen - Google Patents

Verwaltung von in zonen unterteilten namensräumen nichtflüchtiger speicherungsvorrichtungen Download PDF

Info

Publication number
DE112020000178T5
DE112020000178T5 DE112020000178.4T DE112020000178T DE112020000178T5 DE 112020000178 T5 DE112020000178 T5 DE 112020000178T5 DE 112020000178 T DE112020000178 T DE 112020000178T DE 112020000178 T5 DE112020000178 T5 DE 112020000178T5
Authority
DE
Germany
Prior art keywords
zone
metric
storage
host
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
DE112020000178.4T
Other languages
English (en)
Inventor
Judah Gamliel Hahn
Ariel Navon
Idan Alrod
Eran Sharon
Shay Benisty
Joe Meza
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 DE112020000178T5 publication Critical patent/DE112020000178T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/102Error in check bits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3086Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves the use of self describing data formats, i.e. metadata, markup languages, human readable formats
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects

Abstract

Diese Offenbarung bezieht sich auf eine Einrichtung, die einen Zonenmanager zum Verwalten der Speicherzuweisung und des Verhaltens bei einer Implementierung von in Zonen unterteilten Namensräumen (ZNS) einschließt. Der Zonenmanager kann eine Überwachungsschaltung, eine Auswerteschaltung und eine Signalisierungsschaltung einschließen. Die Überwachungsschaltung ist eingerichtet, um eine Zonenmetrik für jede Zone einer nichtflüchtigen Speicherungsvorrichtung zu überwachen. Die Auswerteschaltung ist eingerichtet, um den Zustand für jede Zone basierend auf der Zonenmetrik zu bestimmen. Die Signalisierungsschaltung ist eingerichtet, um einen Host über den Zonenzustand für eine oder mehrere Zonen als Reaktion darauf zu benachrichtigen, dass die Zonenmetrik für die Zone(n) einen Alarmschwellenwert erfüllt.

Description

  • HINTERGRUND
  • Der Standard Zoned Namespace (ZNS) ist ein neuer Standard bei der Speicherungsverwaltung, bei dem die Speicherungsvorrichtung auf ein Schreiben ausschließlich in sequentieller Reihenfolge innerhalb von Zonen beschränkt ist. ZNS soll die vorrichtungsseitige Schreibverstärkung und Überbereitstellung reduzieren, indem Host-Schreibmuster mit interner Vorrichtungsgeometrie ausgerichtet werden und die Notwendigkeit für vorrichtungsseitige Schreibvorgänge, die nicht direkt mit einem Host-Schreibvorgang von Host-Daten verknüpft sind, reduziert wird. Nähere Einzelheiten, die dieses Konzept beschreiben, finden sich auf der Website zonedstorage.io.
  • „Zone‟ bezieht sich auf einen Satz von Speicherzellen, die so eingerichtet sind, dass Speicherzellen nur als Reaktion auf einen Schreibbefehl von einem Host geschrieben werden, Datenblöcke von Speicherzellen zufällig adressierbar sind und alle Speicherzellen in einer Zone als Reaktion auf einen Löschvorgang gelöscht werden. Der Satz von Speicherzellen, die eine Zone bilden, kann auf eine Vielfalt von Arten eingerichtet werden.
  • In einer Ausführungsform weist eine Zone Speicherzellen eines Löschblocks, wie eines physischen Löschblocks, aus jeder Ebene von zwei oder mehr Speicher-Dies auf. In einer Ausführungsform weist eine Zone einen Satz logischer Löschblöcke auf, wobei jeder logische Löschblock Speicherzellen eines physischen Löschblocks aus jeder physischen Ebene von zwei oder mehr Speicher-Dies einer nichtflüchtigen Speichervorrichtung aufweist.
  • In Ausführungsformen, die einen der Standards für in Zonen unterteilte Speicherungsvorrichtungen für eine Zone implementieren, wie ZBC, ZNS oder OpenChannel, werden die Speicherzellen einer Zone so verwaltet und eingerichtet, dass in Zonen nur in einer sequenziellen Reihenfolge mit einem Schreibzeiger geschrieben wird, der den physischen Ort für einen nachfolgenden Schreibvorgang identifiziert. Außerdem können Daten in einer Zone nicht direkt überschrieben werden. Die Zone muss zunächst mit einem speziellen Befehl gelöscht werden (Zonen-Reset). (Siehe Einführungsseite auf der zonedstorage.io Website bearbeitet).
  • Zonen können unter Verwendung verschiedener Aufzeichnungs- und Medientechnologien implementiert werden. Eine gängige Form der Zonenspeicherung verwendet heute die SCSI-Schnittstellen „Zoned Block Commands“ (ZBC) und „Zoned ATA Commands“ (ZAC) auf SMR-HDDs (Shingled-Magnetic-Recording-Festplattenlaufwerke). ZBC und ZAC ermöglichen ein in Zonen unterteiltes Blockspeichermodell; Die SMR-Technologie ermöglicht eine fortgesetzte Flächendichtezunahme, um die Anforderungen zum Erweitern des Datenbedarfs zu erfüllen, und kann das in Zonen unterteilte Blockzugriffsmodell verwenden. Ebd. Mit Bearbeitungen
  • Festkörperplatten-Speicherungsvorrichtungen (SSD-Speicherungsvorrichtungen) können auch eine in Zonen unterteilte Schnittstelle implementieren, um die Schreibverstärkung zu reduzieren, die Beanspruchung des DRAM der Vorrichtung zu reduzieren und die Servicequalität im Maßstab zu verbessern. Ebd. Bearbeitet.
  • Die Quertemperatur ist ein gängiges Phänomen in NAND-Flash-Speichern, das sich auf Temperaturdifferenzen zwischen Speicherungsvorgängen bezieht. „Quertemperatur“ bezieht sich auf einen Zustand, in dem sich eine Temperatur einer Speicherzelle zu einem Zeitpunkt, zu dem die Speicherzelle gelesen/abgetastet wird, von einer Temperatur derselben Speicherzelle unterscheidet, als in die Speicherzelle geschrieben (programmiert) wurde. Wenn in bestimmten Arten von nichtflüchtigen Speichermedien, wie NAND-Speicherzellen, die Differenz zwischen der Temperatur, wenn die Speicherzelle beschrieben wird, und wenn sie gelesen wird, ausreichend hoch ist, ist die Speicherzelle nicht lesbar (ein Lesebefehl führt zu einem Fehler). Derzeitige, nichtflüchtige Speicherungsvorrichtungen weisen Gegenmaßnahmen auf, sodass in einem nichtflüchtigen Speicher gespeicherte Daten, die einer Quertemperatur ausgesetzt sind, gelesen werden können, jedoch sollte die nichtflüchtige Speicherungsvorrichtung einen Quertemperaturzustand erkennen, sodass diese Gegenmaßnahmen ergriffen werden können.
  • Dieses Quertemperaturphänomen bewirkt bekanntlich sowohl eine Verschiebung der Schwellenspannungsverteilungen als auch eine Verbreiterung der Schwellenspannungsverteilungen. Das Verschiebungsproblem kann mit angemessenem Erfolg gehandhabt werden (z. B. durch Erkennung der Quertemperatur pro Block und Anwendung einer entsprechenden variierenden Leseschwellenkompensation), die Verschiebungsphänomene werden jedoch immer noch als Herausforderung für den Fehlerkorrekturcode und die Speicherverwaltung angesehen. Die Verschiebungsphänomene können sich auf die variierende Empfindlichkeit der verschiedenen NAND-Zellen gegenüber der Quertemperatur beziehen (und somit reagieren verschiedene Zellen mit einer anderen Lesespannungsverschiebung auf eine bestimmte Quertemperatur).
  • Bei derzeitigen Ansätzen zur ZNS-Implementierung werden der Quertemperaturzustand und der physische Blockzustand nicht berücksichtigt. Da mehrere Zonen parallel verwaltet werden und für eine signifikante Zeitspanne offen gehalten werden können, können Quertemperatureffekte signifikant sein. Da der Blockzustand bei der Zuweisung physischer Blöcke zu verschiedenen Zonen nicht berücksichtigt wird, können Zonen mit einem Ungleichgewicht des Zustands zugewiesen werden, was zu unterschiedlicher Leistung führt und die Erfüllung von Anforderungen an die Servicequalität beeinträchtigt. Daher ist eine ZNS-Systemstrategie erforderlich, um Probleme auf Zonenebene zu bewältigen, die insbesondere aufgrund der großen Anzahl von offenen Zonen auftreten können, was eine inhärente Eigenschaft von ZNS-basierten Speichersystemen ist.
  • KU RZDARSTELLU NG
  • Diese Offenbarung bezieht sich auf eine Einrichtung, die einen Zonenmanager zum Verwalten der Speicherzuweisung und des Verhaltens bei einer Implementierung von in Zonen unterteilten Namensräumen (ZNS) aufweist. Der Zonenmanager kann eine Überwachungsschaltung, eine Auswerteschaltung und eine Signalisierungsschaltung aufweisen. Die Überwachungsschaltung kann eingerichtet sein, um eine Zonenmetrik für jede Zone einer nichtflüchtigen Speicherungsvorrichtung zu überwachen. Die Auswerteschaltung kann eingerichtet sein, um den Zustand für jede Zone basierend auf der Zonenmetrik zu bestimmen. Die Signalisierungsschaltung kann eingerichtet sein, um einen Host über den Zonenzustand für eine oder mehrere Zonen als Reaktion darauf zu benachrichtigen, dass die Zonenmetrik für die Zone(n) einen Alarmschwellenwert erfüllt.
  • Diese Offenbarung betrifft weiterhin ein Speicherungssystem, das flüchtigen Speicher und ein nichtflüchtiges Speicherarray aufweist, das eine Vielzahl von Speicher-Dies einschließt. Das System kann auch eine Speicherungssteuerung aufweisen, die mit dem flüchtigen Speicher und dem nichtflüchtigen Speicherarray gekoppelt ist. Die Speicherungssteuerung kann einen Zonenmanager aufweisen, der eingerichtet ist, um sich mit einem Host zu verbinden und eine Vielzahl von Zonen innerhalb des nichtflüchtigen Speicherarrays mittels eines Standards für in Zonen unterteilte Speicherungsvorrichtungen zu verwalten. Die Speicherungssteuerung kann auch einen Temperaturmanager aufweisen. Der Temperaturmanager kann eingerichtet sein, um eine Quertemperaturmetrik für jeden physischen Löschblock jeder Zone unter Verwendung mindestens eines Temperatursensors zu überwachen, der mit jedem Speicher-Die gekoppelt ist. Der Temperaturmanager kann weiterhin eingerichtet sein, um den Zonenmanager als Reaktion darauf, dass die Quertemperaturmetrik für eine oder mehrere der Zonen einen Alarmschwellenwert erfüllt, zu benachrichtigen. Schließlich kann die Speicherungssteuerung einen Zustandsmanager aufweisen. Der Zustandsmanager kann eingerichtet sein, eine Blockzustandsmetrik für jeden physischen Löschblock jeder Zone zu überwachen und den Zonenmanager als Reaktion darauf, dass die Blockzustandsmetrik für eine oder mehrere der Zonen den Alarmschwellenwert erfüllt, zu benachrichtigen. Der Zonenmanager kann weiterhin eingerichtet sein, um eine Zonenmetrik basierend zumindest teilweise auf der Quertemperaturmetrik von dem Temperaturmanager und/oder der Blockzustandsmetrik von dem Zustandsmanager zu bestimmen. Der Zonenmanager kann eingerichtet sein, um eine oder mehrere Gegenmaßnahmen an einer oder mehreren Zonen als Reaktion auf einen Bericht der Zonenmetrik an den Host zu implementieren, der eingerichtet ist, um die Zonen zu verwalten.
  • Schließlich bezieht sich diese Offenbarung auf ein Verfahren. Das Verfahren weist das Überwachen einer Zonenmetrik für eine Zone einer nichtflüchtigen Speicherungsvorrichtung auf. Das Verfahren weist weiterhin das Benachrichtigen eines Hosts über die Zonenmetrik als Reaktion darauf, dass die Zonenmetrik einen Alarmschwellenwert erfüllt, auf. Schließlich weist das Verfahren das Implementieren einer Gegenmaßnahme als Reaktion auf einen Gegenmaßnahmebefehl vom Host auf.
  • Figurenliste
  • Um die Diskussion über ein bestimmtes Element oder eine bestimmte Handlung zu erleichtern, nehmen die wichtigsten Ziffern in einem Bezugszeichen auf die Nummer der Figur Bezug, in der dieses Element zum ersten Mal vorgestellt wird.
    • 1 veranschaulicht ein Speicherungssystem 100 gemäß einer Ausführungsform.
    • 2 ist ein Blockdiagramm einer exemplarischen Speicherungsvorrichtung 102 in einer Ausführungsform.
    • 3 veranschaulicht einen logischen Adressraum mit in Zonen unterteilter Speicherungszuweisung 300 gemäß einer Ausführungsform.
    • 4 veranschaulicht eine ZNS-Speicherungsvorrichtung 400 gemäß einer Ausführungsform.
    • 5 veranschaulicht ein ZNS-Speicherungssystem 500 gemäß einer Ausführungsform.
    • 6 veranschaulicht eine Speicherungssteuerung 104 gemäß einer Ausführungsform.
    • 7 veranschaulicht ein ZNS-Speicherungssystem 700 gemäß einer Ausführungsform.
    • 8 ist ein beispielhaftes Blockdiagramm einer Rechenvorrichtung 800, die bestimmte Ausführungsformen enthalten kann.
    • 9 veranschaulicht eine Routine gemäß einer Ausführungsform.
  • DETAILLIERTE BESCHREIBUNG
  • Diese Offenbarung bezieht sich auf Lösungen zum Überwachen und Anpassen von Problemen auf Zonenebene, wie der Quertemperaturstörung in ZNS-Vorrichtungen (Zoned Namespace - in Zonen unterteilte Namensräume) und Schwankungen bei dem physischen Zustand von Speicherblöcken. In bestimmten Ausführungsformen bestimmt die Lösung eine Zonenmetrik. In einer Ausführungsform kann die Zonenmetrik verwendet werden, um einen Zonenzustand zu bestimmen. Eine Blockzustandsmetrik auf Zonenebene und eine Quertemperaturmetrik können erzeugt und einem Host gemeldet werden, sodass die Speichernutzung durch ZNS-basierte Speicherverwaltungsstrategien optimiert werden kann.
  • „Speicherzelle‟ nimmt Bezug auf einen Typ von Speicherungsmedien, die so eingerichtet sind, dass sie einen oder mehrere binäre Werte mittels einer bestimmbaren physikalischen Eigenschaft des Speicherungsmediums darstellen, wenn das Speicherungsmedium abgetastet, gelesen oder erkannt wird, um zu bestimmen, welcher/welche binäre Wert(e) zuletzt in der Speicherzelle gespeichert wurde. Speicherzelle und Speicherungszelle werden hierin austauschbar verwendet.
  • In einem Beispiel kann eine Zonentemperaturverfolgungstabelle verwaltet werden, und wenn ein Alarmschwellenwert zwischen der Betriebstemperatur und der Temperatur zur Schreibzeit erreicht wird, kann ein Bericht an den Host erzeugt werden. Als Reaktion darauf, dass ein Alarmschwellenwert erfüllt ist, kann der Host entscheiden, die Zone zu schließen, einen Kühlprozess einzuleiten oder die Zone durch die Durchführung eines Verlagerungsvorgangs zu reparieren. „Alarmschwellenwert“ bezieht sich auf eine Art von Schwellenwert, der so vordefiniert ist, dass, wenn ein Wert, eine Bewertung oder eine Bedingung den Alarmschwellenwert erfüllt, das System, die Einrichtung oder das Verfahren eingerichtet ist, entweder ein Problem oder einen Fehler oder ein Potenzial für einen bevorstehenden Problem- oder Fehlerzustand zu signalisieren. „Schwelle‟ bezieht sich auf einen Pegel, Punkt oder Wert, über dem eine Bedingung wahr ist oder eintreten wird und unter dem die Bedingung nicht wahr ist oder nicht eintreten wird. (Engl. „threshold" Merriam-Webster.com. Merriam-Webster, 2019. Web. 14. November 2019. Bearbeitet)
  • Die Blockzustandsmetrik kann verwendet werden, um verschiedene physische Löschblöcke in Zonen zu gruppieren, um ausgeglichene Zonen zu erreichen, in denen physische Löschblöcke Zonen zugewiesen sind, sodass Zonen einen ähnlichen mittleren Zustand aufweisen, oder um Blöcke in Zonen mit minimalem Zustandsunterschied zwischen Blöcken zu gruppieren. Zonen können auf andere Weise basierend auf Zonenmetriken verwendet und verwaltet werden, wie ausführlicher in Bezug auf die nachstehenden Figuren beschrieben.
  • 1 ist ein schematisches Blockdiagramm, das eine Ausführungsform eines Speicherungssystems 100, das eine in Zonen unterteilte Speicherungsvorrichtung gemäß der offenbarten Lösung einschließt, veranschaulicht. Das Speicherungssystem 100 weist eine Speicherungsvorrichtung 102, eine Speicherungssteuerung 104, einen Speicher-Die 106, einen Host 108, eine Benutzeranwendung 110, einen Speicherungsclient 112, einen logischen Adressraum 114, Metadaten 116, eine FLASH-Übersetzungsschicht 118, eine Adresszuordnungstabelle 120, einen Datenbus 122, einen Bus 124, mindestens einen Host 126 und ein Netzwerk 128 auf.
  • Das Speicherungssystem 100 schließt mindestens eine Speicherungsvorrichtung 102 ein, die eine Speicherungssteuerung 104 und einen oder mehrere über einen Bus 124 verbundene Speicher-Dies 106 aufweist. In einigen Ausführungsformen kann das Speicherungssystem 100 zwei oder mehr Speicherungsvorrichtungen einschließen. „Speicherungssteuerung“ nimmt Bezug auf jede Hardware, Vorrichtung, jedes Bauteil, Element oder jede Schaltung, die zur Verwaltung von Datenvorgängen auf nichtflüchtigen Speichermedien eingerichtet ist, und kann einen oder mehrere Prozessoren, programmierbare Prozessoren (z. B. FPGAs), ASICs, Mikrosteuerung oder dergleichen aufweisen. In einigen Ausführungsformen ist die Speicherungssteuerung dazu eingerichtet, Daten auf den nichtflüchtigen Speichermedien zu speichern und/oder Daten daraus auszulesen, Daten zu/von der (den) nichtflüchtigen Speichervorrichtung(en) zu übertragen und so weiter.
  • „Speicher-Die‟ nimmt Bezug auf einen kleinen Block aus Halbleitermaterial, auf dem eine gegebene Funktionsschaltung hergestellt wird. Üblicherweise werden integrierte Schaltkreise in großen Chargen auf einem einzigen Wafer aus elektronischem Silizium (Electronic-Grade Silicon, EGS) oder einem anderen Halbleiter (wie GaAs) durch Prozesse wie Fotolithografie hergestellt. Der Wafer wird in viele Stücke geschnitten (zerteilt), die jeweils eine Kopie der Schaltung enthalten. Jedes dieser Stücke wird als Die bezeichnet. (Nachschlagen unter „Die" auf Wikipedia.com, 9. Oktober 2019. Zugriffsdatum 18. November 2019.)
  • Ein Speicher-Die ist ein Die, das eine Funktionsschaltung für den Betrieb als ein nichtflüchtiges Speichermedium und/oder ein nichtflüchtiges Speicherarray einschließt. „Nichtflüchtige Speichermedien“ nimmt Bezug auf jede Hardware, Vorrichtung, Komponente, jedes Element oder jeden Schaltkreis, die bzw. der so eingerichtet ist, dass sie bzw. er eine veränderbare physikalische Eigenschaft beibehält, die verwendet wird, um einen binären Wert von Null oder Eins darzustellen, nachdem eine primäre Stromquelle entfernt wurde. Beispiele für veränderbare physikalische Eigenschaften schließen eine Schwellenspannung für einen Transistor, ein elektrischer Widerstandswert einer Speicherzelle, ein Strompegel durch eine Speicherzelle, eine Magnetpolausrichtung, ein Spin-Transfer-Drehmoment und dergleichen ein, ohne darauf beschränkt zu sein.
  • Die veränderbare physikalische Eigenschaft ist so beschaffen, dass die physikalische Eigenschaft ausreichend fixiert bleibt, sodass, wenn keine primäre Stromquelle für die nichtflüchtigen Speichermedien verfügbar ist, die veränderbare physikalische Eigenschaft gemessen, erkannt oder abgetastet werden kann, wenn der binäre Wert gelesen, abgerufen oder abgetastet wird. Anders ausgedrückt: nichtflüchtige Speichermedien sind Speicherungsmedien, die so eingerichtet sind, dass Daten, die auf den nichtflüchtigen Speichermedien gespeichert sind, abrufbar sind, nachdem eine Stromquelle für die nichtflüchtigen Speichermedien getrennt und dann wieder angeschlossen wurde. Die nichtflüchtigen Speichermedien können ein oder mehrere nichtflüchtige Speicherelemente aufweisen, die unter anderem Folgendes einschließen können: Chips, Pakete, Ebenen, Speicher-Dies und dergleichen.
  • Beispiele für nichtflüchtige Speichermedien schließen ein, sind aber nicht beschränkt auf: ReRAM, Memristorspeicher, programmierbarer Metallisierungszellenspeicher, Phasenänderungsspeicher (PCM, PCME, PRAM, PCRAM, Ovonic Unified Memory, Chalcogenid-RAM oder C-RAM), NAND-Flashspeicher (z. B. 2D-NAND-Flashspeicher, 3D-NAND-Flashspeicher), NOR-Flash-Speicher, Nano-Direktzugriffsspeicher (Nano-RAM oder NRAM), drahtbasierte Nanokristallspeicher, Siliziumoxid-basierter Sub-10-Nanometer-Prozessspeicher, Graphenspeicher, Silizium-Oxid-Nitrid-Oxid-Silizium (SONOS), programmierbare Metallisierungszellen (PMC), leitungsüberbrückendes RAM (CBRAM), magnetoresistives RAM (MRAM), magnetische Speicherungsmedien (z. B. Festplatte, Band), optische Speicherungsmedien oder dergleichen.
  • Während die nichtflüchtigen Speichermedien hierin in verschiedenen Ausführungsformen als „Speichermedien“ bezeichnet werden, können die nichtflüchtigen Speichermedien allgemeiner als nichtflüchtiger Speicher bezeichnet werden. Da nichtflüchtige Speichermedien in der Lage sind, Daten zu speichern, wenn eine Stromversorgung entfernt wird, können die nichtflüchtigen Speichermedien auch als Aufzeichnungsmedium, nichtflüchtiges Aufzeichnungsmedium, Speicherungsmedium, Speicherung, nichtflüchtiger Speicher, flüchtiges Speichermedium, nichtflüchtiges Speicherungsmedium, nichtflüchtige Speicherung oder ähnliches bezeichnet werden.
  • In bestimmten Ausführungsformen sind die auf nichtflüchtigen Speichermedien gespeicherten Daten auf Blockebene adressierbar, d. h. die Daten auf den nichtflüchtigen Speichermedien sind in Datenblöcken organisiert, die jeweils eine eindeutige logische Adresse (z. B. LBA) aufweisen. In anderen Ausführungsformen sind Daten, die in nichtflüchtigen Speichermedien gespeichert sind, auf Byte-Ebene adressierbar, was bedeutet, dass die Daten in den nichtflüchtigen Speichermedien in Bytes (8 Bit) von Daten organisiert sind, die jeweils eine eindeutige Adresse aufweisen, wie eine logische Adresse. Ein Beispiel für byteadressierbare nichtflüchtige Speichermedien ist der Speicherklassenspeicher (SCM).
  • „Nichtflüchtiges Speicherarray‟ nimmt Bezug auf einen Satz nichtflüchtiger Speicherungszellen (auch als Speicherzellen oder nichtflüchtige Speicherzellen bezeichnet), die in einer Arraystruktur mit Zeilen und Spalten organisiert sind. Ein Speicherarray ist unter Verwendung eines Zeilenidentifizierer und eines Spaltenidentifizierers adressierbar.
  • Jede Speicherungsvorrichtung 102 kann ein oder mehrere Speicher-Dies 106 einschließen, wie Flash-Speicher, Nano-Direktzugriffsspeicher („Nano-RAM oder NRAM“), magnetoresistives RAM („MRAM“), dynamisches RAM („DRAM“), Phasenwechsel-RAM („PRAM“), usw. In weiteren Ausführungsformen kann die Datenspeichervorrichtung 102 andere Arten von nichtflüchtiger und/oder flüchtiger Datenspeicherung einschließen, wie dynamisches RAM („DRAM“), statisches RAM („SRAM“), magnetische Datenspeicherung, optische Datenspeicherung und/oder andere Datenspeichertechnologien.
  • Die Speicherungsvorrichtung 102, die hierin auch als Speicherungsvorrichtung bezeichnet wird, kann eine Komponente innerhalb eines Hosts 108 sein, wie hier dargestellt, und kann über einen Datenbus 122 verbunden sein, wie einen „PCI-e“-Bus (Peripheral Component Interconnect Express), einen „seriellen ATA“-Bus (Serial Advanced Technology Attachment) oder dergleichen. In einer anderen Ausführungsform befindet sich die Speicherungsvorrichtung 102 außerhalb des Host 108 und ist daran angeschlossen, über eine „USB“-Verbindung (Universal Serial Bus), eine „IEEE“-1394-Bus-Verbindung (Institute of Electrical and Electronics Engineers) („FireWire“) oder dergleichen. In anderen Ausführungsformen ist die Speicherungsvorrichtung 102 mit dem Host 108 über einen „PCI“-Express-Bus (Peripheral Component Interconnect) verbunden, wobei eine externe elektrische oder optische Buserweiterung oder eine Busnetzwerklösung wie InfiniBand oder „PCIe-AS“ (PCI Express Advanced Switching) oder dergleichen verwendet wird. „Host“ nimmt Bezug auf eine beliebige Rechenvorrichtung oder einen Computer oder ein Computersystem, die bzw. das zum Senden und Empfangen von Speicherungsbefehlen eingerichtet ist. Beispiele für einen Host schließen unter anderem einen Computer, einen Laptop, eine mobile Vorrichtung, eine Appliance, eine virtuelle Maschine, einen Unternehmensserver, einen Desktop, ein Tablet, einen Hauptrechner und dergleichen ein.
  • In verschiedenen Ausführungsformen kann die Speicherungsvorrichtung 102 in Form eines „DIMM“-Moduls (Dual-Inline Memory Module), einer Tochterplatine oder eines Mikromoduls vorliegen. In einer anderen Ausführungsform ist die Speicherungsvorrichtung 102 eine Komponente innerhalb eines im Rack montierten Blades. In einer anderen Ausführungsform ist die Speicherungsvorrichtung 102 in einer Verpackung enthalten, die direkt in eine übergeordnete Baugruppe integriert ist (z. B. Hauptplatine, Laptop, Grafikprozessor). In einer anderen Ausführungsform werden einzelne Komponenten, welche die Speicherungsvorrichtung 102 aufweisen, ohne Zwischenverpackung direkt in eine übergeordneten Baugruppe integriert. Die Speicherungsvorrichtung 102 wird in Bezug auf 2 detaillierter beschrieben.
  • In einer weiteren Ausführungsform kann die Speicherungsvorrichtung 102 über ein Datennetzwerk mit dem Host 108 verbunden werden, anstatt direkt als DAS mit dem Host 108 verbunden zu sein. Beispielsweise kann die Datenspeichervorrichtung 102 eine „SAN“-Speicherungsvorrichtung (Storage Area Network), eine „NAS“-Speicherungsvorrichtung (Network Attached Storage), eine Netzwerkfreigabe oder dergleichen einschließen. In einer Ausführungsform kann das Speicherungssystem 100 ein Datennetzwerk wie das Internet, ein „WAN“ (Wide Area Network), ein „MAN“ (Metropolitan Area Network), ein „LAN“ (Local Area Network), einen Token-Ring, ein drahtloses Netzwerk, ein Glasfaserkanalnetzwerk, ein SAN, ein NAS, ESCON oder dergleichen oder eine beliebige Kombination von Netzwerken einschließen. Ein Datennetzwerk kann auch ein Netzwerk aus der IEEE-802-Familie von Netzwerktechnologien einschließen, wie Ethernet, Token-Ring, Wi-Fi, Wi-Max und dergleichen. Ein Datennetzwerk kann Server, Switches, Router, Verkabelung, Funkgeräte und andere Ausrüstung einschließen, die zur Erleichterung der Vernetzung zwischen dem Host 108 und der Speicherungsvorrichtung 102 verwendet werden.
  • Das Speicherungssystem 100 schließt mindestens einen Host 108 ein, der mit der Speicherungsvorrichtung 102 verbunden ist. Es können mehrere Hosts 108 verwendet werden und diese können einen Server, eine Speicherungssteuerung eines „SAN“ (Storage Area Network), eine Arbeitsstation, einen PC, einen Laptop-Computer, einen tragbaren Computer, einen Supercomputer, ein Computer-Cluster, einen Netzwerk-Switch, einen Router oder eine Appliance, eine Datenbank oder Speicher-Appliance, ein Datenabruf- oder Datenerfassungssystem, ein Diagnosesystem, ein Testsystem, einen Roboter, eine tragbare elektronische Vorrichtung, eine drahtlose Vorrichtung oder dergleichen aufweisen. In einer anderen Ausführungsform kann ein Host 108 ein Client sein, und die Speicherungsvorrichtung 102 arbeitet autonom, um von dem Host 108 gesendete Datenanforderungen zu bedienen. In dieser Ausführungsform können der Host 108 und die Speicherungsvorrichtung 102 über ein Computernetzwerk, einen Systembus, DAS (Direct Attached Storage) oder andere Kommunikationsmittel verbunden werden, die für die Verbindung zwischen einem Computer und einer autonomen Speicherungsvorrichtung 102 geeignet sind.
  • Die dargestellte Ausführungsform zeigt eine Benutzeranwendung 110 in Kommunikation mit einem Speicherungsclient 112 als Teil des Host 108. In einer Ausführungsform ist die Benutzeranwendung 110 eine Software-Anwendung, die auf oder in Verknüpfung mit dem Speicherungsclient 112 arbeitet.
  • „Speicherungsclient‟ nimmt Bezug auf jede Hardware-, Software-, Firmware- oder Logikkomponente oder jedes Modul, die bzw. das für die Kommunikation mit einer Vorrichtung zur Nutzung von Speicherungsdiensten eingerichtet ist. Beispiele für einen Speicherungsclient sind unter anderem Betriebssysteme, Dateisysteme, Datenbankanwendungen, ein Datenbankmanagementsystem („DBMS“), Serveranwendungen, ein Server, ein Volume-Manager, Prozesse auf Kernel-Ebene, Prozesse auf Benutzerebene, Anwendungen, mobile Anwendungen, Threads, Prozesse und dergleichen. „Hardware“ nimmt Bezug auf Funktionselemente, die als analoger und/oder digitaler Schaltkreis enthalten ist. „Software“ nimmt Bezug auf eine Logik, die als prozessorausführbare Anweisungen in einem Maschinenspeicher (z. B. flüchtige Lese-/Schreibspeichermedien oder nichtflüchtige Speichermedien) implementiert sind. „Firmware“ nimmt Bezug auf Logik, die als prozessorausführbare Anweisungen ausgeführt wird, die auf flüchtigen Speichermedien und/oder nichtflüchtigen Speichermedien gespeichert sind.
  • Der Speicherungsclient 112 verwaltet Dateien und Daten und nutzt die Funktionen und Merkmale der Speicherungssteuerung 104 und des zugeordneten Speicher-Dies 106. Repräsentative Beispiele für Speicherungsclients schließen einen Server, ein Dateisystem, ein Betriebssystem, ein Datenbankmanagementsystem („DBMS“), einen Volume-Manager und dergleichen ein, sind aber nicht darauf beschränkt. Der Speicherungsclient 112 steht in Kommunikation mit der Speicherungssteuerung 104 innerhalb der Speicherungsvorrichtung 102. In einigen Ausführungsformen kann der Speicherungsclient 112 entfernte Speicherungsclients einschließen, die auf Hosts 126 betrieben werden oder anderweitig über das Netzwerk 128 zugänglich sind. Die Speicherungsclients können einschließen, ohne jedoch darauf beschränkt zu sein: Betriebssysteme, Dateisysteme, Datenbankanwendungen, Serveranwendungen, Prozesse auf Kernel-Ebene, Prozesse auf Benutzerebene, Anwendungen und dergleichen.
  • Der Speicherungsclient 112 kann dem Host 108 und/oder der Benutzeranwendung 110 einen logischen Adressraum 114 präsentieren. „Logischer Adressraum“ nimmt Bezug auf eine logische Repräsentation von Speicherressourcen. Der logische Adressraum kann eine Vielzahl (z. B. einen Bereich) von logischen Adressen aufweisen. Der logische Adressraum 114 kann eine Vielzahl (z. B. einen Bereich) von logischen Adressen aufweisen. Wie hierin verwendet, nimmt eine logische Adresse Bezug auf jeden Identifikator zum Referenzieren einer Speicherressource (z. B. Daten), einschließlich, ohne jedoch darauf beschränkt zu sein: einer logischen Blockadresse (LBA), einer CHS-Adresse (Cylinder/Head/Sector, Zylinder/Kopf/Sektor), eines Dateinamens, eines Objektidentifikators, eines Inodes (Indexknoten), eines universal eindeutigen Identifikators (Universally Unique Identifier, UUID), eines global eindeutigen Identifikators (Globally Unique Identifier, GUID), eines Hash-Codes, einer Signatur, eines Indexeintrags, eines Bereichs, eines Umfangs oder dergleichen.
  • „Logische Adresse‟ nimmt Bezug auf jeden Identifikator zur Bezugnahme auf eine Speicherressource (z. B. Daten), einschließlich, aber nicht beschränkt auf: eine logische Blockadresse (LBA), Zylinder/Kopf/Sektor-Adresse (CHS), einen Dateinamen, einen Objekt-Identifikator, einen Inode, einen UUID (Universally Unique Identifier), einen GUID (Globally Unique Identifier), einen Hash-Code, eine Signatur, einen Indexeintrag, einen Bereich, eine Ausdehnung oder Ähnliches. Eine logische Adresse zeigt nicht den physischen Ort von Daten auf dem Speicherungsmedium an, sondern ist ein abstrakter Bezug auf die Daten.
  • „Logische Blockadresse‟ nimmt Bezug auf einen Wert, der in einer Vorrichtung zur Blockspeicherung verwendet wird, um jedem von n logischen Blöcken, die für die Speicherung von Benutzerdaten auf den Speicherungsmedien verfügbar sind, eine logische Adresse zuzuweisen. In bestimmten Blockspeicherungsvorrichtungen können die logischen Blockadressen (LBAs) zwischen 0 und n pro Volume oder Partition liegen. Bei Blockspeicherungsvorrichtungen wird jede LBA direkt auf einen bestimmten Datenblock abgebildet, und jeder Datenblock wird auf einen bestimmten Satz physischer Sektoren auf den physischen Speicherungsmedien abgebildet.
  • Ein Vorrichtungstreiber für den Host 108 (und/oder den Speicherungsclient 112) kann Metadaten 116 innerhalb des Speicherungsclients 112 verwalten, wie eine logisch-physische Adresszuordnungsstruktur, um logische Adressen des logischen Adressraums 114 Speicherorten auf dem Speicher-Die 106 zuzuordnen. Ein Vorrichtungstreiber kann dazu eingerichtet sein, Speicherungsdienste für einen oder mehrere Speicherungsclients bereitzustellen.
  • Die Speicherungssteuerung 104 kann die FLASH-Übersetzungsschicht 118 und die Adresszuordnungstabelle 120 aufweisen. „FLASH-Übersetzungsschicht“ nimmt Bezug auf Logik in einer FLASH-Speicherungsvorrichtung, die eine Übersetzung von logischen in physische Adressen einschließt, die eine Abstraktion der logischen Blockadressen, die von dem Speicherungsclient verwendet werden, und der physischen Blockadressen, an denen die Speicherungssteuerung Daten speichert, bereitstellt. Die logisch-physische Übersetzungsschicht bildet logische Blockadressen (LBAs) auf physische Adressen von Daten ab, die auf Festkörperspeicherungsmedien gespeichert sind. Diese Abbildung ermöglicht es, Daten in einem logischen Blockadressraum unter Verwendung logischer Kennungen, wie einer Blockadresse, zu referenzieren. Ein logischer Identifikator zeigt nicht den physischen Ort von Daten auf dem Festkörperspeicherungsmedium an, sondern ist ein abstrakter Bezug auf die Daten.
  • Die FLASH-Übersetzungsschicht 118 empfängt die verarbeiteten Daten sowie ein oder mehrere Steuersignale, um die Warteschlangentiefe der FLASH-Übersetzungsschicht zu bestimmen. Die FLASH-Übersetzungsschicht 118 kann über Steuersignale mit der Adresszuordnungstabelle 120 interagieren, um eine geeignete physische Adresse zum Senden von Daten und Befehlen an den Speicher-Die 106 und den flüchtigen Speicher zu bestimmen. In einer Ausführungsform empfängt die FLASH-Übersetzungsschicht 118 auch die Datenausgaben von dem Speicher-Die 106.
  • „Adresszuordnungstabelle‟ nimmt Bezug auf eine Datenstruktur, die logische Blockadressen mit physischen Adressen von Daten verknüpft, die auf einem nichtflüchtigen Speicherarray gespeichert sind. Die Tabelle kann als Index, als Karte, als B-Baum, als inhaltsadressierbarer Speicher (Content Addressable Memory, CAM), als Binärbaum und/oder als Hashtabelle und dergleichen implementiert sein. Die Adresszuordnungstabelle 120 speichert Adressorte für Datenblöcke auf der Speicherungsvorrichtung 102, die von der FLASH-Übersetzungsschicht 118 verwendet werden sollen. Insbesondere durchsucht die FLASH-Übersetzungsschicht 118 die Adresszuordnungstabelle 120, um zu bestimmen, ob eine logische Blockadresse, die in dem Speicherungsbefehl eingeschlossen ist, einen Eintrag in der Adresszuordnungstabelle 120 aufweist. Wenn ja, wird die physische Adresse, die der logischen Blockadresse zugeordnet ist, verwendet, um den Speicherungsvorgang auf dem Speicher-Die 106 anzuweisen.
  • „Datenblock‟ nimmt Bezug auf eine kleinste physische Menge an Speicherplatz auf physischen Speicherungsmedien, auf den über einen Speicherungsbefehl zugegriffen werden kann und/oder der adressierbar ist. Bei den physischen Speicherungsmedien kann es sich um flüchtige Speichermedien, nichtflüchtige Speichermedien, persistente Speicherung, nichtflüchtige Speicherung, Flash-Speicherungsmedien, Festplattenlaufwerke oder dergleichen handeln. Bestimmte konventionelle Speicherungsvorrichtungen unterteilen die physischen Speicherungsmedien in Volumes oder logische Partitionen (auch als Partitionen bezeichnet). Jedes Volume oder jede logische Partition kann eine Vielzahl von Sektoren einschließen. Ein oder mehrere Sektoren sind in einem Block (auch als Datenblock bezeichnet) organisiert. In bestimmten Speicherungssystemen, wie denen, die eine Schnittstelle zu Windows®-Betriebssystemen haben, werden die Datenblöcke als Cluster bezeichnet. In anderen Speicherungssystemen, z. B. solchen, die eine Schnittstelle zu UNIX, Linux oder ähnlichen Betriebssystemen haben, werden die Datenblöcke einfach als Blöcke bezeichnet. Ein Datenblock oder Cluster stellt die kleinste physische Menge an Speicherplatz auf den Speicherungsmedien dar, die von einer Speicherungssteuerung verwaltet wird. Eine Blockspeicherungsvorrichtung kann n Datenblöcke, die für die Benutzerdatenspeicherung auf den physischen Speicherungsmedien zur Verfügung stehen, einer logischen Blockadresse (LBA), die von 0 bis n nummeriert ist, zuordnen. In bestimmten Blockspeicherungsvorrichtungen können die logischen Blockadressen zwischen 0 und n pro Volume oder logischer Partition liegen. In herkömmlichen Blockspeicherungsvorrichtungen wird eine logische Blockadresse direkt auf einen und nur einen Datenblock abgebildet.
  • „Speicherungsbetrieb‟ nimmt Bezug auf einen Betrieb, der an einer Speicherzelle durchgeführt wird, um den Wert von Daten zu ändern oder zu erhalten, die durch eine Zustandseigenschaft der Speicherzelle dargestellt werden. Beispiele für Speicherungsvorgänge schließen das Lesen (oder das Erkennen eines Zustands) von Daten aus einer Speicherzelle, das Schreiben (oder Programmieren) von Daten in eine Speicherzelle und/oder das Löschen von in einer Speicherzelle gespeicherten Daten ein, sind aber nicht darauf beschränkt.
  • In einer Ausführungsform schließt das Speicherungssystem 100 einen oder mehrere Clients ein, die über ein oder mehrere Computernetzwerke 128 mit einem oder mehreren Hosts 126 verbunden sind. Ein Host 126 kann ein Server, eine Speicherungssteuerung eines SAN, eine Workstation, ein PC, ein Laptop-Computer, ein tragbarer Computer, ein Supercomputer, ein Computer-Cluster, ein Netzwerk-Switch, Router oder eine Appliance, eine Datenbank oder Speicher-Appliance, ein Datenabruf- oder Datenerfassungssystem, ein Diagnosesystem, ein Testsystem, ein Roboter, eine tragbare elektronische Vorrichtung, eine drahtlose Vorrichtung oder dergleichen sein. Das Netzwerk 128 kann das Internet, ein „WAN“ (Wide Area Network), ein „MAN“ (Metropolitan Area Network), ein „LAN“ (Local Area Network), einen Token-Ring, ein drahtloses Netzwerk, ein Glasfaserkanalnetzwerk, ein SAN, ein „NAS“ (Network Attached Storage), ESCON oder dergleichen oder eine beliebige Kombination von Netzwerken einschließen. Das Netzwerk 128 kann auch ein Netzwerk aus der IEEE-802-Familie von Netzwerktechnologien, wie Ethernet, Token-Ring, WiFi, WiMax und dergleichen einschließen.
  • Das Netzwerk 128 kann Server, Switches, Router, Verkabelung, Funkgeräte und andere Geräte einschließen, die zur Erleichterung der Vernetzung zwischen dem Host 108 oder den Hosts und dem Host 126 oder Clients verwendet werden. In einer Ausführungsform schließt das Speicherungssystem 100 mehrere Hosts ein, die als Peers über ein Netzwerk 128 kommunizieren. In einer weiteren Ausführungsform schließt das Speicherungssystem 100 mehrere Speichervorrichtungen 102 ein, die als Peers über ein Netzwerk 128 kommunizieren. Ein Fachmann wird andere Computernetzwerke erkennen, die ein oder mehrere Computernetzwerke und zugehörige Ausrüstungen mit einer einzelnen oder redundanten Verbindung zwischen einem oder mehreren Clients oder einem anderen Computer mit einer oder mehreren Speichervorrichtungen 102 oder einer oder mehreren Speichervorrichtungen 102, die mit einem oder mehreren Hosts verbunden sind, aufweisen. In einer Ausführungsform schließt das Speicherungssystem 100 zwei oder mehr Speichervorrichtungen 102 ein, die über das Netzwerk 128 mit einem Host 108 ohne einen Host 126 verbunden sind.
  • In einer Ausführungsform kommuniziert der Speicherungsclient 112 mit der Speicherungssteuerung 104 über eine Host-Schnittstelle, die eine E/A-Schnittstelle (Eingabe/Ausgabe) aufweist. Zum Beispiel kann die Speicherungsvorrichtung 102 den ATA-Schnittstellenstandard, den „ATAPI“-Standard (ATA Packet Interface), den „SCSI“-Standard (Small Computer System Interface) und/oder den Faserkanal-Standard unterstützen, die vom „INCITS“ (International Committee for Information Technology Standards) gepflegt werden.
  • In bestimmten Ausführungsformen ist das Speicherungsmedium einer Speichervorrichtung in Volumen oder Partitionen unterteilt. Jedes Volume oder jede Partition kann eine Vielzahl von Sektoren einschließen. Traditionell stellt ein Sektor 512 Bytes von Daten dar. Ein oder mehrere Sektoren sind in einem Block (hierin austauschbar als Block und Datenblock bezeichnet) organisiert.
  • In einer beispielhaften Ausführungsform schließt ein Datenblock acht Sektoren ein, was 4 KB entspricht. In bestimmten Speicherungssystemen, wie denen, die eine Schnittstelle zu Windows®-Betriebssystemen haben, werden die Datenblöcke als Cluster bezeichnet. In anderen Speicherungssystemen, z. B. solchen, die eine Schnittstelle zu UNIX, Linux oder ähnlichen Betriebssystemen haben, werden die Datenblöcke einfach als Blöcke bezeichnet. Ein Block oder Datenblock oder Cluster stellt die kleinste physische Menge an Speicherplatz auf den Speicherungsmedien dar, die von einem Speicherungsmanager verwaltet wird, wie einer Speicherungssteuerung, einem Speicherungssystem, einer Speicherungseinheit, einer Speicherungsvorrichtung oder dergleichen.
  • In einigen Ausführungsformen kann die Speicherungssteuerung 104 eingerichtet werden, um Daten auf einem oder mehreren asymmetrischen, einmal beschreibbaren Medien, wie Speicherzellen des Festkörperspeichers innerhalb des Speicher-Dies 106 zu speichern. Wie hierin verwendet, nimmt ein „einmal beschreibbares“ Speicherungsmedium Bezug auf ein Speicherungsmedium, das jedes Mal neu initialisiert (z. B. gelöscht) wird, wenn neue Daten darauf geschrieben oder programmiert werden. Wie hierin verwendet, nimmt ein „asymmetrisches“ Speicherungsmedium Bezug auf ein Speicherungsmedium mit unterschiedlichen Latenzen für unterschiedliche Speicherungsbetriebe. Viele Arten von Festkörperspeicherungsmedien (z. B. Speicher-Die) sind asymmetrisch; Beispielsweise kann ein Lesebetrieb viel schneller als ein Schreib-/Programmierbetrieb sein, und ein Schreib-/Programmierbetrieb kann viel schneller als ein Löschbetrieb sein (z. B. kann das Lesen der Speicherungsmedien Hunderte Male schneller als Löschen und zehn Mal schneller als die Programmierung der Speicherungsmedien sein).
  • Der Speicher-Die 106 kann in Speicherbereiche partitioniert werden, die als eine Gruppe (z. B. Löschblöcke) gelöscht werden können, um unter anderem die asymmetrischen Eigenschaften des Speicher-Dies 106 oder dergleichen zu berücksichtigen. Der Begriff „Löschblock“ nimmt auf einen logischen oder physischen Löschblock Bezug. In einer Ausführungsform stellt ein physischer Löschblock die kleinste Speicherungseinheit innerhalb eines bestimmten Speicher-Dies dar, die zu einem bestimmten Zeitpunkt gelöscht werden kann (z. B. aufgrund der Verdrahtung der Speicherungszellen auf dem Speicher-Die). In einer Ausführungsform stellen logische Löschblöcke die kleinste Speicherungseinheit oder den kleinsten Speicherblock dar, der von einer Speicherungssteuerung als Reaktion auf den Empfang eines Löschbefehls gelöscht werden kann. Wenn die Speicherungssteuerung in einer solchen Ausführungsform einen Löschbefehl erhält, der einen bestimmten logischen Löschblock spezifiziert, kann die Speicherungssteuerung jeden physischen Löschblock innerhalb des logischen Löschblocks gleichzeitig löschen. Es sei angemerkt, dass physische Löschblöcke innerhalb eines gegebenen logischen Löschblocks als zusammenhängend innerhalb eines physischen Adressraums betrachtet werden können, obwohl sie sich in getrennten Dies befinden. Somit kann der Begriff „zusammenhängend“ nicht nur auf Daten anwendbar sein, die innerhalb desselben physischen Mediums gespeichert sind, sondern auch auf Daten, die auf getrennten Medien gespeichert sind.
  • Somit kann das Modifizieren eines einzelnen Datensegments an Ort und Stelle das Löschen des gesamten Löschblocks, der die Daten aufweist, und das Neuschreiben der modifizierten Daten in den Löschblock zusammen mit den ursprünglichen, unveränderten Daten erfordern. Dies kann zu einer ineffizienten „Schreibverstärkung“ führen, was eine Überbeanspruchung des Speicher-Dies 106 bewirken kann. „Schreibverstärkung“ nimmt Bezug auf eine Messung von Schreib-/Programmiervorgängen, die auf einer nichtflüchtigen Speicherungsvorrichtung durchgeführt werden und dazu führen, dass Daten, insbesondere Benutzerdaten, öfter geschrieben werden, als die Daten anfangs geschrieben wurden. In bestimmten Ausführungsformen kann die Schreibverstärkung die Anzahl der Schreibvorgänge zählen, die von einer nichtflüchtigen Speicherungsvorrichtung durchgeführt werden, um die auf der nichtflüchtigen Speicherungsvorrichtung gespeicherten Daten zu verwalten und zu erhalten. In anderen Ausführungsformen misst die Schreibverstärkung die Datenmenge, d. h. die Anzahl der geschriebenen Bits, die über eine anfängliche Speicherung von Daten auf der nichtflüchtigen Speicherungsvorrichtung hinaus geschrieben werden.
  • Daher kann in einigen Ausführungsformen die Speicherungssteuerung 104 so eingerichtet sein, dass sie Daten deplatziert schreibt. Wie hier verwendet, bezieht sich das „deplatzierte“ Schreiben von Daten auf das Schreiben von Daten auf einen oder mehrere andere Medienspeicherorte anstatt des Überschreibens der Daten „am Ort“ (z. B. Überschreiben des ursprünglichen physischen Standorts der Daten). Das deplatzierte Ändern von Daten kann Schreibverstärkung vermeiden, da die mit den zu ändernden Daten auf dem Löschblock existierenden validen Daten nicht gelöscht und wieder kopiert werden müssen. Darüber hinaus kann das deplatzierte Schreiben von Daten das Löschen aus dem Latenzpfad vieler Speicherungsvorgänge verhindern (z. B. ist die Löschlatenz nicht mehr Teil des kritischen Pfads eines Schreibvorgangs).
  • Die Verwaltung eines Datenblocks durch einen Speicherungsmanager schließt das spezifische Adressieren eines bestimmten Datenblocks für einen Lesebetrieb Schreibbetrieb oder Wartungsbetrieb ein. Eine Blockspeicherungsvorrichtung kann n Blöcke, die für die Benutzerdatenspeicherung auf den Speicherungsmedien zur Verfügung stehen, einer logischen Adresse, die von 0 bis n nummeriert ist, zuordnen. In bestimmten Blockspeicherungsvorrichtungen können die logischen Adressen zwischen 0 und n pro Volume oder Partition liegen.
  • Bei herkömmlichen Blockspeicherungsvorrichtungen wird eine logische Adresse direkt einem bestimmten Datenblock auf physischen Speicherungsmedien zugeordnet. Bei herkömmlichen Blockspeicherungsvorrichtungen wird jeder Datenblock einem bestimmten Satz physischer Sektoren auf den physischen Speicherungsmedien zugeordnet. Bestimmte Speicherungsvorrichtungen weisen jedoch logische Adressen nicht direkt oder notwendigerweise bestimmten physischen Datenblöcken zu. Diese Speicherungsvorrichtungen können eine herkömmliche Blockspeicherschnittstelle emulieren, um Kompatibilität mit einem Blockspeicherclient 112 aufrechtzuerhalten.
  • In einer Ausführungsform stellt die Speicherungssteuerung 104 eine Block-E/A-Emulationsschicht bereit, die als Blockvorrichtungsschnittstelle oder API dient. In dieser Ausführungsform kommuniziert der Speicherungsclient 112 mit der Speicherungsvorrichtung durch diese Blockvorrichtungsschnittstelle. In einer Ausführungsform empfängt die Block-E/A-Emulationsschicht Befehle und logische Adressen vom Speicherungsclient 112 nach dieser Blockvorrichtungsschnittstelle. Infolgedessen stellt die Block-E/A-Emulationsschicht die Kompatibilität der Speicherungsvorrichtung mit einem Blockspeicherclient 112 bereit.
  • In einer Ausführungsform kommuniziert ein Speicherungsclient 112 mit der Speicherungssteuerung 104 über eine Host-Schnittstelle, die eine direkte Schnittstelle aufweist. In dieser Ausführungsform tauscht die Speicherungsvorrichtung direkt Informationen aus, die für nichtflüchtige Speicherungsvorrichtungen spezifisch sind. „Nichtflüchtige Speicherungsvorrichtung“ nimmt Bezug auf jede Hardware, Vorrichtung, Komponente, jedes Element oder jeden Schaltkreis, die bzw. der so eingerichtet ist, dass sie bzw. er eine veränderbare physikalische Eigenschaft beibehält, die verwendet wird, um einen binären Wert von Null oder eins darzustellen, nachdem eine primäre Stromquelle entfernt wurde. Beispiele für eine nichtflüchtige Speicherungsvorrichtungen schließen ein Festplattenlaufwerk (HDD), ein Festkörper-Laufwerk (SSD), nichtflüchtige Speichermedien und dergleichen ein, sind aber nicht darauf beschränkt.
  • Eine Speicherungsvorrichtung, die eine direkte Schnittstelle verwendet, kann Daten im Speicher-Die 106 unter Verwendung von verschiedenen organisatorischen Konstrukten speichern, einschließlich, aber nicht beschränkt auf Blöcke, Sektoren, Seiten, logische Blöcke, logische Seiten, Löschblöcke, logische Löschblöcke, ECC-Codewörter, logische ECC-Codewörter oder in jedem anderen Format oder jeder anderen Struktur, die für die technischen Eigenschaften des Speicher-Dies 106 vorteilhaft ist.
  • Die Speicherungssteuerung 104 empfängt eine logische Adresse und einen Befehl von dem Speicherungsclient 112 und führt den entsprechenden Vorgang in Bezug auf das Speicher-Die 106 durch. Die Speicherungssteuerung 104 kann eine Block-E/A-Emulation, eine direkte Schnittstelle oder beides unterstützen.
  • 2 ist ein Blockdiagramm einer beispielhaften Speicherungsvorrichtung 102. Die Speicherungsvorrichtung 102 kann eine Speicherungssteuerung 104 und ein Speicherarray 202 einschließen. Jedes Speicher-Die 106 im Speicherarray 202 kann eine Die-Steuerung 204 und mindestens ein nichtflüchtiges Speicherarray 206 in Form eines dreidimensionalen Speicherarrays sowie Lese-/Schreibschaltungen 208 einschließen.
  • „Speicherarray‟ nimmt Bezug auf einen Satz von Speicherungszellen (auch als Speicherzellen bezeichnet), die in einer Arraystruktur mit Zeilen und Spalten organisiert sind. Ein Speicherarray ist unter Verwendung eines Zeilenidentifizierer und eines Spaltenidentifizierers adressierbar. Folglich ist ein nichtflüchtiges Speicherarray ein Speicherarray mit Speicherzellen, die so eingerichtet sind, dass eine Eigenschaft (z. B. Schwellenspannungspegel, Widerstandspegel, Leitfähigkeit usw.) der Speicherzelle, die zur Darstellung gespeicherter Daten verwendet wird, eine Eigenschaft der Speicherzelle bleibt, ohne dass eine Stromquelle zur Aufrechterhaltung der Eigenschaft erforderlich ist. „Eigenschaft“ nimmt Bezug auf jede Eigenschaft, jedes Merkmal, jede Qualität oder jedes Attribut eines Objekts oder einer Sache. Zu Beispielen für Eigenschaften gehören, ohne jedoch darauf beschränkt zu sein, Zustand, Einsatzbereitschaft, Nicht-Einsatzbereitschaft, chemische Zusammensetzung, Wassergehalt, Temperatur, relative Luftfeuchtigkeit, Partikelzahl, ein Datenwert, Schadstoffzahl und ähnliches.
  • Ein Speicherarray ist unter Verwendung einer Zeilenkennung und einer Spaltenkennung adressierbar. Ein Fachmann erkennt, dass ein Speicherarray den Satz von Speicherzellen innerhalb einer Ebene, den Satz von Speicherzellen innerhalb eines Speicher-Dies, den Satz von Speicherzellen innerhalb eines Satzes von Ebenen, den Satz von Speicherzellen innerhalb eines Satzes von Speicher-Dies, den Satz von Speicherzellen innerhalb eines Speicherpakets, den Satz von Speicherzellen innerhalb eines Satzes von Speicherpaketen oder mit anderen bekannten Speicherzellensatz-Architekturen und -Konfigurationen aufweisen kann.
  • Ein Speicherarray kann einen Satz von Speicherzellen auf einer Anzahl von Organisationsebenen innerhalb eines Speicherungs- oder Speichersystems einschließen. In einer Ausführungsform können Speicherzellen innerhalb einer Ebene in einem Speicherarray organisiert sein. In einer Ausführungsform können Speicherzellen innerhalb einer Vielzahl von Ebenen eines Speicher-Dies in einem Speicherarray organisiert werden. In einer Ausführungsform können Speicherzellen innerhalb einer Vielzahl von Speicher-Dies einer Speichervorrichtung in einem Speicherarray organisiert sein. In einer Ausführungsform können Speicherzellen innerhalb einer Vielzahl von Speicherungsvorrichtungen eines Speicherungssystems in einem Speicherarray organisiert sein.
  • Das nichtflüchtige Speicherarray 206 ist durch Wortleitungen über einen Zeilendecoder 210 und durch Bitleitungen über einen Spaltendecoder 212 adressierbar. „Wortleitung“ nimmt Bezug auf eine Struktur innerhalb eines Speicherarrays, das einen Satz von Speicherzellen aufweist. Das Speicherarray ist so eingerichtet, dass die aktiven Speicherzellen der Wortleitung während eines Lesevorgangs gelesen oder abgetastet werden. Analog ist das Speicherarray so eingerichtet, dass die aktiven Speicherzellen der Wortleitung während eines Lesevorgangs gelesen oder abgetastet werden.
  • Die Lese-/Schreibschaltungen 208 schließen mehrere Abtastblöcke SB1, SB2, ..., SBp (Abtastschaltkreise) ein und ermöglichen, dass eine Seite von Speicherzellen parallel gelesen oder programmiert wird. In bestimmten Ausführungsformen bildet jede Speicherzelle über eine Zeile des Speicherarrays zusammen eine physische Seite.
  • Eine physische Seite kann Speicherzellen entlang einer Zeile des Speicherarrays für eine einzelne Ebene oder für ein einzelnes Speicher-Die einschließen. In einer Ausführungsform schließt das Speicher-Die ein Speicherarray ein, das aus zwei gleich großen Ebenen besteht. In einer Ausführungsform schließt eine physische Seite einer Ebene eines Speicher-Dies vier Datenblöcke (z. B. 16 KB) ein. In einer Ausführungsform schließt eine physische Seite (auch „Die-Seite“ genannt) eines Speicher-Dies zwei Ebenen mit jeweils vier Datenblöcken (z. B. 32 KB) ein.
  • Befehle und Daten werden zwischen dem Host 108 und der Speicherungssteuerung 104 über einen Datenbus 122 und zwischen der Speicherungssteuerung 104 und dem einen oder den mehreren Speicher-Dies 106 über den Bus 124 übertragen. Die Speicherungssteuerung 104 kann die unter Bezug auf 1 näher beschriebenen logischen Module aufweisen.
  • Das nichtflüchtige Speicherarray 206 kann zweidimensional (2D - in einer einzigen Fertigungsebene angeordnet) oder dreidimensional (3D - in mehreren Fertigungsebenen angeordnet) sein. Das nichtflüchtige Speicherarray 206 kann ein oder mehrere Arrays von Speicherzellen einschließlich eines 3D-Arrays aufweisen. In einer Ausführungsform kann das nichtflüchtige Speicherarray 206 eine monolithische dreidimensionale Speicherstruktur (3D-Array) aufweisen, in der mehrere Speicherpegel oberhalb von (und nicht in) einem einzelnen Substrat, wie einem Wafer, ohne dazwischenliegende Substrate ausgebildet sind. Das nichtflüchtige Speicherarray 206 kann jede Art von nichtflüchtigem Speicher aufweisen, der monolithisch in einem oder mehreren physischen Pegeln von Arrays der Speicherzellen ausgebildet ist, die einen aktiven Bereich aufweisen, der über einem Siliziumsubstrat angebracht ist. Das nichtflüchtige Speicherarray 206 kann sich in einem nichtflüchtigen Festkörperlaufwerk befinden, das einen Schaltkreis aufweist, der dem Betrieb der Speicherzellen zugeordnet ist, unabhängig davon, ob sich der zugeordnete Schaltkreis oberhalb oder innerhalb des Substrats befindet.
  • „Schaltkreis‟ nimmt auf elektrische Schaltkreise mit mindestens einer diskreten elektrischen Schaltung Bezug, wobei der elektrische Schaltkreis mindestens eine integrierte Schaltung aufweist, wobei der elektrische Schaltkreis mindestens eine anwendungsspezifische integrierte Schaltung aufweist, wobei der Schaltkreis eine Universal-Rechenvorrichtung ausbildet, die durch ein Computerprogramm eingerichtet ist (z. B. einen Universalcomputer, der durch ein Computerprogramm eingerichtet ist, das zumindest teilweise Prozesse oder Vorrichtungen ausführt, die hierin beschrieben sind, oder einen Mikroprozessor, der durch ein Computerprogramm eingerichtet ist, das zumindest teilweise Prozesse oder Vorrichtungen ausführt, die hierin beschrieben sind), wobei der Schaltkreis eine Speichervorrichtung ausbildet (z. B. Formen von Direktzugriffsspeichern), oder wobei der Schaltkreis eine Kommunikationsvorrichtung ausbildet (z. B. ein Modem, einen Kommunikationsschalter oder eine optisch-elektrische Vorrichtung). Wortleitungen können Abschnitte der Schichten mit Speicherzellen aufweisen, die in Schichten über dem Substrat angeordnet sind. Mehrere Wortlinien können auf einer einzigen Schicht mittels Gräben oder andere nicht leitende isolierende Merkmale gebildet werden.
  • Die Chip-Steuerung 204 arbeitet mit den Lese-/Schreibschaltungen 208 zusammen, um Speichervorgänge auf Speicherzellen des nichtflüchtigen Speicherarrays 206 auszuführen, und schließt eine Zustandsmaschine 214, einen Adressdecoder 216 und eine Leistungssteuerung 218 ein. Die Zustandsmaschine 214 stellt eine Steuerung von Speichervorgängen auf Speicherebene bereit.
  • Der Adressdecoder 216 stellt eine Adressschnittstelle zwischen der vom Host oder einer Speicherungssteuerung 104 verwendeten Adresse und der vom Zeilendecoder 210 und Spaltendecoder 212 verwendeten Hardwareadresse bereit. Die Leistungssteuerung 218 steuert die Leistung und Spannungen, die den verschiedenen Steuerleitungen während der Speichervorgänge zugeführt werden. Die Leistungssteuerung 218 und/oder Lese-/Schreibschaltungen 208 können Treiber für Wortleitungen, Source-Gate-Auswahl-Transistoren (SGS-Transistoren), Drain-Gate-Auswahl-Transistoren (DGS-Transistoren), Bitleitungen, Substrate (in 2D-Speicherstrukturen), Ladepumpen und Quellleitungen einschließen. In bestimmten Ausführungsformen kann die Leistungssteuerung 218 einen plötzlichen Leistungsverlust erkennen und vorbeugende Maßnahmen ergreifen. Die Leistungssteuerung 218 kann verschiedene Erstspannungsgeneratoren (z.B. die Treiber) einschließen, um die hierin beschriebenen Spannungen zu erzeugen. Die Erfassungsblöcke können Bitleitungstreiber und Erfassungsverstärker in einem Ansatz einschließen.
  • In einigen Implementierungen können einige der Komponenten kombiniert werden. Bei verschiedenen Ausführungen können eine oder mehrere der Komponenten (allein oder in Kombination), die sich von dem nichtflüchtigen Speicherarray 206 unterscheiden, als mindestens eine Steuerschaltung oder Speicherungssteuerung betrachtet werden, die zur Ausführung der hierin beschriebenen Techniken eingerichtet ist. Zum Beispiel kann eine Steuerschaltung eine beliebige der Komponenten oder eine Kombination aus einer Die-Steuerung 204, Zustandsmaschine 214, Adressdecoder 216, Spaltendecoder 212, Leistungssteuerung 218, Abtastblöcken SB1, SB2, ..., SBp, Lese/Schreibschaltungen 208, Speicherungssteuerung 104 usw. einschließen.
  • In einer Ausführungsform ist der Host 108 eine Rechenvorrichtung (z. B. ein Laptop, ein Desktop, ein Smartphone, ein Tablet, eine Digitalkamera), die einen oder mehrere Prozessoren, eine oder mehrere prozessorlesbare Speicherungsvorrichtungen (RAM, ROM, Flash-Speicher, Festplattenlaufwerk, Festkörperspeicher) einschließt, die einen prozessorlesbaren Code (z. B. eine Software) zum Programmieren der Speicherungssteuerung 104 speichert, um die hierin beschriebenen Verfahren durchzuführen. Der Host kann auch zusätzlichen Systemspeicher, eine oder mehrere Ein-/Ausgabeschnittstellen und/oder eine oder mehrere Ein-/Ausgabevorrichtungen in Kommunikation mit dem einem oder den mehreren Prozessoren sowie andere in der Technik bekannte Komponenten einschließen.
  • Eine zugehörige Schaltung ist üblicherweise für den Betrieb der Speicherzellen und für die Kommunikation mit den Speicherzellen erforderlich. Als nicht einschränkende Beispiele können Speichervorrichtungen Schaltungen aufweisen, die zum Steuern und Ansteuern von Speicherzellen verwendet werden, um Funktionen, wie Programmieren und Lesen, auszuführen. Diese zugehörige Schaltung kann sich auf demselben Substrat wie die Speicherzellen und/oder auf einem separaten Substrat befinden. Zum Beispiel kann eine Speicherungssteuerung für Schreib-/Lesevorgänge des Speichers auf einem separaten Speicherungssteuerungschip und/oder auf demselben Substrat wie die Speicherzellen angeordnet sein.
  • Ein Fachmann wird erkennen, dass die offenbarten Techniken und Vorrichtungen nicht auf die beschriebenen zweidimensionalen und dreidimensionalen beispielhaften Strukturen beschränkt sind, sondern alle relevanten Speicherstrukturen in dem Geist und innerhalb des Schutzumfangs der Technologie abdecken, wie hierin beschrieben und wie es von einem Fachmann verstanden wird.
  • 3 veranschaulicht einen logischen Adressraum mit in Zonen unterteilter Speicherungszuweisung 300 gemäß einer Ausführungsform. Der logische Adressraum mit in Zonen unterteilter Speicherungszuweisung 300 kann eine Zone 0 302, Zone 1 304, Zone 2 306, Zone 3 308 usw. bis zu einer letzten Zone N 310 aufweisen. „Logischer Adressraum“ nimmt Bezug auf eine logische Repräsentation von Speicherressourcen. Der logische Adressraum kann eine Vielzahl (z. B. einen Bereich) von logischen Adressen aufweisen.
  • Der Standard für in Zonen unterteilte Speicherungsvorrichtungen erfordert, dass Zonen sequentiell beschrieben werden. Jede Zone des Vorrichtungsadressraums weist einen Schreibzeiger 312 auf, der die Position des nächsten Schreibvorgangs verfolgt. Schreibbefehle 314 verschieben den Schreibzeiger 312 zum Ende der neu geschriebenen Daten 316. „Schreibbefehl“ nimmt Bezug auf einen Speicherungsbefehl, der so eingerichtet ist, dass der Empfänger angewiesen wird, einen oder mehrere Datenblöcke auf ein persistentes Speicherungsmedium, wie eine Festplatte, ein nichtflüchtiges Speichermedium oder ähnliches, zu schreiben oder zu speichern. Ein Schreibbefehl kann jeden Speicherungsbefehl einschließen, der dazu führen kann, dass Daten in physische Speicherungsmedien einer Speicherungsvorrichtung geschrieben werden. Der Schreibbefehl kann genug Daten einschließen, um einen oder mehrere Datenblöcke zu füllen, oder der Schreibbefehl kann genug Daten einschließen, um einen Abschnitt eines oder mehrerer Datenblöcke zu füllen. In einer Ausführungsform schließt ein Schreibbefehl ein Start-LBA und eine Zählung ein, die die Anzahl der LBA der auf die Speicherungsmedien zu schreibenden Daten angibt. Geschriebene Daten 316 in einer Zone können nicht direkt überschrieben werden. Um Daten zu überschreiben oder programmierte nichtflüchtige Speichermedien wiederzuverwenden, muss die Zone zuerst unter Verwendung eines Zonenrücksetzbefehls 318 gelöscht werden, der den Schreibzeiger 312 an den Anfang der Zone zurücksetzt.
  • In Zonen unterteilte Speicherungsvorrichtungen können unter Verwendung verschiedener Aufzeichnungs- und Medientechnologien implementiert werden. Die gängigste Form der Zonenspeicherung verwendet heute die SCSI-Schnittstellen „Zoned Block Commands“ (ZBC) und „Zoned ATA Commands“ (ZAC) auf SMR-HDDs (Shingled-Magnetic-Recording-Festplattenlaufwerke). ZBC und ZAC ermöglichen ein in Zonen unterteiltes Blockspeichermodell; Die SMR-Technologie ermöglicht eine fortgesetzte Flächendichtezunahme, um die Anforderungen zum Erweitern des Datenbedarfs zu erfüllen, und erfordert das in Zonen unterteilte Blockzugriffsmodell.
  • 4 veranschaulicht eine ZNS-Speicherungsvorrichtung 400 gemäß einer Ausführungsform. Die ZNS-Speicherungsvorrichtung 400 weist eine Vielzahl von Dies auf: Die 0 402, Die 1 404 usw. bis zu n 406. Jedes veranschaulichte Die wird mit einer einzigen Ebene (Ebene 0 408, Ebene 0 410 bzw. Ebene 0 412) gezeigt. In einigen Ausführungsformen kann jedes Die eine zweite Ebene 1 einschließen, die nicht dargestellt ist. „Ebene“ nimmt Bezug auf eine Unterteilung des Speicherarrays, die es erlaubt, bestimmte Speicherungsvorgänge an beiden Ebenen unter Verwendung bestimmter physischer Zeilenadressen und bestimmter physischer Spaltenadressen durchzuführen.
  • Mehrere physische Löschblöcke (Physical Erase Blocks, PEBs) pro Ebene pro Die können in der ZNS-Speicherungsvorrichtung 400 verwendet werden, wie der veranschaulichte physische Löschblock 0 414, der physische Löschblock 1 416, der physische Löschblock 2 418, der physische Löschblock 3 420, der physische Löschblock n 422, der physische Löschblock 0 424, der physische Löschblock 1 426, der physische Löschblock 2 428, der physische Löschblock 3 430, der physische Löschblock n 432, der physische Löschblock 0 434, der physische Löschblock 1 436, der physische Löschblock 2 438, der physische Löschblock n-1 440 und der physische Löschblock n 442. „Physischer Löschblock“ nimmt auf die kleinste Speicherungseinheit innerhalb eines bestimmten Speicher-Dies Bezug, die zu einem bestimmten Zeitpunkt gelöscht werden kann (z. B. aufgrund der Verdrahtung der Speicherungszellen auf dem Speicher-Die).
  • In der veranschaulichten Ausführungsform kann die ZNS-Speicherungsvorrichtung 400 in logische Löschblöcke (Logical Erase Blocks, LEBs) organisiert sein, wie durch den logischen Löschblock 0 444, den logischen Löschblock 1 446 und den logischen Löschblock N 448 gezeigt wird. Der Fachmann kennt die Beziehung und die Unterschiede zwischen einem physischen Löschblock und einem logischen Löschblock und kann auf den einen oder den anderen oder auf beide Bezug nehmen, indem er die Kurzversionen „Löschblock“ oder „Block“ verwendet. Der Fachmann versteht aus dem Kontext der Referenz zu einem Löschblock, ob es sich um einen physischen oder logischen Löschblock handelt. Die Konzepte und Techniken, die in der Technik verwendet und in den Ansprüchen angegeben werden, können gleichermaßen auf physische Löschblöcke oder logische Löschblöcke angewandt werden.
  • Unter dem Standard für in Zonen unterteilte Speicherungsvorrichtungen wird das logische Konstrukt einer „Zone“ verwendet, um logische Löschblöcke oder physische Löschblöcke zu gruppieren, um die vorrichtungsseitige Schreibverstärkung zu reduzieren und die Überbereitstellung durch Ausrichten von Host-Schreibmustern mit interner Vorrichtungsgeometrie zu reduzieren und den Bedarf an vorrichtungsseitigen Schreibvorgängen zu reduzieren, die nicht direkt mit einem Host-Schreibvorgang verknüpft sind.
  • In einigen Ausführungsformen kann eine Zone basierend auf der Architektur der ZNS-Speicherungsvorrichtung 400 konstruiert werden. Zum Beispiel können Paare logischer Löschblöcke in eine Zone gruppiert werden, wie die dargestellte Zone 0 450, die den logischen Löschblock 0 444 und den logischen Löschblock 1 446 aufweist. In anderen Ausführungsformen kann die Zonengruppierung basierend auf Zonenmetriken angepasst werden, wie hierin offenbart.
  • In einer Ausführungsform können einzelne physische Löschblöcke einer beliebigen Zone zugewiesen werden, unabhängig von ihrem Ort innerhalb der ZNS-Speicherungsvorrichtung 400 oder der Zuweisung zu einem logischen Löschblock. Beispiele für solche Zonen sind in Zone 1 452 und Zone 2 454 zu sehen.
  • In Ausführungsformen, in denen Zonenzuweisungen nicht auf vorbestimmte physische und logische Strukturen innerhalb der ZNS-Speicherungsvorrichtung 400 beschränkt sind, kann eine Zonenzuordnungsstruktur innerhalb einer Speicherungssteuerung ähnlich einer Adresszuordnungstabelle oder LBA-Nachschlagetabelle verwaltet werden. Eine solche Zonen-Nachschlagetabelle kann innerhalb des Zonenmanagers 600 verwaltet werden, was in Bezug auf 6 ausführlicher erörtert wird.
  • In einer anderen Ausführungsform weist eine Zone einen physischen Löschblock pro Ebene pro Die auf. Ein Beispiel für eine solche physische Löschblockzuweisung zu einer Zone ist Zone 0 450. In einer solchen Ausführungsform kann, wenn ein physischer Löschblock unbrauchbar oder nicht mehr funktionsfähig wird, dieser physische Löschblock aus der Zonenzuweisung entfernt werden, das nächste Mal, wenn die Zone gelöscht und erneut geöffnet wird. In einer solchen Ausführungsform kann sich die physische Größe der Zone aufgrund entfernter beschädigter oder nicht funktionsfähiger physischer Löschblöcke ändern.
  • In einigen Ausführungsformen kann eine Die-Steuerung und/oder Speicherungssteuerung Metadaten einem oder mehreren der Speicherblöcke (logische Löschblöcke, physische Löschblöcke, Zonen) zuordnen. „Metadaten“ nimmt Bezug auf Systemdaten, die zur Erleichterung des Betriebs einer nichtflüchtigen Speicherungsvorrichtung verwendet werden können. Metadaten stehen z. B. im Gegensatz zu Daten, die von einer Anwendung produziert werden (d. h. „Anwendungsdaten“) oder Formen von Daten, die von einem Betriebssystem als „Benutzerdaten“ betrachtet werden würden.
  • Beispielsweise kann eine Zone oder ein logischer Löschblock Metadaten einschließen, die ohne Einschränkung Nutzungsstatistiken (z. B. die Anzahl der an dieser Zone oder diesem logischen Löschblock durchgeführten Programmier-Löschzyklen), Zustandsstatistiken (z. B. ein Wert, der angibt, wie oft beschädigte Daten aus dieser Zone oder diesem logischen Löschblock gelesen wurden), Sicherheits- oder Zugriffskontrollparameter, Sequenzinformationen (z. B. ein Sequenzindikator), ein Hinweissymbol für persistente Metadaten (z. B. eines, das die Aufnahme in einen atomaren Speicherungsvorgang anzeigt), eine Transaktionskennung oder dergleichen angeben. In einigen Ausführungsformen schließt eine Zone oder ein logischer Löschblock Metadaten ein, die die logischen Adressen identifizieren, für die die Zone oder der logische Löschblock Daten speichert, sowie die jeweilige Anzahl der gespeicherten Datenblöcke / Datenpakete für jeden logischen Block oder Sektor innerhalb einer Zone.
  • In bestimmten Ausführungsformen weisen die Metadaten eine Quertemperatur für eine Zone, eine durchschnittliche Quertemperatur für offene Zonen der nichtflüchtigen Speicherungsvorrichtung, eine Temperaturänderungsrate, eine durchschnittliche Anzahl von Programmier-Löschungen für eine Zone, eine unkorrigierbare Bitfehlerrate (Uncorrectable Bit Error Rate, UBER) für eine Zone, eine Anzahl von Ausfallbits für eine Zone und eine Ladungsleckrate auf. „Unkorrigierbare Bitfehlerrate“ nimmt Bezug auf ein Maß einer Rate, die eine Anzahl von Bits angibt, die für eine gegebene Anzahl von Bits, die verarbeitet werden, unkorrigierbar und fehlerhaft sind. Bits, die unkorrigierbar sind, gelten als unkorrigierbar, nachdem eine oder mehrere Fehlerkorrekturtechniken versucht wurden, wie die Verwendung von Fehlerkorrekturcodes (Error Correction Codes, ECC), die Verwendung von BCH-Codes (Bose-, Chaudhuri-, Hocquenghem), die Verwendung eines LDPC-Algorithmus (Low Density Parity Check) und dergleichen. „Anzahl von Ausfallbits“ bezieht sich auf ein Maß für eine Anzahl von Bits, die für eine gegebene Maßeinheit fehlerhaft sind. Bits, die fehlerhaft sind, sind Bits, die mit einem Wert gespeichert wurden, aber dann, wenn dieselben Bits gelesen oder abgefragt werden, zeigt das Bit einen anderen Wert an. Die Anzahl von Ausfallbits kann für den Datenblock (z. B. 4 K), einen Löschblock, eine Seite, einen logischen Löschblock, eine Zone, einen Namensraum oder dergleichen gemessen werden. Anders ausgedrückt, kann die Anzahl der Ausfallbits eine Anzahl von Bits sein, die sich zwischen den Daten, die in einen Datenblock, einen physischen Löschblock oder eine andere Gruppierung von Speicherzellen geschrieben wurden, und den Daten, die anschließend aus dem Datenblock, dem physischen Löschblock oder einer anderen Gruppierung von Speicherzellen gelesen wurden, unterscheiden. „Ladungsleckrate“ bezieht sich auf eine Rate, mit der Strom aus einer Speicherzelle leckt, wenn sich die Speicherzelle in einem passiven Zustand befindet, also nicht gelesen oder beschrieben wird.
  • Ein logischer Adressraum repräsentiert die Organisation von Daten, wie sie von übergeordneten Prozessen wie Anwendungen und Betriebssystemen wahrgenommen wird. In einer Ausführungsform stellt ein physischer Adressraum die Organisation von Daten auf den physischen Medien dar.
  • In einer Ausführungsform können die Metadaten in einer Nachricht mit Daten bereitgestellt werden, die aus einem Lesebefehl oder als Reaktion auf einen Befehl von dem Speicherungsclient resultieren. Datenpakete von der Speicherungsvorrichtung können Paketmetadaten einschließen, wie eine oder mehrere LBAs, die den enthaltenen Daten zugeordnet sind, die Paketgröße, Verknüpfungen mit anderen Paketen, Fehlerkorrekturprüfsummen usw.
  • In verschiedenen Ausführungsformen kann ein Speicherungsclient, wie ein Vorrichtungstreiber, diese Informationen zusammen mit anderen Formen von Metadaten verwenden, um den Betrieb der ZNS-Speicherungsvorrichtung 400 zu verwalten. Der Treiber könnte diese Informationen beispielsweise dazu verwenden, die Durchführung von Lese- und Schreibvorgängen zu erleichtern, die ZNS-Speicherungsvorrichtung 400 in einen früheren Zustand zurückzuversetzen (einschließlich z. B. der Rekonstruktion verschiedener vom Treiber verwendeter Datenstrukturen und/oder der Wiedergabe einer Sequenz von Speicherungsvorgängen, die auf der Speicherungsvorrichtung 400 durchgeführt wurden), usw. Verschiedene Formen dieser Metadaten können verwendet werden.
  • 5 ist ein schematisches Blockdiagramm, das eine Ausführungsform eines ZNS-Speicherungssystems 500 gemäß der offenbarten Lösung veranschaulicht. Das ZNS-Speicherungssystem 500 kann ähnliche Funktionskomponenten in ähnlichen Anordnungen aufweisen, wie in 1 dargestellt. 1 und 5 veranschaulichen den Umstand, dass bestimmte Merkmale, Funktionen und Logik durch einen oder mehrere Speicherungsclients 112 implementiert werden. Zum Beispiel schließt in den Ausführungsformen von 1 und 5 der Speicherungsclient 112 den logischen Adressraum 114, die Metadaten 116, die FLASH-Übersetzungsschicht 118 und die Adresszuordnungstabelle 120 ein. Die Platzierung dieser Komponenten in einem oder mehreren Speicherungsclients 112, wie einem Vorrichtungstreiber, einem Betriebssystem, einer Datenbank, einem Dateisystem oder dergleichen, gibt dem Host mehr Kontrolle darüber, wie Daten auf der Speicherungsvorrichtung 102 organisiert, angeordnet und verwaltet werden.
  • Während die Konfiguration des ZNS-Speicherungssystems 500 dem Host mehr Kontrolle gibt, kann der Host 108 als Host, der einen Standard für in Zonen unterteilte Speicherungsvorrichtungen implementiert, die nichtflüchtigen Speichermedien unter dem aktuellen Standard für in Zonen unterteilte Speicherungsvorrichtungen möglicherweise nicht optimal nutzen. Zum Beispiel verfügt der Host möglicherweise über keine Informationen oder nicht ausreichend spezifische Informationen über den physischen Zustand des nichtflüchtigen Speichermediums. Insbesondere kann der Host 108 über begrenzte oder keine Informationen über einen Zustand von nichtflüchtigen Speichermedien verfügen, die in einer bestimmten Zone oder in jeder Zone verwendet werden. Außerdem kann der Host 108 über begrenzte oder keine Informationen über ein nichtflüchtiges Speichermedium verfügen, das einem Quertemperaturphänomen unterliegt.
  • Bestimmte Ausführungsformen der beanspruchten Lösung lösen mindestens diesen fehlenden Gesichtspunkt des Standards für in Zonen unterteilte Speicherungsvorrichtungen, indem sie einen Zonenmanager 600 in die Speicherungssteuerung 104 integrieren. Der Zonenmanager kann spezifische physische Eigenschaften und Attribute physischer Löschblöcke, die die Zone bilden, überwachen und verwalten. In einer Ausführungsform verwaltet der Zonenmanager 600 eine oder mehrere Zonenmetriken.
  • „Zonenmetrik‟ nimmt Bezug auf ein Maß für den Status, den Zustand, die Funktionsfähigkeit, die Zuverlässigkeit und/oder die Lebensfähigkeit einer Zone. Eine Zonenmetrik kann einer beliebigen Skala oder Maßeinheit zugeordnet sein, die auf einer geeigneten Granularitätsebene den Status, den Zustand, die Funktionsfähigkeit, die Zuverlässigkeit und/oder die Lebensfähigkeit der Zone übermittelt. Zum Beispiel ist in einer Ausführungsform die Zonenmetrik einer Skala von ganzen Zahlen zwischen 1 und 10 zugeordnet, wobei eine 1 auf der Skala eine optimale und ordnungsgemäß funktionierende Zone darstellt und eine 10 auf der Skala eine schlechte und unzuverlässige Zone darstellt.
  • In einer Ausführungsform ist die Zonenmetrik ein Maß für den Zustand einer Zone basierend auf einer oder mehreren Metriken für die physischen Löschblöcke, die die Zone bilden. In einer bestimmten Ausführungsform weist die Zonenmetrik eine Blockzustandsmetrik auf. In einer anderen Ausführungsform weist die Zonenmetrik eine Quertemperaturmetrik auf. In einer anderen Ausführungsform ist die Zonenmetrik ein Maß, das eine Blockzustandsmetrik und eine Quertemperaturmetrik kombiniert. In bestimmten Ausführungsformen kann eine Zonenmetrik mindestens teilweise aufgrund einer Beziehung zwischen der Zonenmetrik und physischen Löschblöcken, die die Zone bilden, auch als Zonenblockmetrik bezeichnet werden.
  • Beispiele für eine oder mehrere Metriken für die physischen Löschblöcke, die die Zone bilden, die verwendet werden können, um die Zonenmetrik zu bestimmen, schließen, ohne jedoch darauf beschränkt zu sein, eine PE-Zyklus-Anzahl für einen oder mehrere der physischen Löschblöcke, die die Zone bilden, eine physische Position der physischen Löschblöcke in einem nichtflüchtigen Speicherarray relativ zu anderen Komponenten, eine Lesefrequenz von Daten aus bestimmten physischen Löschblöcken, die die Zone bilden, ein. „PE-Zyklus“ nimmt Bezug auf eine Zählung der Anzahl, wie oft ein Satz von Speicherzellen programmiert und gelöscht wird. Der Satz von Speicherzellen kann jede Ansammlung von Speicherzellen einschließen, einschließlich eines Datenblocks, einer Wortleitung, einer Seite, einer logischen Seite, eines Löschblocks, eines logischen Löschblocks, eines Speicherarrays, eines Speicher-Dies oder dergleichen. PE-Zyklen können in Einheiten von Tausend bezeichnet werden, wie 4 k, 50 k und dergleichen.
  • In bestimmten Ausführungsformen kann ein Zonenmanager 600 eine Vielzahl von Zonenmetriken verwalten. Zwei Beispiele für eine Zonenmetrik schließen eine Blockzustandsmetrik und eine Quertemperaturmetrik ein. „Blockzustandsmetrik“ nimmt Bezug auf eine Zustandsmetrik für einen oder mehrere physische Löschblöcke. In einer Ausführungsform ist eine Blockzustandsmetrik eine Zustandsmetrik für einen einzelnen physischen Löschblock. In einer anderen Ausführungsform ist eine Blockzustandsmetrik eine Zustandsmetrik für einen Satz physischer Löschblöcke, wie zum Beispiel der physischen Löschblöcke, die eine Zone bilden.
  • „Zustandsmetrik‟ bezieht sich auf jede messbare Größe oder jeden messbaren Gesichtspunkt, die/der die „Gesundheit“ oder Zuverlässigkeit eines Satzes von Speicherzellen anzeigt. Bei der Verwendung von Speicherzellen werden diese abgenutzt, sodass Lese- und Schreibvorgänge mehr Zeit in Anspruch nehmen können, z. B. aufgrund der zusätzlich erforderlichen Fehlererkennung und -korrektur. Beispiele für Eigenschaften, die verwendet werden können, um eine Zustandsmetrik zu bestimmen, können die Programmier-Löschzyklus-Anzahl (PE-Anzahl), die Wahrscheinlichkeit des erfolgreichen Erhaltens von in Speicherzellen gespeicherten Daten, verbleibende Nutzungsdauer, ein Abnutzungsgrad, eine Fehlerrate, die Anzahl von Ausfallbits, die Änderungsrate des Zustands und/oder der Zuverlässigkeit und/oder dergleichen einschließen.
  • „Quertemperaturmetrik‟ nimmt Bezug auf ein Maß eines Quertemperaturzustands. In einer Ausführungsform weist die Quertemperaturmetrik eine Differenz zwischen einer Temperatur zum Zeitpunkt des Programmierens/Beschreibens einer Speicherzelle und einer Temperatur zum Zeitpunkt des Lesens oder eines Leseversuchs auf.
  • Der Zonenmanager 600 kann eine oder mehrere Zonenmetriken verwenden, um einen Zonenzustand zu bestimmen. Der Zonenmanager 600 stimmt sich mit der Speicherungssteuerung 104 ab, um den Zonenzustand zurück an den einen oder die mehreren Speicherungsclients 112 zu kommunizieren, die die Speicherungsvorrichtung 102 innerhalb des ZNS-Speicherungssystems 500 verwalten und nutzen. Das Kommunizieren dieses Zonenzustands an den Host und/oder an einen oder die mehreren Speicherungsclients 112 des Hosts ermöglicht es dem Host, fundierte Verwaltungsentscheidungen bezüglich der Daten über die Zonen der Speicherungsvorrichtung 102 zu treffen. Zum Beispiel können Daten mit hoher Priorität und hohem Wert in Zonen mit einem maximal guten Zonenzustand gespeichert werden. Weniger wichtige Daten oder Daten, auf die seltener zugegriffen wird, können in Zonen mit einem weniger guten Zonenzustand gespeichert werden.
  • Des Weiteren kann der Host mithilfe der Zonenzustandsinformationen von dem Zonenmanager 600 bestimmen, welche Zonen geschlossen werden sollen, wann eine neue Zone geöffnet werden soll, wann Daten von einer ersten Zone in eine zweite Zone verschoben werden sollen, und andere Verwaltungsentscheidungen für nichtflüchtige Speichermedien. Auf diese Weise verbessert der vom Zonenmanager 600 dem Host bereitgestellte Zonenzustand die Verwaltung von Daten im ZNS-Speicherungssystem 500 und verbessert dadurch das ZNS-Speicherungssystem 500.
  • Zusätzlich zum Verfolgen, Bestimmen und Kommunizieren von Zonenmetriken kann der Zonenmanager 600 auch Zonenverwaltungsbefehle vom Host 108 (und/oder Speicherungsclients 112) empfangen und darauf antworten. Zonenverwaltungsbefehle schließen z. B. Zonenschreibsperre, Zone öffnen, Zone schließen, Zone zurücksetzen, Zonenbericht und ähnliches ein. Der Zonenmanager 600 kann eine Zonenmetrik und/oder einen Zonenzustand unter Verwendung einer Vielzahl von Techniken kommunizieren. In einer Ausführungsform kann der Standard für in Zonen unterteilte Speicherungsvorrichtungen dahingehend geändert werden, dass er eine Zonenmetrik als Teil eines Zonenstatus einschließt, der von der Speicherungsvorrichtung 102 als Reaktion auf eine Host-Anforderung für ein Zoneninformationsprotokoll berichtet wird. In einer anderen Ausführungsform kann eine Speicherungsvorrichtung 102 den Host 108 unterbrechen, um die Zonenmetrik bereitzustellen. Diese Techniken und andere dem Fachmann bekannte Techniken liegen innerhalb des Schutzumfangs der hierin beanspruchten Lösung.
  • In einer Ausführungsform kann der Zonenmanager 600 der Speicherungssteuerung 104 signalisieren, eine Zonenmetrik und/oder einen Zonenzustand an den Host 108 zurückzumelden. Der Host 108 kann dann basierend auf dem gemeldeten Zonenzustand und/oder der Zonenmetrik bestimmen, welche Gegenmaßnahmen ggf. erforderlich sind. In Ausführungsformen, in denen der Zonenmanager 600 den Host 108 proaktiv benachrichtigt, können die Gegenmaßnahmen den Zustand und die Qualität von Speicherungsdiensten verbessern, die von der Speicherungsvorrichtung 102 bereitgestellt werden. Der Host 108 kann die Speicherungsvorrichtung 102 anweisen, eine Gegenmaßnahme durch einen Gegenmaßnahmebefehl zu implementieren.
  • „Gegenmaßnahme‟ nimmt Bezug auf ein Verfahren, einen Prozess, einen Schritt oder einen Vorgang, die eingerichtet sind, um ein negatives Attribut, einen negativen Faktor oder einen negativen Zustand abzuschwächen. Es sollte beachtet werden, dass in bestimmten Fällen eine praktikable Gegenmaßnahme darin besteht, keine Maßnahme in Bezug auf ein identifiziertes negatives Attribut, einen identifizierten negativen Faktor oder einen identifizierten negativen Zustand zu ergreifen. Während das Ergreifen keiner Maßnahme als passive Aktivität betrachtet werden kann, wird eine solche Reaktion auf ein negatives Attribut, einen negativen Faktor oder einen negativen Zustand hierin als Gegenmaßnahme betrachtet.
  • In bestimmten Ausführungsformen ist eine Gegenmaßnahme spezifisch für ein bestimmtes Problem oder einen Hinweis auf ein Problem. Beispiele für Gegenmaßnahmen, die verwendet werden können, schließen das Schließen einer Zone, das aktive Ändern einer Temperatur von Löschblöcken innerhalb einer Zone, das Verschieben von Daten einer Zone in eine andere Zone, das Anpassen eines Alarmschwellenwerts, das Verwalten eines oder mehrerer physischer Löschblöcke einer Zone unter Verwendung separater Zellspannungsverteilungstabellen (Cell Voltage Distribution, CVD) und das Ergreifen keiner Maßnahme ein.
  • „Zellspannungsverteilungstabelle‟ (CVD-Tabelle) nimmt Bezug auf eine Datenstruktur, wie eine Nachschlagetabelle, die Lesespannungsschwellenwerte für einen gegebenen Satz von Speicherzellen für jeden einer Anzahl von Zuständen speichert, die für die Speicherzellen verwaltet werden. In einer Ausführungsform, in der Speicherzellen ein Bit speichern (Single Level Cell, SLC), kann eine CVD-Tabelle Leseschwellenwerteinstellungen (oder Offsets) für jeden von zwei Zuständen speichern. In einer Ausführungsform, in der Speicherzellen zwei Bits speichern (Multi-Level Cell, MLC), kann eine CVD-Tabelle Leseschwellenwerteinstellungen (oder Offsets) für jeden von vier Zuständen speichern. In einer Ausführungsform, in der Speicherzellen drei Bits speichern (Multi-Level Cell, MLC), kann eine CVD-Tabelle Leseschwellenwerteinstellungen (oder Offsets) für jeden von acht Zuständen speichern.
  • In bestimmten Ausführungsformen ist jeder physische Löschblock einer CVD-Tabelle zugeordnet. Alternativ oder zusätzlich kann eine CVD-Tabelle gelesene Schwellenwerteinstellungen (oder Offsets) basierend auf einem Bereich von PE-Zyklen und/oder einem Bereich von Temperaturen einschließen. Durch Verwendung einer CVD-Tabelle von Leseschwellenspannungen, die in Abhängigkeit von dem gelesenen physischen Löschblock und/oder dem PE-Zyklus für den physischen Löschblock und/oder der Temperatur variieren, kann eine Die-Steuerung oder Speicherungssteuerung Daten aus dem physischen Löschblock auf zuverlässige Weise genau lesen.
  • Beispiele für Gegenmaßnahmen sind hierin eingeschlossen. Fachleute werden eine Vielzahl von Gegenmaßnahmen erkennen, die der Host 108 verwenden kann. In bestimmten Fällen kann der Host 108 bestimmen, dass die geeignete Antwort auf die gemeldete Zonenmetrik möglicherweise darin besteht, keine Maßnahme zu ergreifen. In bestimmten Ausführungsformen kann das Ergreifen keiner Maßnahme eine Gegenmaßnahme aufweisen.
  • In bestimmten Ausführungsformen kann den Zonenzustand ein subjektives oder relatives Maß sein, basierend auf einer Skala oder einem Bereich und basierend auf einer Anzahl von Faktoren und Parametern, die unter Verwendung von Logik, Schaltlogik, Firmware, Software oder dergleichen kombiniert werden. In einer anderen Ausführungsform kann den Zonenzustand nur durch eine Zonenmetrik angezeigt werden, die ein objektives Maß aufweisen kann, wie eine Anzahl oder einen Wert, die bzw. der basierend auf dem Zonenzustand, Zustandsmetriken oder anderen Parametern berechnet wird.
  • 6 veranschaulicht einen Zonenmanager 600 gemäß einer Ausführungsform. Der Zonenmanager 600 kann eingerichtet sein, um die Speicherungszuweisung und Speicherungsvorgänge mithilfe einer Implementierung von in Zonen unterteilten Namensräumen (ZNS) gemäß dem Standard für in Zonen unterteilte Speicherungsvorrichtungen zu verwalten. Der Zonenmanager 600 kann eine Überwachungsschaltung 602, eine Auswerteschaltung 604, eine Signalisierungsschaltung 606 und eine Behebungsschaltung 608 aufweisen. Der Zonenmanager 600 kann innerhalb der Speicherungssteuerung 104 einer Speicherungsvorrichtung implementiert sein, wie in 5 veranschaulicht. Alternativ oder zusätzlich kann der Zonenmanager 600 eine von der Speicherungssteuerung 104 getrennte Komponente aufweisen.
  • Die Auswerteschaltung 604 kann eingerichtet sein, um einen Zonenzustand für jede Zone in Bezug auf eine Zonenmetrik 610 zu bestimmen. Alternativ oder zusätzlich kann der Zonenmanager 600 einen Zonenzustand für einen Satz von Zonen, wie einen Satz offener Zonen, in Bezug auf eine Zonenmetrik 610 für jede Zone und/oder eine aggregierte Zonenmetrik für den Satz von Zonen bestimmen. In einer Ausführungsform weist die Zonenmetrik 610 eine Blockzustandsmetrik 618 für jede Zone auf. In einer anderen Ausführungsform weist die Zonenmetrik 610 eine Quertemperaturmetrik 620 für jede Zone auf.
  • „Zonenzustand‟ nimmt Bezug auf ein Maß eines Gesamtzustands einer Zone. In bestimmten Ausführungsformen zeigt der Zonenzustand ein Maß an Zuverlässigkeit und/oder Stabilität der Zone an. In einer Ausführungsform weist der Zonenzustand eine Kombination aus einer Blockzustandsmetrik, einer Quertemperaturmetrik und einer Vielfalt anderer Faktoren auf, einschließlich, aber nicht beschränkt auf, einen durchschnittlichen PE-Zyklus für physische Löschblöcke, die eine Zone bilden, eine Leserate, eine Anzahl von Ausfallbits für die Zone, eine Anzahl nicht funktionsfähiger physischer Löschblöcke, die ein Teil einer Zone sein können, und dergleichen. In bestimmten Ausführungsformen kann ein Zonenzustand basierend auf einer Formel bestimmt werden, die Faktoren in der Vielfalt der soeben aufgeführten Faktoren berücksichtigt. In einer anderen Ausführungsform kann ein Zonenzustand auf statistischen Daten, statistischen Formeln und/oder Vorhersagemaßnahmen beruhen, die auf heuristischen Daten beruhen, die von einem Hersteller von Speicherzellen gesammelt werden.
  • Der Zonenzustand ist ein Maß für eine Zone, die mehrere physische Löschblöcke aufweisen kann. In einer Ausführungsform ist der Zonenzustand repräsentativ für einen physischen Löschblock mit dem am wenigsten positiven Zustand von denjenigen, die die Zone bilden (z. B. ein konservativeres Zonenzustandsmaß). In einer anderen Ausführungsform ist den Zonenzustand repräsentativ für einen physischen Löschblock mit dem positivsten Zustand von denjenigen, die die Zone bilden. In einer anderen Ausführungsform ist der Zonenzustand repräsentativ für einen aggregierten Zustand, wie einen durchschnittlichen Zustand, von physischen Löschblöcken von denjenigen, die die Zone bilden.
  • Die Auswerteschaltung 604 kann zum Beispiel Temperaturmesswerte 612 von einem oder mehreren Temperatursensoren 614 empfangen, die eingerichtet sind, um mehrere physische Löschblöcke in jeder Zone zu überwachen. Die Temperaturmesswerte 612 können eine Temperatur für ein Die, eine Ebene, einen physischen Löschblock und/oder für die Speichervorrichtung aufweisen. Die Auswerteschaltung 604 kann Temperaturmesswerte 612 periodisch (z. B. alle 60 Sekunden) oder als Reaktion auf ein Ereignis, wie einen Programmierspeicherungsvorgang, empfangen. Außerdem kann die Auswerteschaltung 604 auf Metadaten zugreifen, die eine Temperatur zu dem Zeitpunkt angeben, an dem Daten eines physischen Löschblocks oder einer Zone beschrieben wurden (z. B. eine programmierte Temperatur), zum Beispiel als Reaktion auf einen Lesespeicherungsvorgang an Daten der Zone.
  • „Temperatursensor‟ nimmt Bezug auf jede geeignete Technologie, die einen Temperatursensor implementieren kann, einschließlich Technologie, die derzeit in herkömmlichen Speichertemperatursensoren verwendet wird. Außerdem sollte beachtet werden, dass, obwohl der Temperatursensor in dieser Ausführungsform in dem Speicher-Die angeordnet sein kann, der Temperatursensor in einer anderen Komponente in dem Speicherungssystem, wie der Steuerung, angeordnet sein kann oder eine separate Komponente in dem Speicherungssystem sein kann.
  • Die Auswerteschaltung 604 kann eine Quertemperaturmetrik 620 basierend auf den Temperaturmesswerten 612 und einer programmierten Temperatur 622 bestimmen. „Programmierte Temperatur“ nimmt Bezug auf die Temperatur der Speicherzellen und/oder des Speicher-Dies zu dem Zeitpunkt, zu dem Daten in die Speicherzellen programmiert (d. h. gespeichert) werden. In bestimmten Ausführungsformen kann die programmierte Temperatur 622 in einem Header für einen physischen Löschblock gespeichert sein, und die Auswerteschaltung 604 kann die programmierte Temperatur 622 aus dem flüchtigen Speicher oder aus dem nichtflüchtigen Speichermedium abrufen. Alternativ kann die programmierte Temperatur 622 in einer Tabelle zum Vergleich mit gemessenen Temperaturmesswerten 612 gespeichert werden.
  • In bestimmten Ausführungsformen kann die Auswerteschaltung 604 zum Bestimmen des Zonenzustands eine Vielfalt von Faktoren und Überlegungen in Bezug auf die physischen Löschblöcke einer Zone überprüfen und berücksichtigen. In einer Ausführungsform kann die Auswerteschaltung 604 eingerichtet sein, um Abnutzungsgrade für jeden physischen Löschblock jeder Zone basierend auf Abnutzungsgraddaten 616 zu bestimmen.
  • Die Abnutzungsgraddaten 616 können nach Bedarf dynamisch bestimmt werden und können statische Daten einschließen, die Nutzungsmuster und den Zustand der physischen Löschblöcke einer Zone widerspiegeln. In einer Ausführungsform können die Abnutzungsgraddaten 616 durch Überwachen des physischen Speicher-Dies 106 oder auf einer anderen Steuer- und Verwaltungsschaltlogik bereitgestellt werden. Die Auswerteschaltung 604 kann eine Blockzustandsmetrik 618 basierend auf einem Abnutzungsgrad für den physischen Löschblock bestimmen. In einer Ausführungsform kann die Auswerteschaltung 604 eine Zonenmetrik 610 basierend auf der Quertemperaturmetrik 620 bestimmen. In einer Ausführungsform bestimmt die Auswerteschaltung 604 eine Zonenmetrik 610 basierend auf der Blockzustandsmetrik 618 und/oder der Quertemperaturmetrik 620. In einigen Ausführungsformen können die Abnutzungsgraddaten 616 und Temperaturmesswerte 612 von einem System bereitgestellt werden, wie es in 7 veranschaulicht ist.
  • „Abnutzungsgrad‟ nimmt Bezug auf ein Maß eines Zustands eines Satzes von Speicherzellen, um ihre bestimmungsgemäße Funktion des Speicherns, Haltens und Bereitstellens von Daten auszuführen. In bestimmten Ausführungsformen ist der Abnutzungsgrad ein Maß für den Grad der Verschlechterung, den ein Satz von Speicherzellen erfahren hat. Der Abnutzungsgrad kann in Form einer bestimmten Anzahl von PE-Zyklen relativ zur Gesamtzahl der PE-Zyklen ausgedrückt werden, die die Speicherzellen voraussichtlich durchlaufen, bevor sie defekt/unbrauchbar werden.
  • Zum Beispiel wird angenommen, dass ein Satz von Speicherzellen so ausgelegt und hergestellt ist, dass er für fünftausend PE-Zyklen angemessen funktioniert. Sobald der beispielhafte Satz von Speicherzellen zweitausend PE-Zyklen erreicht, kann der Abnutzungsgrad als ein Verhältnis der Anzahl der abgeschlossenen PE-Zyklen zu der Anzahl der PE-Zyklen ausgedrückt werden, für deren Abschließen der Satz ausgelegt ist. In diesem Beispiel kann der Abnutzungsgrad als 2/5, 0,4 oder 40 % abgenutzt oder verwendet ausgedrückt werden. Der Abnutzungsgrad kann auch in Bezug darauf ausgedrückt werden, wie viele PE-Zyklen von dem Satz erwartet werden. In diesem Beispiel kann die verbleibende Abnutzung oder Lebensdauer des Satzes von Speicherzellen 3/5, 0,6 oder 60 % betragen. Anders ausgedrückt, kann der Abnutzungsgrad den Grad der Abnutzung oder die Lebensdauer einer Speicherzelle darstellen, der/die bereits eingetreten/abgelaufen ist, oder der Abnutzungsgrad kann den Grad der Abnutzung oder die Lebensdauer einer Speicherzelle darstellen, der/die verbleibt, bevor die Speicherzelle defekt, betriebsunfähig oder unbrauchbar wird.
  • Die Überwachungsschaltung 602 verfolgt mehrere Zonenmetriken 610. In einer Ausführungsform kann die Überwachungsschaltung 602 eingerichtet sein, um die Zonenmetrik 610 für jede Zone einer nichtflüchtigen Speicherungsvorrichtung zu überwachen. Die Überwachungsschaltung 602 kann einen Alarmschwellenwert 624 einschließen, der verwendet wird, um zu bestimmen, wann eine Zonenmetrik 610 für eine bestimmte Zone oder einen Satz von Zonen auf oder außerhalb einer bestimmten Stufe liegt. In einer Ausführungsform verfolgt die Überwachungsschaltung 602 Gruppen von Zonen in Bezug auf einen bestimmten Alarmschwellenwert 624. Zum Beispiel kann die Überwachungsschaltung 602 alle offenen Zonen in Bezug auf einen bestimmten Alarmschwellenwert 624 verfolgen.
  • Die Überwachungsschaltung 602 kann weiterhin mit einem kritischen Schwellenwert 626 eingerichtet sein, gegen den die Zonenmetrik 610 überwacht werden kann. Der Alarmschwellenwert 624 und der kritische Schwellenwert 626 können in alternativen Ausführungsformen als Teil der Auswerteschaltung 604, einer anderen Logik innerhalb der Speicherungssteuerung 104 oder einer Logik innerhalb des Hosts 108 eingerichtet sein. In einer Ausführungsform wird, wenn ein kritischer Schwellenwert 626 erfüllt ist, auch der Alarmschwellenwert 624 erfüllt.
  • „Kritischer Schwellenwert‟ nimmt Bezug auf einen Typ von Schwellenwert, der so vordefiniert ist, dass, wenn ein Wert, eine Bewertung oder eine Bedingung den kritischen Schwellenwert erfüllt, das System, die Vorrichtung oder das Verfahren eingerichtet ist, um ein höheres Signal entweder eines Problems oder Fehlers oder eines Potentials für einen bevorstehenden Problem- oder Fehlerzustand auszulösen. In bestimmten Ausführungsformen kann ein System, eine Vorrichtung oder ein Verfahren auf die Erfüllung eines kritischen Schwellenwerts reagieren, indem es ein anderes System, einen anderen Host oder eine andere Steuerung proaktiv alarmiert. In einer Ausführungsform können als Reaktion darauf, dass eine Zonenmetrik 610 einen Alarmschwellenwert 624 erfüllt, der Zonenmanager 600 und/oder die Speicherungssteuerung 104 einen Interrupt auslösen, um den Zustand an einen Host 108 zu signalisieren.
  • Die Signalisierungsschaltung 606 kann dazu dienen, Befehle und Informationen zwischen dem Zonenmanager 600 und dem Host 108 weiterzuleiten. In einer Ausführungsform kann die Signalisierungsschaltung 606 Teil der Speicherungssteuerung 104 sein. Die Signalisierungsschaltung 606 kann eingerichtet sein, um einen Host 108 über den Zonenzustand 628 für eine oder mehrere Zonen oder für eine Gruppe von Zonen als Reaktion darauf zu benachrichtigen, dass die Zonenmetrik 610 für die Zone(n) den Alarmschwellenwert 624 erfüllt. In einer Ausführungsform ist die Zonenmetrik repräsentativ für den Zonenzustand, sodass die Signalisierungsschaltung 606 den Host 108 über den Zonenzustand benachrichtigt, indem sie die Zonenmetrik bereitstellt.
  • In bestimmten Ausführungsformen kann die Signalisierungsschaltung 606 zusammen mit dem Zonenzustand auch Metadaten 630 an den Host 108 senden. Die Metadaten 630 können zusätzliche Daten über einen oder mehrere physische Löschblöcke, eine oder mehrere Zonen oder eine Kombination von diesen bereitstellen. In einer Ausführungsform können die Metadaten 630 zusätzliche Daten über die eine oder die mehreren Zonen bereitstellen, für die ein oder mehrere Zonenzustandswerte den Alarmschwellenwert 624 erfüllen. In einer Ausführungsform weisen die Metadaten 630 die Zonenmetrik 610 auf.
  • In einer Ausführungsform benachrichtigt die Signalisierungsschaltung 606 den Host 108 proaktiv, ohne auf einen Zonenbefehl oder einen anderen Befehl vom Host 108 zu warten. In einer anderen Ausführungsform kann die Signalisierungsschaltung 606 den Host 108 nur als Reaktion auf einen Zonenbefehl oder einen anderen Befehl oder eine andere Anweisung vom Host 108 benachrichtigen.
  • Die Signalisierungsschaltung 606 kann eine Benachrichtigung über einen solchen Alarmzustand von der Überwachungsschaltung 602 und/oder Auswerteschaltung 604 empfangen. Als Reaktion auf die Benachrichtigung über einen Alarmzustand kann die Signalisierungsschaltung 606 die Metadaten 630 für die angegebenen Zonen an den Host 108 senden.
  • In bestimmten Ausführungsformen agiert der Zonenmanager 600 ohne Anweisungen vom Host 108, wenn der Zustand einer Zone solche Schritte rechtfertigt, beispielsweise wenn eine Zonenmetrik einen kritischen Schwellenwert erfüllt. Ein solcher Zustand wird hierin als kritischer Zustand bezeichnet. Die Behebungsschaltung 608 kann eingerichtet sein, um eine oder mehrere Gegenmaßnahmen 634 als Reaktion darauf zu implementieren, dass die Zonenmetrik den kritischen Schwellenwert 626 erfüllt. In einigen Ausführungsformen kann der Host 108 gleichzeitig mit der Implementierung einer Gegenmaßnahme und/oder nach der Implementierung der Gegenmaßnahme eine Benachrichtigung über einen kritischen Zustand empfangen.
  • Sobald der Host 108 über die Zonenmetrik benachrichtigt wurde, kann der Host 108 bestimmen, wie er reagieren und die Situation behandeln soll. Der Host 108 ist in der Lage, Entscheidungen über die Handhabung der Zonenmetrik zu treffen, da der Host 108 möglicherweise auch über die Art der Daten in jeder Zone, die Zugriffshäufigkeit für Daten in jeder Zone, die erwartete Lebensdauer für Daten in jeder Zone, den Wert der Daten in jeder Zone und dergleichen informiert ist. Somit bestimmt der Host 108 in bestimmten Ausführungsformen, wie zu reagieren ist, und kann einen Gegenmaßnahmebefehl 632 an den Zonenmanager 600 ausgeben. Die Behebungsschaltung 608 kann den Gegenmaßnahmebefehl 632 empfangen, handhaben und darauf antworten. „Gegenmaßnahmebefehl“ nimmt Bezug auf einen Speicherungsbefehl, der eingerichtet ist, eine Gegenmaßnahme zu implementieren, um eine Verschlechterung einer Zone und/oder eine Verschlechterung des Zonenzustands zu mildern oder rückgängig zu machen.
  • In bestimmten Ausführungsformen implementiert die Behebungsschaltung 608 die Gegenmaßnahme als Reaktion auf den Gegenmaßnahmebefehl 632. In einer anderen Ausführungsform stimmt sich die Behebungsschaltung 608 mit der Speicherungssteuerung 104 und/oder anderen Komponenten der Speicherungssteuerung 104 ab, um den Gegenmaßnahmebefehl 632 zu implementieren. In einer Ausführungsform kann die Behebungsschaltung 608 statt auf einen Gegenmaßnahmebefehl 632 zu warten, eine Gegenmaßnahme als Reaktion darauf implementieren, dass die Zonenmetrik einen kritischen Schwellenwert 626 erfüllt.
  • 7 veranschaulicht ein ZNS-Speicherungssystem 700 gemäß einer Ausführungsform. Das ZNS-Speicherungssystem 700 kann ähnliche Speicherkomponenten wie die in Bezug auf 1, 5 und 6 beschriebenen aufweisen. Das ZNS-Speicherungssystem 700 kann eine Speicherungsvorrichtung 102 einschließen, die eine Speicherungssteuerung 104, einen flüchtigen Speicher 702 und ein nichtflüchtiges Speicherarray 704 aufweist, das mindestens einen Speicher-Die 106 aufweist. Das ZNS-Speicherungssystem 700 kann weiterhin einen Temperaturmanager 706 und einen Zustandsmanager 708 aufweisen, die in der Speicherungssteuerung 104 implementiert sind. Fachleute werden erkennen, dass diese Komponenten in bestimmten Systemen innerhalb anderer Teile der Speicherungsvorrichtung 102 integriert sein können oder vom Host 108 ausgeführt werden können.
  • Die Speicherungssteuerung 104 kann über einen Bus 124 mit dem flüchtigen Speicher 702 und dem nichtflüchtigen Speicherarray 704 gekoppelt sein. Die Speicherungssteuerung 104 kann eingerichtet sein, um sich mit einem oder mehreren Hosts 108 zu verbinden und eine Vielzahl von Zonen innerhalb des nichtflüchtigen Speicherarrays 704 basierend auf einem Standard für in Zonen unterteilte Speicherungsvorrichtungen 716 zu betreiben. Da die Speicherungsvorrichtung 102 dem Standard für in Zonen unterteilte Speicherungsvorrichtungen 716 entspricht, kommuniziert die Speicherungssteuerung 104 mit dem Host 108 über den Datenbus 122 unter Verwendung eines Protokolls, das sich nach dem Standard für in Zonen unterteilte Speicherungsvorrichtungen 716 richtet. Die Speicherungssteuerung 104 kann einen Zonenmanager 600, wie in 6 dargestellt, sowie einen Temperaturmanager 706 und einen Zustandsmanager 708 aufweisen.
  • Der Temperaturmanager 706 kann eingerichtet sein, um eine Quertemperaturmetrik für jeden physischen Löschblock jeder Zone mittels eines oder mehrerer Temperatursensoren 614, die mit jedem Speicher-Die 106 gekoppelt sind, zu überwachen. Der Temperaturmanager 706 kann weiterhin eingerichtet sein, den Zonenmanager 600 als Reaktion darauf zu benachrichtigen, dass die Quertemperaturmetrik für eine oder mehrere der Zonen einen Alarmschwellenwert erfüllt. Der Temperaturmanager 706 kann den Zonenmanager 600 in Bezug auf eine Quertemperaturmetrik sowohl für offene Zonen als auch für geschlossene Zonen oder für beide getrennt benachrichtigen.
  • In einer Ausführungsform kann der Temperaturmanager 706 eine durchschnittliche Temperatur für die Zonen verfolgen. In einer anderen Ausführungsform kann der Temperaturmanager 706 jeden physischen Löschblock jeder Zone für Quertemperaturzustände verfolgen. Alarmschwellenwerte können so definiert sein, dass einer für jede Stufe, jeden Zustand, jede Quertemperatur, Zonenblockmetrik und/oder dergleichen vorhanden ist.
  • Der Zustandsmanager 708 kann eingerichtet sein, um eine Blockzustandsmetrik für jeden physischen Löschblock jeder Zone zu überwachen. Der Zustandsmanager 708 kann weiterhin eingerichtet sein, den Zonenmanager 600 als Reaktion darauf zu benachrichtigen, dass die Blockzustandsmetrik für die eine oder die mehreren der Zonen den Alarmschwellenwert erfüllt.
  • Der Zonenmanager 600 kann eingerichtet sein, um sich mit dem Host 108 zu verbinden und eine Vielzahl von Zonen innerhalb des nichtflüchtigen Speicherarrays 704 mittels eines Standards für in Zonen unterteilte Speicherungsvorrichtungen zu verwalten.
  • „Standard für in Zonen unterteilte Speicherungsvorrichtungen‟ nimmt Bezug auf einen technischen Standard zur Implementierung einer in Zonen unterteilten Speicherungsvorrichtung. Der Standard kann von einer Firmengruppe oder einer Standardisierungsorganisation (auf regionaler, nationaler oder internationaler Ebene) festgelegt werden. In einer Ausführungsform, die durch einen Standard für in Zonen unterteilte Speicherungsvorrichtungen definiert ist, weist eine Zone eine oder mehrere Speicherzellen auf, die gemäß einem Speicherstandard, einer Speicherarchitektur oder einem Speicherdesign organisiert und betrieben werden, einschließlich, aber nicht beschränkt auf, den SCSI-ZBC-Standard (Small Computer System Interface Zoned Block Commands), ZD-ATA-Standard (Zoned Device Advanced Technology Attachment) auf SMR-Festplatten (Shingled Magnetic Recording), der NVMe-Standard (Non-Volatile Memory Express), der ZNS-Standard (Zoned Namespaces), die OpenChannel SSD-Architektur (Solid-State Drive) oder dergleichen. Beispiele für diese Standardarchitekturen oder Konstruktionen sind auf den Websites zonedstorage.io und lightnvm.io erhältlich.
  • Der Zonenmanager 600 kann eingerichtet sein, um eine Zonenmetrik basierend zumindest teilweise auf einer der Quertemperaturmetriken von dem Temperaturmanager 706 und der Blockzustandsmetriken von dem Zustandsmanager 708 zu bestimmen. Der Zonenmanager 600 kann weiterhin eingerichtet sein, als Reaktion auf einen Lesebefehl 710 vom Host 108 für eine Zone die Quertemperaturmetrik für die Zone an den Host 108 zu melden. „Lesebefehl“ nimmt auf eine Art von Speicherungsbefehl Bezug, der Daten aus Speicherzellen liest.
  • In einigen Ausführungsformen kann der Zonenmanager 600 eingerichtet sein, um die Zonenmetrik als Reaktion auf einen Speicherungsbefehl 712 vom Host zu melden. „Speicherungsbefehl“ nimmt auf jeden Befehl Bezug, der sich auf einen Speicherungsvorgang bezieht. Beispiele für Speicherungsbefehle schließen, ohne darauf beschränkt zu sein, Lesebefehle, Schreibbefehle, Wartungsbefehle, Diagnosebefehle, Testmodusbefehle und alle anderen Befehle ein, die eine Speicherungssteuerung von einem Host empfangen oder an eine andere Komponente, eine Vorrichtung oder ein System ausgeben kann.
  • Der Zonenmanager 600 kann eingerichtet sein, um eine oder mehrere Gegenmaßnahmen an einer oder mehreren Zonen als Reaktion auf einen Bericht der Zonenmetrik an den Host 108 zu implementieren, der eingerichtet ist, um die Zonen zu verwalten. Gegenmaßnahmen können das Neuzuweisen von Zonen einschließen, um den relativen oder durchschnittlichen Gesundheitszustand von physischen Löschblöcken, die eine Zone bilden, auszugleichen, oder das Verschieben oder Implementieren eines Kühlprozesses für Zonen, die Querschnittstemperaturprobleme aufweisen. In bestimmten Ausführungsformen kann der Kühlprozess das Aktivieren bestimmter aktiver Kühlkomponenten, wie eines oder mehrerer Lüfter und/oder eines Flüssigkeitskühlsystems, einschließen.
  • In einigen Ausführungsformen kann, wenn ein Alarmschwellenwert erfüllt ist und Gegenmaßnahmen als Ergebnis angefordert werden, die Speicherungssteuerung 104 eingerichtet sein, Eingabe/Ausgabe-Vorgänge (E/A) 714 mit dem Host 108 zu drosseln. Diese Drosselung kann beibehalten werden, bis der Zonenmanager 600 bestätigt, dass die Zonenmetrik den Alarmschwellenwert nicht mehr erfüllt, was anzeigt, dass die vom Host 108 angeforderten Gegenmaßnahmen erfolgreich waren. „Eingabe/Ausgabe-Vorgang (E/A)“ nimmt Bezug auf einen Speicherungsvorgang, der entweder zum Verschieben von Daten in einen Speicher-Die (Eingabe) oder zum Verschieben von Daten aus einem Speicher-Die (Ausgabe) führt. Ein Beispiel für einen Eingabespeicherungsvorgang ist das Speichern oder Programmieren von Daten in Speicherzellen eines oder mehrerer Speicher-Dies. Ein Beispiel für einen Ausgabespeicherungsvorgang ist das Lesen oder Abtasten von Daten aus Speicherzellen eines oder mehrerer Speicher-Dies.
  • 8 ist ein beispielhaftes Blockdiagramm einer Rechenvorrichtung 800, die Ausführungsformen der Lösung einschließen kann. 8 ist lediglich veranschaulichend für ein Maschinensystem zur Durchführung von Gesichtspunkten der hierin beschriebenen technischen Prozesse und schränkt den Umfang der Ansprüche nicht ein. Ein gewöhnlicher Fachmann würde andere Abweichungen, Modifikationen und Alternativen erkennen. In bestimmten Ausführungsformen schließt die Rechenvorrichtung 800 ein Datenverarbeitungssystem 802, ein Kommunikationsnetzwerk 804, eine Kommunikationsnetzwerkschnittstelle 806, Eingabevorrichtung(en) 808, Ausgabevorrichtung(en) 810 und dergleichen ein.
  • Wie in 8 dargestellt, kann das Datenverarbeitungssystem 802 einen oder mehrere Prozessoren 812 und ein Speicherungssubsystem 814 einschließen. „Prozessor“ nimmt Bezug auf alle Schaltkreise, Komponenten, Chips, Dies, Baugruppen oder Module, die eingerichtet sind, um Maschinenanweisungen zu empfangen, zu interpretieren, zu dekodieren und auszuführen. Beispiele für einen Prozessor können, ohne darauf beschränkt zu sein, eine Zentralverarbeitungseinheit, einen Allzweckprozessor, einen anwendungsspezifischen Prozessor, eine Grafikverarbeitungseinheit (GPU), ein feldprogrammierbares Gate-Array (Field Programmable Gate Array, FPGA), eine anwendungsspezifische integrierte Schaltung (Application Specific Integrated Circuit, ASIC), ein System auf einem Chip (System on a Chip, SoC), einen virtuellen Prozessor, einen Prozessorkern und Ähnliches einschließen.
  • Der/die Prozessor(en) 812 kommunizieren mit einer Anzahl von Peripherievorrichtungen über ein Bussubsystem 816. Diese Peripherievorrichtungen können Eingabevorrichtung(en) 808, Ausgabevorrichtung(en) 810, Kommunikationsnetzwerkschnittstelle 806 und das Speicherungssubsystem 814 einschließen. In einer Ausführungsform weist das Speicherungssubsystem 814 eine oder mehrere Speicherungsvorrichtungen und/oder eine oder mehrere Speichervorrichtungen auf.
  • „Speicherungsvorrichtung‟ bezieht sich auf jede Hardware, jedes System, Subsystem, jede Schaltung, Komponente, jedes Modul, jedes nichtflüchtige Speichermedium, jede Festplatte, jedes Speicherungsarray, jede Einrichtung oder Vorrichtung, die so eingerichtet, programmiert, entworfen oder konstruiert ist, dass sie Daten für eine bestimmte Zeit speichert und die Daten in der Speicherungsvorrichtung behält, während die Speicherungsvorrichtung keine Energie von einer Stromversorgung verbraucht. Beispiele für Speicherungsvorrichtungen schließen ein Festplattenlaufwerk, FLASH-Speicher, einen MRAM-Speicher, eine Festkörperspeicherungsvorrichtung, nur ein Haufen von Platten (Just a Bunch Of Disks, JBOD), „nur ein Haufen von Flash“ (Just a Bunch OfFlash, JBOF), eine externe Festplatte, eine interne Festplatte und Ähnliches ein, ohne darauf beschränkt zu sein. „Speicher“ nimmt Bezug auf jede Hardware, Schaltung, Komponente, Modul, Logik, Vorrichtung oder Gerät, die eingerichtet, programmiert, entworfen, angeordnet oder konstruiert wurde, um Daten zu speichern. Bestimmte Arten von Speichern erfordern die Verfügbarkeit einer konstanten Leistungsquelle, um die Daten zu speichern und zu bewahren. Andere Arten von Speicher behalten und/oder speichern die Daten, wenn eine Leistungsquelle nicht verfügbar ist.
  • In einer Ausführungsform schließt das Speicherungssubsystem 814 einen flüchtigen Speicher 818 und einen nichtflüchtigen Speicher 820 ein. Der flüchtige Speicher 818 und/oder der nichtflüchtige Speicher 820 können computerausführbare Befehle speichern, die allein oder zusammen Logik 822 bilden, die, wenn sie auf den/die Prozessor(en) 812 angewendet und von diesem/diesen ausgeführt wird/werden, Ausführungsformen der hierin offenbaren Prozesse implementieren.
  • „Flüchtiger Speicher" nimmt Bezug auf eine Kurzform für flüchtige Speichermedien. In bestimmten Ausführungsformen nehmen flüchtige Speicher Bezug auf die flüchtigen Speichermedien und die Logik, Steuerungen, Prozessoren, Zustandsmaschinen und/oder andere Peripherieschaltungen, die die flüchtigen Speichermedien verwalten und den Zugriff auf die flüchtigen Speichermedien ermöglichen.
  • „Flüchtige Speichermedien‟ nimmt Bezug auf jede Hardware, Vorrichtung, Komponente, Element oder Schaltung, die eingerichtet ist, um eine veränderbare physikalische Eigenschaft zur Darstellung eines Binärwerts von Null oder Eins aufrechtzuerhalten, für den die veränderbare physische Eigenschaft in einen Standardzustand zurückkehrt, der nicht mehr den Binärwert darstellt, wenn eine primäre Leistungsquelle entfernt wird, oder wenn keine primäre Leistungsquelle verwendet wird, um den dargestellten Binärwert aufzufrischen. Beispiele für flüchtige Speichermedien schließen dynamische Direktzugriffsspeicher (Dynamic Random Access Memory - DRAM), statische Direktzugriffsspeicher (Static Random Access Memory - SRAM), Direktzugriffsspeicher mit doppelter Datenrate (Double Data Rate Random Access Memory - DDR RAM) oder andere Festkörperspeicher mit Direktzugriff ein, sind aber nicht darauf beschränkt.
  • Während die flüchtigen Speichermedien hierin in verschiedenen Ausführungsformen als „Speichermedien“ bezeichnet werden, können die flüchtigen Speichermedien allgemeiner als flüchtiger Speicher bezeichnet werden.
  • In bestimmten Ausführungsformen sind Daten, die in flüchtigen Speichermedien gespeichert sind, auf Byte-Ebene adressierbar, was bedeutet, dass die Daten in den flüchtigen Speichermedien in Bytes (8 Bit) von Daten organisiert sind, die jeweils eine einzigartige Adresse haben, wie eine logische Adresse.
  • „Nichtflüchtiger Speicher“ nimmt auf eine Kurzform für nichtflüchtige Speichermedien Bezug. In bestimmten Ausführungsformen nehmen nichtflüchtige Speichermedien Bezug auf die nichtflüchtigen Speichermedien und die Logik, Steuerungen, Prozessoren, Zustandsmaschinen und/oder andere Peripherieschaltungen, die die nichtflüchtigen Speichermedien verwalten und den Zugriff auf die nichtflüchtigen Speichermedien ermöglichen.
  • „Logik‟ nimmt Bezug auf Maschinenspeicherschaltkreise, nicht-transitorische maschinenlesbare Medien und/oder Schaltkreise, die über ihr Material und/oder über ihre Material-Energie-Konfiguration Steuer- und/oder Verfahrenssignale und/oder Einstellungen und Werte (wie Widerstand, Impedanz, Kapazität, Induktivität, Strom-/Spannungswerte usw.) aufweisen, die angewendet werden können, um den Betrieb einer Vorrichtung zu beeinflussen. Magnetische Medien, elektronische Schaltungen, elektrischer und optischer Speicher (sowohl flüchtig als auch nichtflüchtig) und Firmware sind Beispiele für Logik. Logik schließt insbesondere reine Signale oder Software per se aus (jedoch nicht Maschinenspeicher, die Software aufweisen und dadurch wichtige Konfigurationen ausbilden).
  • Die Eingabevorrichtung(en) 808 schließen Vorrichtungen und Mechanismen zur Eingabe von Informationen in das Datenverarbeitungssystem 802 ein. Diese können eine Tastatur, ein Tastenfeld, einen Berührungsbildschirm, der in eine grafische Benutzeroberfläche eingeschlossen ist, Audio-Eingabegeräte wie Spracherkennungssysteme, Mikrofone und andere Arten von Eingabegeräten einschließen. In verschiedenen Ausführungsformen können die Eingabevorrichtung(en) 808 als Computermaus, Trackball, Trackpad, Joystick, drahtlose Fernbedienung, Zeichentablett, Sprachbefehlssystem, Blickverfolgungssystem und dergleichen ausgeführt sein. Die Eingabevorrichtung(en) 808 ermöglichen dem Benutzer üblicherweise, Objekte, Icons, Kontrollbereiche, Text und dergleichen, die auf einer grafischen Benutzeroberfläche erscheinen, durch einen Befehl wie einen Knopfdruck oder dergleichen auszuwählen.
  • Die Ausgabevorrichtung(en) 810 schließen Vorrichtungen und Mechanismen für die Ausgabe von Informationen aus dem Datenverarbeitungssystem 802 ein. Diese können eine graphische Benutzeroberfläche, Lautsprecher, Drucker, Infrarot-LEDs usw. einschließen, wie in der Technik gut verstanden wird. In bestimmten Ausführungsformen ist eine grafische Benutzeroberfläche direkt über eine Kabelverbindung an das Bussubsystem 816 gekoppelt. In anderen Ausführungsformen ist die grafische Benutzeroberfläche über die Kommunikationsnetzwerkschnittstelle 806 an das Datenverarbeitungssystem 802 gekoppelt. Beispielsweise kann die grafische Benutzeroberfläche eine Befehlszeilenschnittstelle auf einer separaten Rechenvorrichtung 800 wie einem Desktop, Server oder mobilen Vorrichtung aufweisen.
  • Die Schnittstelle des Kommunikationsnetzwerks 806 stellt eine Schnittstelle zu Kommunikationsnetzwerken (z. B. Kommunikationsnetzwerk 804) und Vorrichtungen außerhalb des Datenverarbeitungssystems 802 bereit. Die Schnittstelle des Kommunikationsnetzwerks 806 kann als eine Schnittstelle zum Empfangen von Daten und Übertragen von Daten an andere Systeme dienen. Ausführungsformen der Schnittstelle des Kommunikationsnetzwerks 806 können eine Ethernet-Schnittstelle, ein Modem (Telefon, Satellit, Kabel, ISDN), eine (asynchrone) digitale Abonnentenlinie (DSL), FireWire, USB, eine drahtlose Kommunikationsschnittstelle wie Bluetooth oder WiFi, eine drahtlose Nahfeldkommunikationsschnittstelle, eine zellulare Schnittstelle und ähnliches einschließen.
  • Die Schnittstelle des Kommunikationsnetzwerks 806 kann über eine Antenne, ein Kabel oder ähnliches mit dem Kommunikationsnetzwerk 804 gekoppelt werden. In einigen Ausführungsformen kann die Schnittstelle des Kommunikationsnetzwerks 806 physisch auf einer Schaltplatine des Datenverarbeitungssystems 802 integriert sein oder in einigen Fällen in Software oder Firmware umgesetzt sein, wie „Softmodems“ oder Ähnliches.
  • Die Rechenvorrichtung 800 kann eine Logik einschließen, welche die Kommunikationen über ein Netzwerk unter Verwendung von Protokollen wie HTTP, TCP/IP, RTP/RTSP, IPX, UDP und dergleichen ermöglicht.
  • Der flüchtige Speicher 818 und der nichtflüchtige Speicher 820 sind Beispiele für greifbare Medien, die eingerichtet sind, um computerlesbare Daten und Anweisungen zu speichern, um verschiedene Ausführungsformen der hierin beschriebenen Prozesse umzusetzen. Andere Arten von greifbaren Medien schließen abnehmbare Speicher (z. B. steckbare USB-Speicherungsvorrichtungen, SIM-Karten für Mobilvorrichtungen), optische Speicherungsmedien wie CD-ROMS, DVDs, Halbleiterspeicher wie Flash-Speicher, nicht-transitorische Nur-Lese-Speicher (ROMS), batteriegestützte flüchtige Speicher, vernetzte Speicherungsvorrichtungen und dergleichen ein. Der flüchtige Speicher 818 und der nichtflüchtige Speicher 820 können so eingerichtet sein, dass sie die grundlegenden Programmier- und Datenkonstrukte speichern, die die Funktionalität der offenbarten Prozesse und anderer Ausführungsformen davon bereitstellen, die in den Schutzumfang der vorliegenden Erfindung fallen.
  • Die Logik 822, die einen oder mehrere Teile der Ausführungsformen der Lösung umsetzt, kann im flüchtigen Speicher 818 und/oder im nichtflüchtigen Speicher 820 gespeichert werden. Die Logik 822 kann aus dem flüchtigen Speicher 818 und/oder dem nichtflüchtigen Speicher 820 gelesen und von dem/den Prozessor(en) 812 ausgeführt werden. Der flüchtige Speicher 818 und der nichtflüchtige Speicher 820 können auch ein Repository für das Speichern von Daten bereitstellen, die von der Logik 822 verwendet werden.
  • Der flüchtige Speicher 818 und der nichtflüchtige Speicher 820 können eine Anzahl von Speichern einschließen, die einen Hauptspeicher mit Direktzugriff (RAM) zur Speicherung von Anweisungen und Daten während der Programmausführung und einen Nur-Lese-Speicher (ROM) einschließen, in dem nur lesbare, nicht-transitorische Anweisungen gespeichert werden. Der flüchtige Speicher 818 und der nichtflüchtige Speicher 820 können ein Dateispeicherungssubsystem einschließen, das eine dauerhafte (nichtflüchtige) Speicherung für Programm- und Datendateien bereitstellt. Der flüchtige Speicher 818 und der nichtflüchtige Speicher 820 können abnehmbare Speicherungssysteme, wie abnehmbare Flash-Speicher, einschließen.
  • Das Bussubsystem 816 stellt einen Mechanismus für das Ermöglichen der Kommunikation zwischen den verschiedenen Komponenten und Subsystemen des Datenverarbeitungssystems 802, wie vorgesehen, bereit. Obwohl die Schnittstelle des Kommunikationsnetzwerks 806 schematisch als ein einzelner Bus dargestellt ist, können einige Ausführungsformen des Bussubsystems 816 mehrere unterschiedliche Busse nutzen.
  • Für Fachleute wird es leicht ersichtlich sein, dass die Rechenvorrichtung 800 eine Vorrichtung wie ein Smartphone, ein Desktop-Computer, ein Laptop-Computer, ein rackmontiertes Computersystem, ein Computerserver oder eine Tablet-Computervorrichtung sein kann. Wie in der Technik allgemein bekannt, kann die Rechenvorrichtung 800 als eine Sammlung von mehreren vernetzten Rechenvorrichtungen umgesetzt werden. Weiterhin wird die Rechenvorrichtung 800 üblicherweise Betriebssystemlogik (nicht veranschaulicht) einschließen, deren Art und Weise in der Technik gut bekannt sind.
  • Den hierin verwendeten Begriffen sollte ihre gewöhnliche Bedeutung in der relevanten Technik oder die Bedeutung, die durch ihre Verwendung im Kontext angezeigt wird, zugewiesen werden, aber wenn eine ausdrückliche Definition bereitgestellt wird, hat diese Priorität.
  • 9 veranschaulicht ein Verfahren 900 gemäß einer Ausführungsform. Beginnend in Block 902 überwacht das Verfahren eine Zonenmetrik für eine Zone einer nichtflüchtigen Speicherungsvorrichtung. In einer Ausführungsform kann die Zonenmetrik nach einem Zeitraum (z. B. fünf Minuten) aktualisiert werden. Dieser Zeitraum kann kürzer sein, wenn ein Zonenmanager 600 einen Host über eine Zonenmetrik benachrichtigt hat, die einen Alarmschwellenwert erfüllt. In einer anderen Ausführungsform kann die Zonenmetrik nach einer bestimmten Anzahl von Ereignissen, wie Lesebefehlen oder Löschspeicherungsvorgängen oder dergleichen, aktualisiert werden. In einer Ausführungsform kann der Zonenmanager 600 den Host über eine aktualisierte Zonenmetrik benachrichtigen, wenn die Änderung in der Zonenblockmetrik einen Änderungsschwellenwert erfüllt. Ein Änderungsschwellenwert und eine Benachrichtigung über eine aktualisierte Zonenmetrik können eintreten, wenn eine Zonenmetrik zuvor einen Alarmschwellenwert erfüllt hat.
  • In bestimmten Ausführungsformen kann ein Schritt des Aktualisierens einer Zonenmetrik Teil der Überwachung in Block 902 sein. In anderen Ausführungsformen kann der Schritt des Aktualisierens einer Zonenmetrik ein weiterer Schritt in dem Prozess sein. Die Zonenmetrik kann eine Quertemperaturmetrik, eine Blockzustandsmetrik oder eine Kombination davon sein.
  • In dem Entscheidungsblock 904 wird bestimmt, ob die Zonenmetrik einen Alarmschwellenwert erfüllt. Wenn nicht, kehrt das Verfahren zu Block 902 zurück, um die Zonenmetrik zu überwachen. Wenn ja, fährt das Verfahren mit Block 906 fort.
  • In Block 906 benachrichtigt das Verfahren einen Host über die Zonenmetrik. Wie eine Speicherungssteuerung oder eine andere Komponente, wie ein Zonenmanager 600, den Host benachrichtigt, kann je nach Ausführungsform variieren. In einer Ausführungsform kann die Speicherungssteuerung eine Nachricht oder ein Signal an den Host senden. In einer Ausführungsform kann die Speicherungssteuerung einen Alarm oder Interrupt an den Host senden. In einer Ausführungsform kann die Speicherungssteuerung ein Konfigurationsflag aktivieren, das den Host darüber informiert, dass ein Alarmschwellenwert erfüllt wurde. In einer Ausführungsform kann die Speicherungssteuerung protokollieren, dass ein Alarmschwellenwert erfüllt wurde, und der Host kann die Informationen durch Verarbeiten des Protokolls erhalten.
  • Außerdem können die Form, das Format und die Substanz, wie ein Zonenmanager 600 und/oder eine Speicherungssteuerung einen Host benachrichtigt, in verschiedenen Ausführungsformen variieren. In einer Ausführungsform kann das Benachrichtigen des Hosts das Senden von Metadaten aufweisen, die der Zonenmetrik zugeordnet sind, die den Alarmschwellenwert erfüllt. In einer Ausführungsform können sich die Metadaten nur auf die Zone beziehen, die der Zonenmetrik zugeordnet ist, die den Alarmschwellenwert erfüllt. In einer anderen Ausführungsform können die Metadaten eine oder mehrere Zonenmetriken für eine Vielzahl von Zonen einschließen (einige, die den Alarmschwellenwert erfüllen, und einige, die den Alarmschwellenwert nicht erfüllen).
  • In bestimmten Ausführungsformen weisen die gesendeten Metadaten eine Quertemperatur für die Zone, eine durchschnittliche Quertemperatur für offene Zonen der nichtflüchtigen Speicherungsvorrichtung, eine Temperaturänderungsrate, eine durchschnittliche Anzahl von Programmier-Löschungen für die Zone, eine unkorrigierbare Bitfehlerrate (Uncorrectable Bit Error Rate, UBER) für die Zone, eine Anzahl von Ausfallbits für die Zone und eine Ladungsleckrate und dergleichen auf.
  • In einer anderen Ausführungsform kann das Benachrichtigen des Hosts weiterhin das Vorschlagen einer Gegenmaßnahme für die Zone aufweisen, wobei die vorgeschlagene Gegenmaßnahme auf einer oder mehreren physischen Eigenschaften eines oder mehrerer Löschblöcke der nichtflüchtigen Speicherungsvorrichtung basieren kann. Zum Beispiel kann der Zonenmanager und/oder die Speicherungssteuerung eine Gegenmaßnahme zum Schließen einer Zone vorschlagen (selbst wenn die Zone noch nicht mit Daten gefüllt ist), basierend auf einer physischen Eigenschaft, wie der, dass mehr als 50 % der physischen Löschblöcke der Zone eine Anzahl von Ausfallbits aufweisen, die über einem bestimmten Schwellenwert liegt.
  • In Ausführungsformen, in denen die Zonenmetrik eine Quertemperaturmetrik aufweist, können vorgeschlagene Gegenmaßnahmen aus einer Gruppe von Maßnahmen ausgewählt werden, bestehend aus dem Schließen der Zone, dem aktiven Ändern einer Temperatur von Löschblöcken innerhalb der Zone, dem Verschieben von Daten der Zone in eine andere Zone, dem Anpassen des Alarmschwellenwerts, dem Verwalten eines oder mehrerer physischer Löschblöcke der Zone unter Verwendung separater Zellspannungsverteilungstabellen (CVD-Tabellen) und/oder Ergreifen keiner Maßnahme.
  • Wenn die Zonenmetrik eine Blockzustandsmetrik aufweist und ein Problem mit Zonenzustand erkannt wird, können Gegenmaßnahmen das Anpassen von Zonenzuweisungen und das Verschieben von Daten der problematischen Zone in eine andere Zone einschließen. Zonen können so zugewiesen werden, dass jede Zone einen ähnlichen durchschnittlichen Zustandswert aufweist, basierend auf dem Zustand der physischen Löschblöcke, die sie enthalten. Die Zuweisung physischer Löschblöcke pro Zone kann alternativ angepasst werden, um einen Unterschied im Zustand zwischen Löschblöcken innerhalb einer Zone zu minimieren, wodurch jeder Zone eine ausgeglichenere Blockzustandsmetrik gegeben wird. In einer Ausführungsform kann die Vorrichtung so eingerichtet sein, dass sie eine erste Zone mit einer maximal positiven Bewertung der Blockzustandsmetrik hat, gefolgt von einer Zone mit dem nächsthöchsten positiven Zustand nicht zugewiesener Blöcke und so weiter.
  • Das Benachrichtigen des Hosts kann das Identifizieren eines klassifizierten Satzes von Gegenmaßnahmen einschließen. „Klassifizierter Satz von Gegenmaßnahmen“ nimmt Bezug auf einen Satz von Gegenmaßnahmen, die ein Host implementieren kann, um eine Situation abzuschwächen, in der zwei oder mehr Zonen einen Wert oder eine Einstellung für eine Zonenmetrik aufweisen, die außerhalb eines akzeptablen Bereichs liegt oder sich von einem akzeptablen Wert unterscheidet. In einer Ausführungsform wird der Satz von Gegenmaßnahmen basierend auf einem oder mehreren Attributen, die jeder Gegenmaßnahme zugeordnet sind, klassifiziert.
  • Zum Beispiel kann der Satz von Gegenmaßnahmen darauf basierend klassifiziert werden, welche von ihnen erwartungsgemäß ein geringstes Maß an Abnutzung auf Speicherzellen einer Zone ausüben oder welche erwartungsgemäß die geringste Auswirkung auf die Leistung ausüben werden. In einem anderen Beispiel kann der Satz von Gegenmaßnahmen darauf basierend klassifiziert werden, welche von ihnen erwartungsgemäß einen inakzeptablen Zonenmetrikzustand abschwächen werden. In noch einem weiteren Beispiel kann der Satz von Gegenmaßnahmen darauf basierend klassifiziert werden, welche von ihnen erwartungsgemäß die Schreibverstärkung innerhalb der nichtflüchtigen Speicherungsvorrichtung (Speicherungsvorrichtung 102) abschwächen werden. Natürlich kann in einer Ausführungsform ein Host seinen eigenen Satz von Gegenmaßnahmen unabhängig von der Speicherungsvorrichtung 102 implementieren. Zum Beispiel kann ein Host Schreibspeicherungsvorgänge, die an die Speicherungsvorrichtung 102 gerichtet sind, einschränken oder umleiten.
  • Gemäß dem Standard für in Zonen unterteilte Speicherungsvorrichtungen ist der Host der Master und die Speicherungsvorrichtung 102 ist ein Slave. Wenn der Host jedoch entscheidet, eine Gegenmaßnahme unter Verwendung der Speicherungsvorrichtung 102 zu implementieren, kann der Host einen Gegenmaßnahmebefehl senden. Das Verfahren 900 schließt den Entscheidungsblock 908 ein, in dem der Zonenmanager und/oder die Speicherungssteuerung prüfen, ob ein Gegenmaßnahmebefehl empfangen wurde. Wenn nicht, fährt die Überwachung einer oder mehrerer Zonenmetriken mit Block 902 fort. Ist dies der Fall, so implementiert das Verfahren 900 (Block 910) die im Gegenmaßnahmebefehl angegebene Gegenmaßnahme.
  • In bestimmten Ausführungsformen kann das Verfahren 900 enden, sobald eine Gegenmaßnahme implementiert wurde. Alternativ oder zusätzlich kann nach Durchführung oder zumindest Einleitung einer Gegenmaßnahme eine gewisse Zeit erforderlich sein, um festzustellen, ob die Gegenmaßnahme eine Auswirkung hatte und die Zonenmetrik positiv verändert hat. Die Zone kann im Entscheidungsblock 912 überwacht werden, um eine Auswirkung zu erkennen, die sich aus der Gegenmaßnahme ergibt. In einigen Ausführungsformen kann der Host über die Auswirkung informiert werden, die ggf. aus der Gegenmaßnahme resultiert (Block 906).
  • Innerhalb dieser Offenbarung können verschiedene Elemente (die unterschiedlich als „Einheiten“, „Schaltungen“, andere Komponenten usw. bezeichnet werden können) als „eingerichtet“ beschrieben oder beansprucht werden, um eine oder mehrere Aufgaben oder Operationen auszuführen. Diese Formulierung - [Element] eingerichtet zum [Ausführen einer oder mehrerer Aufgaben] - bezieht sich hier auf die Struktur (d. h. etwas Physisches, wie eine elektronische Schaltung). Genauer gesagt wird diese Formulierung verwendet, um anzuzeigen, dass diese Struktur angeordnet ist, um die eine oder mehreren Aufgaben während des Betriebs durchzuführen. Eine Struktur kann als „eingerichtet“ bezeichnet werden, um eine Aufgabe auszuführen, auch wenn die Struktur momentan nicht betrieben wird. Eine „Kreditverteilungsschaltung, die eingerichtet ist zum Verteilen von Guthaben auf eine Vielzahl von Prozessorkernen“, soll beispielsweise eine integrierte Schaltung abdecken, die über einen Schaltkreis zum Ausführen dieser Funktion während des Betriebs verfügt, auch wenn die betreffende integrierte Schaltung derzeit nicht verwendet wird (z. B. ist keine Leistungsversorgung daran angeschlossen). Somit nimmt ein Element, das als „eingerichtet zum“ Durchführen einer Aufgabe beschrieben oder rezitiert wird, auf etwas Physisches Bezug, wie eine Vorrichtung, eine Schaltung, einen Speicher zum Speichern von Programmanweisungen, die zum Durchführen der Aufgabe ausführbar sind usw. Diese Formulierung wird hierin nicht verwendet, um auf etwas Immaterielles hinzuweisen.
  • Der Ausdruck „eingerichtet zum“ bedeutet nicht „einrichtbar zum.“ Ein unprogrammiertes FPGA zum Beispiel würde nicht als „eingerichtet zum“ Ausführen einer bestimmten Funktion betrachtet werden, obwohl es nach der Programmierung „einrichtbar zum“ Ausführen dieser Funktion sein kann.
  • Die Angabe in den beiliegenden Ansprüchen, dass eine Struktur zum Ausführen einer oder mehrerer Aufgaben „eingerichtet“ ist, ist ausdrücklich dazu gedacht, 35 U.S.C. § 112(f) für dieses Anspruchselement nicht geltend zu machen. Dementsprechend sollten Ansprüche in dieser Anmeldung, die nicht anderweitig das Konstrukt „Mittel zum“ [Ausführen einer Funktion] enthalten, nicht gemäß 35 U.S.C. § 112(f) ausgelegt werden.
  • Wie hierin verwendet, wird der Ausdruck „basierend auf“ verwendet, um einen oder mehrere Faktoren zu beschreiben, die eine Bestimmung beeinflussen. Dieser Ausdruck schließt nicht die Möglichkeit aus, dass zusätzliche Faktoren die Bestimmung beeinflussen können. Das heißt, eine Bestimmung kann ausschließlich auf bestimmten Faktoren oder auf den bestimmten Faktoren sowie anderen, nicht spezifizierten Faktoren basieren. Betrachten wir die Formulierung „A basierend auf B bestimmen“. Dieser Satz besagt, dass B ein Faktor ist, der zur Bestimmung von A verwendet wird oder der die Bestimmung von A beeinflusst. Dieser Satz schließt nicht aus, dass die Bestimmung von A auch auf einem anderen Faktor, wie C, basieren kann. Diese Formulierung gilt auch für eine Ausführungsform, in der A ausschließlich auf der Grundlage von B bestimmt wird. Wie hierin verwendet, ist die Formulierung „basierend auf“ gleichbedeutend mit der Formulierung „basierend zumindest teilweise auf.“
  • Wie hierin verwendet, beschreibt die Formulierung „als Reaktion auf“ einen oder mehrere Faktoren, die einen Effekt auslösen. Diese Formulierung schließt nicht die Möglichkeit aus, dass zusätzliche Faktoren den Effekt beeinflussen oder anderweitig auslösen können. Das heißt, ein Effekt kann ausschließlich als Reaktion auf diese Faktoren oder als Reaktion auf die festen Faktoren sowie andere, nicht festgelegte Faktoren auftreten. Betrachten wir die Formulierung „A als Reaktion auf B ausführen.“ Dieser Satz besagt, dass B ein Faktor ist, der die Leistung von A auslöst. Dieser Satz schließt nicht aus, dass die Ausführung von A auch als Reaktion auf einen anderen Faktor, wie C, erfolgen kann. Diese Formulierung gilt auch für eine Ausführungsform, bei der A ausschließlich als Reaktion auf B ausgeführt wird.
  • Wie hierin verwendet, werden die Begriffe „erste/erster/erstes“, „zweite/zweiter/zweites“ usw. als Bezeichnungen für die anschließenden Substantive verwendet, und implizieren keine Art von Ordnung (z. B. räumlich, zeitlich, logisch usw.), sofern nicht anders angegeben. Beispielsweise können in einer Registerdatei mit acht Registern die Begriffe „erstes Register“ und „zweites Register“ verwendet werden, um auf zwei beliebige der acht Register Bezug zu nehmen, und nicht beispielsweise nur auf die logischen Register 0 und 1.
  • Bei der Verwendung in den Ansprüchen wird der Begriff „oder“ als inklusiv und nicht als exklusiv verwendet. Beispielsweise bedeutet die Formulierung „mindestens einer von x, y oder z“ einen von x, y und z sowie eine beliebige Kombination davon.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • „Schwelle‟ bezieht sich auf einen Pegel, Punkt oder Wert, über dem eine Bedingung wahr ist oder eintreten wird und unter dem die Bedingung nicht wahr ist oder nicht eintreten wird. (Engl. „threshold“ Merriam-Webster.com. Merriam-Webster, 2019. Web. 14. November 2019 [0016]
    • Der Wafer wird in viele Stücke geschnitten (zerteilt), die jeweils eine Kopie der Schaltung enthalten. Jedes dieser Stücke wird als Die bezeichnet. (Nachschlagen unter „Die“ auf Wikipedia.com, 9. Oktober 2019. Zugriffsdatum 18. November 2019.) [0020]

Claims (20)

  1. Einrichtung, aufweisend: einen Zonenmanager, aufweisend: eine Überwachungsschaltung, die eingerichtet ist, um eine Zonenmetrik für jede Zone einer nichtflüchtigen Speicherungsvorrichtung zu überwachen; eine Auswerteschaltung, die eingerichtet ist, um einen Zonenzustand für jede Zone basierend auf der Zonenmetrik zu bestimmen; und eine Signalisierungsschaltung, die eingerichtet ist, um einen Host über den Zonenzustand für eine oder mehrere Zonen zu benachrichtigen, als Reaktion darauf, dass die Zonenmetrik der einen oder der mehreren Zonen einen Alarmschwellenwert erfüllt.
  2. Einrichtung gemäß Anspruch 1, wobei die Signalisierungsschaltung weiterhin eingerichtet ist zum Benachrichtigen des Hosts über den Zonenzustand durch Senden von Metadaten für die eine oder die mehreren Zonen.
  3. Einrichtung gemäß Anspruch 1, weiterhin aufweisend eine Behebungsschaltung, die eingerichtet ist zum Implementieren einer Gegenmaßnahme als Reaktion darauf, dass die Zonenmetrik einen kritischen Schwellenwert erfüllt.
  4. Einrichtung gemäß Anspruch 1, weiterhin aufweisend eine Behebungsschaltung, die eingerichtet ist, um eine Gegenmaßnahme als Reaktion auf einen Gegenmaßnahmebefehl von dem Host zu implementieren.
  5. Einrichtung gemäß Anspruch 1, wobei die Zonenmetrik eine oder mehrere von einer Blockzustandsmetrik für jede Zone und einer Quertemperaturmetrik für jede Zone aufweist.
  6. Einrichtung gemäß Anspruch 1, wobei die Auswerteschaltung eingerichtet ist zum: Empfangen einer Temperatur von einem Temperatursensor, der eingerichtet ist, um eine Vielzahl von physischen Löschblöcken jeder Zone zu überwachen, Bestimmen eines Abnutzungsgrads für jeden physischen Löschblock jeder Zone, Bestimmen einer Quertemperaturmetrik basierend auf der Temperatur und einer programmierten Temperatur, Bestimmen einer Blockzustandsmetrik basierend auf dem Abnutzungsgrad, und Bestimmen der Zonenmetrik basierend sowohl auf der Blockzustandsmetrik als auch auf der Quertemperaturmetrik.
  7. System, aufweisend: einen flüchtigen Speicher; ein nichtflüchtiges Speicherarray, das eine Vielzahl von Dies aufweist; und eine Speicherungssteuerung, die mit dem flüchtigen Speicher und dem nichtflüchtigen Speicherarray gekoppelt ist, die Speicherungssteuerung aufweisend: einen Zonenmanager, der eingerichtet ist, um sich mit einem Host zu verbinden und eine Vielzahl von Zonen innerhalb des nichtflüchtigen Speicherarrays mittels eines Standards für in Zonen unterteilte Speicherungsvorrichtungen zu verwalten; einen Temperaturmanager, der eingerichtet ist, zum: Überwachen einer Quertemperaturmetrik für jeden physischen Löschblock jeder Zone mittels mindestens eines Temperatursensors, der mit jedem Speicher-Die gekoppelt ist; und Benachrichtigen des Zonenmanagers als Reaktion darauf, dass die Quertemperaturmetrik für eine oder mehrere der Zonen einen Alarmschwellenwert erfüllt; einen Zustandsmanager, der eingerichtet ist, zum: Überwachen einer Blockzustandsmetrik für jeden physischen Löschblock jeder Zone; und Benachrichtigen des Zonenmanagers als Reaktion darauf, dass die Blockzustandsmetrik für die eine oder die mehreren der Zonen den Alarmschwellenwert erfüllt; wobei der Zonenmanager eingerichtet ist zum Bestimmen einer Zonenmetrik basierend wenigstens teilweise auf einer von der Quertemperaturmetrik von dem Temperaturmanager und der Blockzustandsmetrik von dem Zustandsmanager; und wobei der Zonenmanager eingerichtet ist, eine oder mehrere Gegenmaßnahmen an einer oder mehreren Zonen als Reaktion auf einen Bericht der Zonenmetrik an den Host, der eingerichtet ist, die Zonen zu verwalten, zu implementieren.
  8. System gemäß Anspruch 7, wobei der Zonenmanager eingerichtet ist, die Zonenmetrik als Reaktion auf einen Speicherungsbefehl von dem Host zu berichten.
  9. System gemäß Anspruch 7, wobei die Speicherungssteuerung eingerichtet ist, Eingabe/Ausgabe-Vorgänge (E/A-Vorgänge) mit dem Host zu drosseln, bis der Zonenmanager bestätigt, dass die Zonenmetrik den Alarmschwellenwert nicht erfüllt, was den Erfolg der von dem Host angeforderten Gegenmaßnahme anzeigt.
  10. System gemäß Anspruch 7, wobei der Zonenmanager eingerichtet ist, um die Quertemperaturmetrik für eine Zone an den Host als Reaktion auf einen Lesebefehl für die Zone von dem Host zu berichten.
  11. Verfahren, aufweisend: Überwachen einer Zonenmetrik für eine Zone einer nichtflüchtigen Speicherungsvorrichtung; Benachrichtigen eines Hosts über die Zonenmetrik als Reaktion darauf, dass die Zonenmetrik einen Alarmschwellenwert erfüllt; und implementieren einer Gegenmaßnahme als Reaktion auf einen Gegenmaßnahmebefehl von dem Host.
  12. Verfahren gemäß Anspruch 11, weiterhin aufweisend: Überwachen der Zone auf eine Auswirkung der Gegenmaßnahme, und Benachrichtigen des Hosts über die Auswirkung der Gegenmaßnahme.
  13. Verfahren gemäß Anspruch 11, wobei das Benachrichtigen des Hosts das Senden von Metadaten aufweist, die der Zonenmetrik zugeordnet sind, die den Alarmschwellenwert erfüllt.
  14. Verfahren gemäß Anspruch 13, wobei die Metadaten Daten aufweisen ausgewählt aus einer Gruppe aufweisend eine Quertemperatur für eine Zone, eine durchschnittliche Quertemperatur für offene Zonen der nichtflüchtigen Speicherungsvorrichtung, eine Temperaturänderungsrate, eine durchschnittliche Anzahl von Programmier-Löschungen für eine Zone, eine unkorrigierbare Bitfehlerrate (Uncorrectable Bit Error Rate, UBER) für eine Zone, eine Anzahl von Ausfallbits für eine Zone und eine Ladungsleckrate.
  15. Verfahren gemäß Anspruch 11, wobei das Schreiben der ersten Daten weiterhin aufweist: Vorschlagen einer Gegenmaßnahme für die Zone, wobei die vorgeschlagene Gegenmaßnahme auf einer oder mehreren physischen Eigenschaften eines oder mehrerer Löschblöcke der nichtflüchtigen Speicherungsvorrichtung basiert.
  16. Verfahren gemäß Anspruch 11, wobei das Benachrichtigen des Hosts weiterhin das Identifizieren eines klassifizierten Satzes von Gegenmaßnahmen aufweist, wobei der klassifizierte Satz von Gegenmaßnahmen klassifiziert wurde, um die Schreibverstärkung innerhalb der nichtflüchtigen Speicherungsvorrichtung abzuschwächen.
  17. Verfahren gemäß Anspruch 11, wobei die Zonenmetrik eine Quertemperaturmetrik aufweist und die Gegenmaßnahme eine Gegenmaßnahme aufweist, die ausgewählt ist aus einer Gruppe bestehend aus dem Schließen der Zone, dem aktiven Ändern einer Temperatur von Löschblöcken innerhalb der Zone, dem Verschieben von Daten der Zone in eine andere Zone, dem Anpassen des Alarmschwellenwerts, dem Verwalten eines oder mehrerer physischer Löschblöcke der Zone unter Verwendung separater Zellspannungsverteilungstabellen (CVD-Tabellen) und Ergreifen keiner Maßnahme.
  18. Verfahren gemäß Anspruch 11, weiterhin aufweisend: Aktualisieren der Zonenmetrik nach einem Zeitraum, und Benachrichtigen des Hosts über die aktualisierte Zonenmetrik als Reaktion darauf, dass eine Änderung in der Zonenblockmetrik einen Änderungsschwellenwert erfüllt.
  19. Verfahren gemäß Anspruch 11, wobei die Zonenmetrik eine Blockzustandsmetrik für die Zone aufweist.
  20. Verfahren gemäß Anspruch 11, wobei die Zonenmetrik eine Quertemperaturmetrik für die Zone aufweist.
DE112020000178.4T 2019-12-12 2020-03-17 Verwaltung von in zonen unterteilten namensräumen nichtflüchtiger speicherungsvorrichtungen Pending DE112020000178T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/712,659 US20210182166A1 (en) 2019-12-12 2019-12-12 Zoned namespace management of non-volatile storage devices
US16/712,659 2019-12-12
PCT/IB2020/052439 WO2021116778A1 (en) 2019-12-12 2020-03-17 Zoned namespace management of non-volatile storage devices

Publications (1)

Publication Number Publication Date
DE112020000178T5 true DE112020000178T5 (de) 2021-09-02

Family

ID=76317920

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020000178.4T Pending DE112020000178T5 (de) 2019-12-12 2020-03-17 Verwaltung von in zonen unterteilten namensräumen nichtflüchtiger speicherungsvorrichtungen

Country Status (3)

Country Link
US (1) US20210182166A1 (de)
DE (1) DE112020000178T5 (de)
WO (1) WO2021116778A1 (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11237726B2 (en) * 2019-12-13 2022-02-01 Micron Technology, Inc. Memory system performance enhancements using measured signal and noise characteristics of memory cells
US11385984B2 (en) * 2020-02-24 2022-07-12 Western Digital Technologies, Inc. Variable read scan for solid-state storage device quality of service
KR20210108107A (ko) * 2020-02-25 2021-09-02 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US11221800B2 (en) 2020-03-02 2022-01-11 Micron Technology, Inc. Adaptive and/or iterative operations in executing a read command to retrieve data from memory cells
US11740970B2 (en) 2020-03-02 2023-08-29 Micron Technology, Inc. Dynamic adjustment of data integrity operations of a memory system based on error rate classification
US11086572B1 (en) 2020-03-02 2021-08-10 Micron Technology, Inc. Self adapting iterative read calibration to retrieve data from memory cells
US11029890B1 (en) 2020-03-02 2021-06-08 Micron Technology, Inc. Compound feature generation in classification of error rate of data retrieved from memory cells
KR20210125774A (ko) * 2020-04-09 2021-10-19 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US11562793B2 (en) 2020-05-07 2023-01-24 Micron Technology, Inc. Read soft bits through boosted modulation following reading hard bits
US11081200B1 (en) 2020-05-07 2021-08-03 Micron Technology, Inc. Intelligent proactive responses to operations to read data from memory cells
US11379360B2 (en) * 2020-06-25 2022-07-05 Netapp, Inc. Methods for managing storage operations for multiple hosts coupled to dual-port solid-state disks and devices thereof
US11301382B2 (en) * 2020-08-13 2022-04-12 Micron Technology, Inc. Write data for bin resynchronization after power loss
US20220147279A1 (en) * 2020-11-06 2022-05-12 Seagate Technology Llc Heat management solid-state data storage system
US11868643B2 (en) * 2020-12-16 2024-01-09 Micron Technology, Inc. Background memory scan block selection
US11422734B2 (en) * 2021-01-06 2022-08-23 Western Digital Technologies, Inc. Managing overwrite data within solid state drives
TWI775268B (zh) * 2021-01-07 2022-08-21 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
US11487449B2 (en) * 2021-02-22 2022-11-01 Western Digital Technologies, Inc. Data storage device and method for enabling higher lane utilization in run time via device hints on workload patterns
US11892909B2 (en) 2021-03-19 2024-02-06 Micron Technology, Inc. Managing capacity reduction due to storage device failure
US11650881B2 (en) 2021-03-19 2023-05-16 Micron Technology, Inc. Managing storage reduction and reuse in the presence of storage device failures
US11307931B1 (en) * 2021-03-19 2022-04-19 Micron Technology, Inc. Using zones to manage capacity reduction due to storage device failure
US11733884B2 (en) 2021-03-19 2023-08-22 Micron Technology, Inc. Managing storage reduction and reuse with failing multi-level memory cells
US11520500B2 (en) 2021-03-19 2022-12-06 Micron Technology, Inc. Managing capacity reduction when downshifting multi-level memory cells
US11520656B2 (en) 2021-03-19 2022-12-06 Micron Technology, Inc. Managing capacity reduction and recovery due to storage device failure
US20220382668A1 (en) * 2021-05-28 2022-12-01 Advantest Corporation Systems and methods for concurrent and automated testing of zoned namespace solid state drives
US11587611B2 (en) 2021-07-20 2023-02-21 Macronix International Co., Ltd. Memory device with input circuit, output circuit for performing efficient data searching and comparing within large-sized memory array
TWI789836B (zh) * 2021-07-20 2023-01-11 旺宏電子股份有限公司 用於資料搜尋之記憶體裝置及資料搜尋方法
US11513880B1 (en) * 2021-08-26 2022-11-29 Powerchip Semiconductor Manufacturing Corporation Failure bit count circuit for memory and method thereof
US20230061800A1 (en) * 2021-09-01 2023-03-02 Micron Technology, Inc. Dynamic superblock construction
KR20230033485A (ko) * 2021-09-01 2023-03-08 삼성전자주식회사 저장 장치 및 그의 동작 방법
US20230185471A1 (en) * 2021-12-14 2023-06-15 Micron Technology, Inc. Temperature controlled zone creation and allocation
EP4220414A1 (de) * 2022-01-26 2023-08-02 Samsung Electronics Co., Ltd. Speichersteuerung zur verwaltung verschiedener arten von blöcken, betriebsverfahren dafür und betriebsverfahren einer speichervorrichtung damit
KR20230135357A (ko) * 2022-03-16 2023-09-25 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
US20230409235A1 (en) * 2022-05-31 2023-12-21 Microsoft Technology Licensing, Llc File system improvements for zoned storage device operations

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4909670B2 (ja) * 2006-01-24 2012-04-04 株式会社東芝 不揮発性半導体記憶装置及びそれを用いた不揮発性メモリシステム
US8549236B2 (en) * 2006-12-15 2013-10-01 Siliconsystems, Inc. Storage subsystem with multiple non-volatile memory arrays to protect against data losses
US9442816B2 (en) * 2011-11-30 2016-09-13 International Business Machines Corporation Implementing memory performance management and enhanced memory reliability accounting for thermal conditions
US20150279472A1 (en) * 2014-03-26 2015-10-01 Intel Corporation Temperature compensation via modulation of bit line voltage during sensing
US9543028B2 (en) * 2014-09-19 2017-01-10 Sandisk Technologies Llc Word line dependent temperature compensation scheme during sensing to counteract cross-temperature effect
US10564900B2 (en) * 2016-03-04 2020-02-18 Western Digital Technologies, Inc. Temperature variation compensation
US11163488B2 (en) * 2018-07-20 2021-11-02 Micron Technology, Inc. Extended cross-temperature handling in a memory sub-system
US10892024B2 (en) * 2018-12-26 2021-01-12 Micron Technology, Inc. Scan optimization from stacking multiple reliability specifications
US10949120B2 (en) * 2019-02-19 2021-03-16 Intel Corporation Host defined bandwidth allocation for SSD tasks
US11409544B2 (en) * 2019-05-07 2022-08-09 Microsoft Technology Licensing, Llc Dynamically-configurable baseboard management controller
US11567682B2 (en) * 2019-11-15 2023-01-31 Micron Technology, Inc. Temperature management for a memory device using memory trim sets

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
„Schwelle‟ bezieht sich auf einen Pegel, Punkt oder Wert, über dem eine Bedingung wahr ist oder eintreten wird und unter dem die Bedingung nicht wahr ist oder nicht eintreten wird. (Engl. „threshold" Merriam-Webster.com. Merriam-Webster, 2019. Web. 14. November 2019
Der Wafer wird in viele Stücke geschnitten (zerteilt), die jeweils eine Kopie der Schaltung enthalten. Jedes dieser Stücke wird als Die bezeichnet. (Nachschlagen unter „Die" auf Wikipedia.com, 9. Oktober 2019. Zugriffsdatum 18. November 2019.)

Also Published As

Publication number Publication date
US20210182166A1 (en) 2021-06-17
WO2021116778A1 (en) 2021-06-17

Similar Documents

Publication Publication Date Title
DE112020000178T5 (de) Verwaltung von in zonen unterteilten namensräumen nichtflüchtiger speicherungsvorrichtungen
DE112020002526B4 (de) Blockmodusumschaltung in datenspeichersystem
DE102020116362B3 (de) Dynamische zuweisung von unterblöcken
DE102020106971A1 (de) Datenschreibverwaltung im nichtflüchtigen speicher
DE112013003255B4 (de) Managementmechanismus für fehlerhafte Blöcke
DE112020000184T5 (de) In zonen unterteilte namensräume in festkörperlaufwerken
DE112015000378T5 (de) Selektives Rückkopieren für einen auf einem Chipplättchen gepufferten nichtflüchtigen Speicher
US20150039815A1 (en) System and method for interfacing between storage device and host
DE102017113439A1 (de) Abbildungstabellen für Speichervorrichtungen
CN113297096A (zh) 用于固态存储装置服务质量的可变读取扫描
US11307931B1 (en) Using zones to manage capacity reduction due to storage device failure
DE102018214010A1 (de) Verfahren und Vorrichtung zur Reduzierung von unbemerkten Datenfehlern in nichtflüchtigen Speichersystemen
DE112020000139T5 (de) Nicht sequentiell in zonen aufgeteilte namensräume
DE102021107475A1 (de) Kalibrieren von leseschwellenwerten eines nichtflüchtigen speichers
US11138071B1 (en) On-chip parity buffer management for storage block combining in non-volatile memory
DE112020005180T5 (de) Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen
DE102018123880A1 (de) Adaptive Verwaltung von Zwischenspeichern
DE112020004591T5 (de) L2P-Übersetzungstechniken in begrenzten RAM-Systemen
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE112020004958T5 (de) Dynamische zonenaktivgrenze für offenen zns
US11231883B1 (en) Detecting last page written in multi-plane non-volatile memory
DE112020005350T5 (de) Aktualisieren von korrigierenden lesespannung-offsetwerten in nichtflüchtigen direktzugriffsspeichern
DE112020005044T5 (de) Zonenanhang-befehlsplanung basierend auf zonenzustand
DE112020003185T5 (de) Einstellung von block-pool-grössen in einem speichersystem
US11520500B2 (en) Managing capacity reduction when downshifting multi-level memory cells

Legal Events

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

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE

Representative=s name: MEWBURN ELLIS LLP, DE

R082 Change of representative

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE