DE102020102781A1 - Auswahl von massenspeicherungsvorrichtungs-streams zur speicherbereinigung auf der basis lokaler sättigung - Google Patents

Auswahl von massenspeicherungsvorrichtungs-streams zur speicherbereinigung auf der basis lokaler sättigung Download PDF

Info

Publication number
DE102020102781A1
DE102020102781A1 DE102020102781.8A DE102020102781A DE102020102781A1 DE 102020102781 A1 DE102020102781 A1 DE 102020102781A1 DE 102020102781 A DE102020102781 A DE 102020102781A DE 102020102781 A1 DE102020102781 A1 DE 102020102781A1
Authority
DE
Germany
Prior art keywords
streams
stream
data
storage resources
ssd
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
DE102020102781.8A
Other languages
English (en)
Inventor
Shirish Bahirat
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix NAND Product Solutions Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102020102781A1 publication Critical patent/DE102020102781A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)

Abstract

Es wird ein Verfahren beschrieben. Das Verfahren umfasst Verfolgen eines logischen Sättigungswerts für jeden von mehreren Streams, die an eine Massenspeicherungsvorrichtung gerichtete Lese- und Schreibbefehle umfassen, wobei der logische Sättigungswert eines Streams eine Messung davon ist, wie viele der zugewiesenen Speicherungsressourcen des Streams der Massenspeicherungsvorrichtung gültige Daten enthalten. Das Verfahren umfasst außerdem wiederholtes Auswählen zur Speicherbereinigung desjenigen der mehreren Streams, der verglichen mit den anderen Streams einen niedrigsten logischen Sättigungswert aufweist.

Description

  • Technisches Gebiet
  • Das Gebiet der Erfindung betrifft allgemein Datenverarbeitungssysteme und insbesondere die Auswahl von Massenspeicherungsvorrichtungs-Streams zur Speicherbereinigung auf der Basis logischer Sättigung.
  • Stand der Technik
  • 1 zeigt ein SSD (Solid State Drive) 101. Die Flash-Speicherungsressourcen 103 des SSD können als eine Vielzahl (R) von Flash-Bausteinen enthaltend angesehen werden, wobei jeder Flash-Baustein eine Anzahl (K) getrennt beschreibbarer Blöcke von Flash-Speicherungszellen umfasst. Ein selber positionierter Block über den R-Baustein entspricht hier einem „Band“ von Flash-Blöcken. Da es K getrennt beschreibbare Blöcke pro Baustein und R Flash-Bausteine pro SSD gibt, gibt es daher K Bänder jeweils mit R Speicherungsblöcken in dem SSD. Ein Block ist die grundlegende physische Einheit, in der Daten gelöscht werden. Schreibvorgänge werden mit Seitengranularität programmiert, und auf Lesevorgänge wird mit einer gewissen kleineren Zugriffsgröße zugegriffen, die typischerweise als ein korrigierbares Codewort von Daten aufrechterhalten wird.
  • Das Schreiben von Daten in Flash-Speicher ist ein komplizierter Prozess. Da Daten auf Flash nicht direkt überschrieben werden können, müssen zuerst alte Daten gelöscht werden, woraufhin neue Daten geschrieben werden können. Der Prozess, durch den der Flash die physischen Bereiche, die keine gültigen Daten mehr aufweisen, „zurückbeansprucht“, wird als „Speicherbereinigung“ bezeichnet. Der Speicherbereinigungsprozess umfasst Konsolidieren gültiger Daten aus einem Flash-Block, Schreiben dieser in einen anderen Block und dann Löschen des ursprünglichen Blocks, wodurch sein Raum für neue Daten befreit wird (und effektiv seine ungültigen Daten entfernt werden). Da Löschungen auf Blockgranularität durchgeführt werden, ist ein Block die grundlegende Einheit, in der physische Speicherungsressourcen zurückbeansprucht werden.
  • Der Speicherbereinigungsprozess wirkt sich auf die Leistungsfähigkeit aus, je unterschiedlicher die Lebensdauern der Daten in einem Block sind (wobei Lebensdauer der Zeitdauer entspricht, für die die Daten in dem Block ohne Änderung sitzen). Das heißt, wenn die Lebensdauern der Datenposten in einem durchschnittlichen Block von Daten sehr unterschiedlich sind, verbringt der Speicherbereinigungsprozess mehr Zeit mit dem Neuschreiben gültiger Posten von Daten in andere Blöcke, bevor der ursprüngliche Block von Daten gelöscht wird (diese Ineffizienz wird als „Schreibverstärkung“ bezeichnet). Wenn im Gegensatz dazu der durchschnittliche Block von Daten Daten mit gleichförmigen/selben Lebensdauern enthält, wird im Idealfall wenig/keine Zeit mit dem Umschreiben gültiger Daten während der Speicherbereinigung verbracht, da alle Daten des Blocks im selben Zeitfenster ungültig werden und der gesamte Block gelöscht werden kann, ohne irgendwelche gültigen Daten umzuschreiben (der gesamte Block wird invalidiert, wenn die Speicherbereinigung beginnt).
  • Derzeitige und zukünftige Spezifikationen von NVMe (Non Volatile Memory Express) (die offene Logikvorrichtungs-Schnittstellenspezifikationen für den Zugriff auf nichtflüchtige Speichermedien über eine PCIe-Verbindung (Peripheral Component Interface (PCI) Express) sind), umfassen deshalb „Stream“-Technologie, bei der der Host eine jeweilige Geschwindigkeit an einen in eine NVMe-kompatible Vorrichtung (z.B. ein SSD (Solid State Drive)) zu schreibenden Posten von Daten anhängt. Der Geschwindigkeitswert gibt die erwartete Lebensdauer des Datenpostens an. Das SSD speichert Posten von Daten mit ähnlichen/selben Lebensdauern in einem selben Datenblock, um so die Schreibverstärkung zu minimieren (wobei Daten mit selben/ähnlichen Lebensdauern einem bestimmten Stream entsprechen).
  • Im Allgemeinen muss das SSD während der Laufzeit entscheiden, welche Blöcke für Speicherbereinigung ins Auge gefasst werden sollten. Die traditionelle Richtlinie/der traditionelle Algorithmus zum Entscheiden, welcher Stream seine Blöcke als Nächstes zurückbeansprucht haben soll, basiert im Wesentlichen auf der Stream-Datenrate, wobei Streams mit Daten, die längere erwartete Lebensdauern enthalten (niedrigere Datenrate) häufiger für Zurückbeanspruchung gewählt werden als Streams mit Daten, die kürzere erwartete Lebensdauern enthalten (höhere Datenrate). Die zugrundeliegende Annahme dieses Ansatzes ist, dass, je länger das SSD auf die Zurückbeanspruchung eines Streams mit Daten kürzerer erwarteter Lebensdauer wartet, umso größer der ungültige Inhalt des Streams sein werden wird, wenn er schließlich Speicherbereinigung für den Stream beginnt. Folglich sollte weniger Schreibverstärkung resultieren.
  • Figurenliste
  • Aus der folgenden ausführlichen Beschreibung in Verbindung mit den beigefügten Zeichnungen lässt sich ein besseres Verständnis der vorliegenden Erfindung erhalten. Es zeigen:
    • 1 ein Solid State Drive;
    • 2 Validitätsraten für verschiedene Streams;
    • 3 einen verbesserten Prozess zur Auswahl eines Streams für Speicherbereinigung;
    • 4 logische Sättigungswerte für verschiedene Streams über eine Laufzeit eines Solid State Drive;
    • 5 ein verbessertes Solid State Drive;
    • 6 ein Datenverarbeitungssystem.
  • Ausführliche Beschreibung
  • Ein Problem bei dem Streams-Ansatz besteht jedoch darin, dass es umso schwieriger ist, Schreibverstärkung zu vermeiden, je mehr Streams, mit denen ein SSD umgeht, verschiedene Datenraten und/oder verschiedene Zugriffsverhaltensmuster aufweisen. Im Wesentlichen ist der im Stand der Technik besprochene Algorithmus, der Streams lediglich auf der Basis der Stream-Datenrate für Speicherbereinigung auswählt, zu simplistisch.
  • 2 stellt einen Rahmen für das Verständnis der tieferen Probleme bereit, die beim Auswählen spezifischer Streams für Speicherbereinigung entstehen können, wenn mehrere Streams mit unterschiedlichem Überschreibverhalten existieren. Hier zeigt 2 die Validitätsrate für jeden von fünf Streams als Funktion der Anzahl der für jeden Stream über einen Zeitraum der SSD-Laufzeit empfangenen Zugriffe. Die Validitätsrate ist der Prozentsatz der gespeicherten Daten eines Streams, der gültig ist. Zu einem beliebigen Zeitpunkt umfassen hier gespeicherte Daten eines Streams gültige Daten und ungültige Daten. Ungültige Daten sind ältere Daten, die überschrieben wurden, aber noch nicht als Teil des Speicherbereinigungsprozesses gelöscht.
  • Wie in 2 zu sehen ist, umfassen die verschiedenen Streams 1) zwei kalte Streams 201, 202, für die das SSD über den Zeitraum relativ wenige Zugriffe empfangen hat; 2) zwei heiße Streams 204, 205, für die das SSD über den Zeitraum eine relative große Anzahl von Zugriffen empfangen hat; und 3) einen warmen Stream 203, für den das SSD über den Zeitraum eine mäßige Menge an Zugriffen empfangen hat (Zugriffe können Lesevorgänge und Schreibvorgänge oder nur Schreibvorgänge sein). Der Einfachheit halber wird angenommen, dass über die Laufzeit von 2 des SSD hinweg keine Speicherbereinigungsoperationen ausgeführt werden.
  • Das im Stand der Technik besprochene Verfahren der Stream-Auswahl auf „Datenraten“-Basis verzögert absichtlich die Zurückbeanspruchung der Blöcke der zwei heißen Streams 204, 205 zugunsten der Zurückbeanspruchung der Blöcke der zwei kalten Streams 201, 202 unter der Annahme, dass die heißen Streams mit einer hohen Rate ungültige Daten erzeugen (weil sie ihre existierenden Daten häufig überschreiben) und die kalten Streams mit einer niedrigen Rate ungültige Daten erzeugen (weil sie ihre existierenden Daten selten überschreiben). Dementsprechend würden die Blöcke der kalten Streams mit einer größeren Schnelligkeit als die Blöcke der heißen Streams zurückbeansprucht.
  • Die obigen Annahmen treffen jedoch nur zu, wenn Überschreiboperationen existierender Daten gleichmäßig über die Zeit auftreten. Sowohl der kalte Stream 201 als auch der heiße Stream 204 zeigen diese Eigenschaft, da ihre jeweiligen Validitätsraten stetig abklingen, während ihre Anzahl von Zugriffen wächst (ein gleichmäßiger beständiger Fluss von Überschreibvorgängen existierender Daten erzeugt ungültige Daten mit einer konstanten Rate, was zu einer stetig abnehmenden Validitätsrate führt).
  • Im Gegensatz zeigen der kalte Stream 202 und der heiße Stream 205 diese Eigenschaft nicht. Stattdessen überschreiben sowohl der kalte Stream 202 als auch der heiße Stream 205 ihre existierenden Daten in „Bursts“ („stoßhaftes“ oder „sequenzielles“ Schreibverhalten). Für beide dieser Streams 202, 205 gibt es erweiterte Zugriffssequenzen (oder relativ lange Zeiträume), in denen wenig/keine Überschreibvorgänge existierender Daten auftreten und die Invaliditätsrate ungefähr konstant bleibt (die Invaliditätsrate kann mit der Zeit mäßig zunehmen, während jegliche anfänglichen Schreibvorgänge neuer Daten die Menge gültiger Daten vergrößern).
  • Diese erweiterten Zugriffssequenzen werden jedoch durch kurze Zugriffssequenzen getrennt, in denen der Stream vorherrschend existierende Daten mit einer hohen Datenrate überschreibt. Dementsprechend sind die Streams 202, 205 durch relativ konstante Validitätsraten gekennzeichnet, die mit plötzlichen Abfällen der Validität markiert sind. Der traditionelle Algorithmus des Identifizierens von Streams für Zurückbeanspruchung alleine auf der Basis ihrer Datenrate wäre für beide Streams 202, 205 schlecht geeignet, da Schreibverstärkung oder eine gewisse andere schreibbezogene Ineffizienz abhängig vom Timing des Speicherbereinigungsprozesses für beide Streams leicht ansteigen kann.
  • Das heißt, zum Beispiel mit Bezug auf den heißen Stream 205 (für den das SSD die Speicherbereinigung absichtlich verzögern würde) würde, wenn das SSD die Speicherbereinigung über der Zugriffssequenz 207 bis zum Punkt 206 verzögert, die Verzögerung keinerlei Nutzen ergeben, da wenig/keine ungültigen Daten über die Zugriffssequenz 207 hinweg erzeugt werden. Außerdem führt eine Entscheidung zur Speicherbereinigung am Punkt 206 wahrscheinlich zu Schreibverstärkung, weil das SSD große Mengen an Daten schreiben/abspeichern wird, die am Punkt 206 gültig waren, aber danach mittels des Groß-Burst-Überschreibens, das kurz nach Punkt 206 folgte, fast unmittelbar als ungültig erklärt wurden. Ähnlich wird aus denselben/ähnlichen Gründen mit Bezug auf den kalten Stream 202 (für den das SSD wählen würde, die Speicherbereinigung häufiger aufzurufen), wenn das SSD entscheidet, an Punkt 208 Speicherbereinigung aufzurufen, wahrscheinlich wieder Schreibverstärkung resultieren.
  • Der traditionelle Ansatz des Auswählens von Streams zur Speicherbereinigung allein auf der Basis ihrer jeweiligen Datenraten ist deshalb zu simplistisch, da die Exponierung eines Streams gegenüber Schreibverstärkung oder anderen schreibbezogenen Ineffizienzen sehr von dem Timing, wann Speicherbereinigung beginnt, und dem Muster bzw. den Mustern des Überschreibverhaltens des Streams abhängen kann.
  • 3 zeigt ein verbessertes Schema zum Auswählen von Streams für Speicherbereinigung. Wie in 3 zu sehen ist, wird für jeden Stream 301 ein logischer Sättigungswert berechnet, wobei logische Sättigung der Prozentsatz des Speicherungsplatzes eines Streams ist, der gültig ist (oder damit korreliert ist). Gemäß mindestens einer Ausführungsform teilt das SSD hier einem Stream bandweise Speicherungsressourcen zu.
  • Im Allgemeinen hält das SSD einen „freien Pool“ von Speicherungsplatz aufrecht. Das heißt, das SSD hält einen Vorrat von vor kurzem gelöschtem Speicherungsplatz aufrecht, der dafür bereit ist, beschrieben zu werden. Wenn die zugeteilte Speicherung eines Streams unzureichend wird (die Menge an freiem Platz des Streams knapp wird), wird ihm vom freien Pool mehr leerer Speicherungsplatz zugwiesen. Mit geringer werdender Menge an Speicherungsplatz in dem freien Pool vergrößert der SSD-Controller die Rate, mit der er Streams für Speicherbereinigung auswählt. Der Speicherungsplatz, der aus dem Speicherbereinigungsprozess zurückbeansprucht wird, wird in den freien Pool eingetragen. Im Idealfall ist der freie Pool niemals leer, wenn ein Stream mehr Speicherungsplatz benötigt.
  • Eine erste Art von SSD weist dem Stream gesamte Bänder zu und führt Speicherbereinigung über ein gesamtes Band durch. Dementsprechend wird Speicherungsplatz in Einheiten von Bändern zu dem freien Pool hinzugefügt und von diesem abgezogen. Bei alternativen Ausführungsformen wird Speicherungsplatz denkbar in Blöcken Streams zugewiesen und der Speicherbereinigungsprozess beansprucht Speicherungsplatz in Blöcken zurück. In diesem Fall wird Speicherungsplatz in Einheiten von Blöcken dem freien Pool hinzugefügt und von ihm subtrahiert. Der Einfachheit halber wird der Rest der Anwendung Bandgranularität annehmen, aber der Leser sollte verstehen, dass dieselben nachfolgenden Prinzipien auch auf Block- (oder eine gewisse andere) Granularität angewandt werden können.
  • Die logische Sättigung für einen bestimmten Stream kann zu einem beliebigen Zeitpunkt als die Gesamtmenge gültiger Daten in den Bändern, die aktuell dem Stream zugewiesen sind, dividiert durch die kombinierte Kapazität dieser selben Bänder, berechnet werden. Für typische Streams enthalten hier ältere oder reifere zugewiesene Bänder hauptsächlich eine gewisse Kombination von ungültigen und gültigen Daten (wobei die Menge an ungültigen Daten im Wesentlichen mit zunehmenden Bandalter zunimmt), während neuere oder jüngere zugewiesene Bänder mehr gültige Daten (einschließlich anfänglich geschriebener neuer Datenposten) und freien Platz, in den noch nicht geschrieben wurde, enthalten.
  • Somit kann die logische Sättigung für einen Stream bei verschiedenen Ausführungsformen als die Menge an gespeicherten gültigen Daten des Streams, normiert durch die Kombination der gültigen Daten, ungültigen Daten und des freien Platzes in den dem Stream zugewiesenen Bändern, angesehen werden. Im Wesentlichen ist die logische Sättigung eine Art von Validitätsrate der physischen Speicherungskapazität, die dem Stream zugewiesen wurde.
  • Ein SSD-Controller kann die logische Sättigung für jeden bestimmten Stream auf unkomplizierte Weise berechnen. Hier kann der Controller des SSD zum Beispiel dafür ausgelegt sein, ein Verständnis aufrecht zu erhalten, welche Blöcke einem Stream zugewiesen wurden (wenn ein Band einem Stream zugewiesen wird, werden die Blöcke des Bands diesem Stream zugewiesen) sowie für jeden solchen Block, wie viele seiner Seiten gültige Daten enthalten.
  • Ein typischer SSD-Controller enthält eine LBA/PBA-Tabelle, die Einträge für LBA (logische Blockadressen) und entsprechende PBA (physische Blockadressen) unterhält. Die LBA ist die Blockadresse, die durch den Host (für eine beliebige Lese- oder Schreiboperation) spezifiziert wird, der Befehle zum SSD sendet. Die PBA ist die entsprechende interne Adresse des SSD, die identifiziert, welcher physische Block im SSD die Informationen speichert, die die LBA anvisiert.
  • Ein typischer Block hat die Kapazität zum Speichern vieler Seiten. Wenn eine Anforderung empfangen wird, eine existierende Seite zu überschreiben, werden somit gewöhnlich die neuen Daten in so viel Platz wie eine freie Seite im selben Block geschrieben, worin die unmittelbar vorausgehende Version der Seite residiert (da sich keine Änderung der LBA/PBA-Abbildung ergibt). Die vorherige Version der Seite wird als ungültig markiert. Jeder Eintrag in einer LBA/PBA-Tabelle oder einer gewissen anderen Datenstruktur umfasst somit typischerweise Informationen, aus denen die Anzahl gültiger Seiten in einem Block ohne Weiteres bestimmt werden kann.
  • Durch laufende Buchführung darüber, welche Blöcke einem Stream zugewiesen wurden, und wie viele gültige Seiten in jedem solchen Block existieren, kann ohne Weiteres die Menge gültiger Daten berechnet werden, die für den Stream gespeichert ist. Ferner ist die dem Stream zu einem beliebigen gegebenen Zeitpunkt zugewiesene Kapazität das Produkt der Anzahl der Bänder, die aktuell dem Stream zugewiesen sind, der Anzahl der Blöcke pro Band und der Anzahl der Seiten pro Block. Die logische Sättigung für jeden Stream kann somit ohne Weiteres in Echtzeit durch den Controller als relativ simple Berechnung bestimmt werden.
  • Da die logische Sättigung für jeden Stream 301 berechnet wird, erfolgt eine Anfrage 302 bezüglich der Menge an freiem Platz, die im SSD existiert. Wenn eine ausreichende Menge an freiem Platz im SSD existiert, werden keine Streams für Speicherbereinigung ins Auge gefasst. Wenn dagegen die Menge an freiem Platz im SSD unter eine gewisse erste untere Schwelle (untere Wasserlinie) fällt, wird der Stream mit der niedrigsten logischen Sättigung für Speicherbereinigung 303 gewählt. Bei einer Ausführungsform wird hier eine spezifische Anzahl der Bänder des gewählten Streams durch den Speicherbereinigungsprozess 303 zurückbeansprucht (wobei z.B. umso mehr Bänder zurückbeansprucht werden, je weiter der freie Platz unter der unteren Wasserlinie liegt). Dann erfolgt eine zweite Anfrage 304, um zu sehen, ob der freie Platz im SSD über eine gewisse zweite höhere Schwelle (hohe Wasserlinie) angestiegen ist. Wenn dem so ist, kehrt der SSD-Controller zum Schleifen durch die Anfrage 302 zurück. Andernfalls wird der Stream mit der niedrigsten logischen Sättigung für Speicherbereinigung gewählt, sein Speicherungsplatz zurückbeansprucht 303 und der Prozess wiederholt sich, bis der freie Platz über die hohe Wasserlinie ansteigt.
  • Bemerkenswerterweise kann abhängig vom Zustand der logischen Sättigungswerte zum Zeitpunkt der Auswahl 303 der Stream, der für Speicherbereinigung 303 gewählt wird, derselbe Stream sein wie der Stream, der durch die unmittelbar vorhergehenden Stream- Auswahl gewählt wurde, oder ein anderer Stream. Wenn ein Stream für Speicherbereinigung gewählt wird und eine festgesetzte Anzahl seiner Bänder zurückbeansprucht wird, nimmt hier der freie Platz im SSD zu und die logische Sättigung des ausgewählten Streams nimmt zu. Das heißt, nach der Speicherbereinigung wird die Größe des freien Pools zugenommen haben und der Stream speichert dieselbe Menge an gültigen Daten mit weniger zugewiesenen Speicherungsressourcen.
  • Falls zwei Streams nahezu identische logische Sättigungswerte aufweisen, wird somit, nachdem einer dieser Streams für Speicherbereinigung ausgewählt wird und seine Speicherbereinigung abgeschlossen ist, der andere Stream wahrscheinlich als Nächstes für Speicherbereinigung ausgewählt, statt dass derselbe Stream nochmals ausgewählt wird. Falls zwei Streams sehr unterschiedliche logische Sättigungen aufweisen, wird ähnlich der Stream mit der viel niedrigeren logischen Sättigung wahrscheinlich wiederholt für Speicherbereinigung gewählt, bevor der Stream mit der viel höheren logischen Sättigung gewählt wird (letztendlich wird die logische Sättigung des wiederholt speicherbereinigten Streams die des anderen Streams überschreiten).
  • 4 zeigt eine qualitative Demonstration, wie die logischen Sättigungen für die warmen und heißen Streams 203, 204, 205, die ursprünglich in 2 besprochen wurden, variieren werden. Man erinnere sich, dass 2 nicht versucht hat, etwaige Änderungen der Gültigkeitsraten der individuellen Streams zu zeigen, die sich aus Speicherbereinigung ergeben, stattdessen spiegeln die in 4 beobachteten logischen Sättigungsraten die Speicherbereinigung wieder, die aus dem Stream-Auswahlprozess von 3 stattfindet.
  • Der Stream 405 von 4 entspricht einem warmen Stream. Der warme Stream 405 erhält Zugriffsbefehle mit einer kleineren Rate als die heißen Streams 403, 404, und deshalb fällt seine logische Sättigung mit der Zeit mit einer langsameren Rate als die heißen Streams 403, 404 (er erhält eine langsamere Eingangsrate von Überschreibbefehlen). Die heißen Streams umfassen einen ersten heißen Stream 403, der Überschreibbefehle mit einer stationären/konstanten Rate erhält, und einen zweiten heißen Stream 404, der Überschreibbefehle in Bursts erhält.
  • Mit Bezug auf 4 repräsentieren die Punkte A bis P jeweils eine Entscheidung durch den Controller, einen bestimmten Stream für Speicherbereinigung auszuwählen und dann Speicherbereinigung an diesem Stream auszuführen. Wenn insbesondere Speicherbereinigung an einem Stream ausgeführt wird, steigt die logische Sättigung des Streams, weil das Verhältnis von gültigen zu ungültigen Daten des Streams in dem zugewiesenen Speicherungsplatz des Streams zugenommen hat (es wurde effektiv ungültiger Platz zurückbeansprucht und in dem freien Pool eingetragen). Der bestimmte Stream, auf dem sich jeder der Punkte A bis P befindet, demonstriert somit einen Anstieg der logischen Sättigung des Streams unmittelbar nach dem Punkt.
  • Wie in 4 zu sehen ist, werden beide heißen Streams 403, 404 öfter als der warme Stream 405 für Speicherbereinigung ausgewählt. Speziell wird der warme Stream 405 nur dreimal für Speicherbereinigung ausgewählt (Punkte B, G und P), während der stationäre heiße Stream 403 sechsmal (Punkte A, D, F, I, K, O) und der stoßhafte heiße Stream 404 siebenmal (Punkte C, E, H, J, L, M, N) ausgewählt wird. Dementsprechend verhält sich der verbesserte Auswahlprozess von 3 bereits auf signifikante Weise anders als der traditionelle Ansatz des Auswählens des Streams mit der langsamsten Datenrate. Das heißt, während der traditionelle Ansatz Streams langsamerer Datenrate öfter als Streams schnellerer Datenrate auswählt, zeigt der Ansatz von 4 dagegen häufigere Auswahl von Streams höherer Datenrate als von Streams langsamerer Datenrate.
  • Die Ursache und der Effekt davon, die Streams langsamerer Datenrate weniger häufig auszuwählen, ist, dass mit der Zeit den Streams langsamerer Datenrate mehr Speicherungsplatz zugewiesen wird als den Streams höherer Datenrate. Das heißt, mit der Zeit wird der warme Stream 405 mehr zugewiesene Bänder als die heißen Streams 403 und 404 aufweisen. Da die heißen Streams 403, 404 häufiger für Speicherbereinigung ausgewählt werden, versteht sich hier ihr zugewiesener Speicherungsplatz nicht so viel, da ihre Bänder regelmäßig in den freien Pool zurückbeansprucht werden. Im Gegensatz dazu muss, da der warme Stream 405 weniger häufig als die zwei anderen Streams ausgewählt wird, der warme Stream regelmäßig nach mehr Speicherungsplatz fragen, weil seine ungültigen Daten nicht regelmäßig zurückbeansprucht werden.
  • Man beachte, dass aus ähnlichen Gründen, wenn die kalten Streams 201, 202 von 2 zu der Mischung von Streams in 4 hinzugefügt würden, sie sogar noch weniger häufig als der warme Stream 405 für Speicherbereinigung ausgewählt würden und größere zugewiesene Speicherungsplatzkapazitäten als die des warmen Streams aufweisen würden.
  • Der Auswahlprozess von 3 ist somit dadurch gekennzeichnet, dass Streams höherer Datenrate 1) häufiger für Speicherbereinigung ausgewählt werden; und 2) weniger zugewiesenen Speicherungsplatz als Streams niedrigerer Datenrate aufweisen. Eine andere Charakteristik des Auswahlprozesses von 3 ist, dass die logischen Sättigungen aller Streams letztendlich auf ungefähr denselben Wert konvergieren (der in 4 als der stationäre Zustand logischer Sättigung (LSss) bezeichnet wird). Spezieller gibt es ein mäßiges Band um den stationären Zustand LSSS, in dem die logischen Sättigungswerte aller Streams tendenziell über eine längere Laufzeit des SSD hinweg bleiben werden. Sowohl die theoretische Analyse als auch die simulierte Analyse hat diese Eigenschaft bestätigt.
  • Es wird vermutet, dass die Konvergenz der jeweiligen logischen Sättigungen aller Streams, in einem Band um einen bestimmten logischen Sättigungswert herum zu bleiben, mit Bezug auf die Vermeidung von Schreibverstärkung ein gewissermaßen optimaler Zustand ist. Wenn man annimmt, dass alle Streams gleiche Priorität aufweisen, ist es hier besser, wenn alle Streams ungefähr gleichermaßen einer Schreibverstärkung ausgesetzt werden (gleichermaßen unter ihr leiden), statt dass ein Stream weniger unter Schreibverstärkung leidet, auf Kosten eines oder mehrerer anderer Streams, die mehr unter Schreibverstärkung leiden.
  • Gemäß einer Perspektive ist die Gesamtleistungsfähigkeit des SSD zum großen Teil Funktion der Leistungsfähigkeit des Streams, der am meisten unter Schreibverstärkung leidet. Da der Stream-Auswahlansatz von 3 bewirkt, dass alle Streams auf ungefähr denselben logischen Sättigungswert einklingen, leidet somit kein Stream mehr als irgendein anderer Stream (im Mittel), und das SSD arbeitet in einem ungefähr optimalen Zustand.
  • 5 zeigt ein SSD 501 mit einem Controller 502, der Intelligenz 503 zur Implementierung des Stream-Speicherbereinigungs-Auswahlprozesses von 3 umfasst. Der Controller 502 und/oder die Intelligenz 503 können hier mit beliebigen von dedizierten festverdrahteten Logikschaltkreisen, programmierbaren Logikschaltkreisen (z.B. FPGA-Logikschaltkreisen (Field Programmable Gate Array)) und/oder Logikschaltkreisen implementiert werden, die dafür ausgelegt sind, eine gewisse Form von Programmcode (z.B. Firmware) auszuführen, wie etwa ein eingebetteter Prozessor, eingebetteter Mikrocontroller usw.
  • 6 zeigt eine beispielhafte Abbildung eines Datenverarbeitungssystems 600 (z.B. eines Smartphones, eines Tablet-Computers, eines Laptop-Computers, eines Desktop-Computers, eines Server-Computers usw.). Wie in 6 zu sehen ist, kann das grundlegende Datenverarbeitungssystem 600 eine Zentralverarbeitungseinheit 601 (die z.B. mehrere Vielzweck-Verarbeitungskerne 615_1 bis 615_X umfassen kann) und einen Hauptspeichercontroller 617, angeordnet auf einem Mehrkernprozessor oder Anwendungsprozessor, Systemspeicher 602, eine Anzeige 603 (z.B. Touchscreen, Flachanzeige), eine Schnittstelle 604 einer verdrahteten Punkt-zu-Punkt-Verbindung (z.B. USB), verschiedene Netzwerk-E/A-Funktionen 605 (wie etwa eine Ethernet-Schnittstelle und/oder ein Mobilfunk-Modemsubsystem), eine Schnittstelle 606 eines drahtlosen lokalen Netzwerks (z.B. WiFi), eine Schnittstelle 607 einer drahtlosen Punkt-zu-Punkt-Verbindung (z.B. Bluetooth) und eine Schnittstelle 608 des Global Positioning System, verschiedene Sensoren 609 1 bis 609 Y, eine oder mehrere Kameras 610, eine Batterie 611, eine Power-Management-Steuereinheit 612, einen Lautsprecher und ein Mikrofon 613 und einen Audiocodierer/-decodierer 614 umfassen kann.
  • Ein Anwendungsprozessor oder Mehrkernprozessor 650 kann einen oder mehrere Vielzweck-Verarbeitungskerne 615 in seiner CPU 601, eine oder mehrere Grafikverarbeitungseinheiten 616, eine Speicherverwaltungsfunktion 617 (z.B. einen Speichercontroller) und eine E/A-Steuerfunktion 618 umfassen. Die Vielzweck-Verarbeitungskerne 615 führen typischerweise das Betriebssystem und Anwendungssoftware des Datenverarbeitungssystems aus. Die Grafikverarbeitungseinheit 616 führt typischerweise grafikintensive Funktionen aus, um z.B. Grafikinformationen zu erzeugen, die auf der Anzeige 603 präsentiert werden. Die Speichersteuerfunktion 617 weist eine Schnittstelle mit dem Systemspeicher 602 zum Schreiben/Lesen von Daten zu/von dem Systemspeicher 602 auf. Die Power-Management-Steuereinheit 612 steuert im Allgemeinen den Stromverbrauch des Systems 600.
  • Die Touchscreen-Anzeige 603, die Kommunikationsschnittstellen 604-607, die GPS-Schnittstelle 608, die Sensoren 609, die Kamera(s) 610 und der Lautsprecher-/Mikrofoncodec 613/614 können jeweils alle als verschiedene Formen von E/A (Eingabe und/oder Ausgabe) relativ zu dem Gesamt-Datenverarbeitungssystem betrachtet werden, gegebenenfalls einschließlich auch einer integrierten Peripherievorrichtung (z.B. der einen oder mehreren Kameras 610). Abhängig von der Implementierung können verschiedene dieser E/A-Komponenten auf dem Anwendungsprozessor/Mehrkernprozessor 650 integriert sein oder können sich außerhalb des Bausteins oder außerhalb der Kapselung des Anwendungsprozessors/Mehrkernprozessors 650 befinden. Das Datenverarbeitungssystem umfasst außerdem nichtflüchtige Speicherung 620, die die Massenspeicherungskomponente des Systems sein kann. Die nichtflüchtige Speicherung 620 kann mit einem SSD implementiert werden, das Streams zur Speicherbereinigung auf der Basis der niedrigsten logischen Sättigung wie oben ausführlich beschrieben auswählt.
  • Ausführungsformen der Erfindung können verschiedene Prozesse wie oben dargelegt umfassen. Die Prozesse können in maschinenausführbaren Anweisungen realisiert sein. Die Anweisungen können verwendet werden, um zu bewirken, dass ein Vielzweck- oder Spezialprozessor bestimmte Prozesse ausführt. Als alternative können diese Prozesse durch spezifische/angepasste Hardwarekomponenten ausgeführt werden, die festverdrahtete Logikschaltkreise oder programmierbare Logikschaltkreise (z.B. FPGA, PLD) zum Ausführen der Prozesse enthalten, oder durch eine beliebige Kombination Computerkomponenten und angepasster Hardwarekomponenten.
  • Element der vorliegenden Erfindung können auch als maschinenlesbares Medium zum Speichern der maschinenausführbaren Anweisungen bereitgestellt werden. Das maschinenlesbare Medium kann, aber ohne Beschränkung darauf, Folgendes umfassen: Disketten, optische Datenträger, CD-ROMs und magnetooptische Datenträger, FLASH-Speicher, ROMs, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten, Ausbreitungsmedien oder eine andere Art von zum Speichern von elektronischen Anweisungen geeignetem Medium/maschinenlesbarem Medium. Zum Beispiel kann die vorliegende Erfindung als ein Computerprogramm heruntergeladen werden, das von einem entfernten Computer (z.B. einem Server) mittels Datensignalen, die in einer Trägerwelle oder einem anderen Ausbreitungsmedium über eine Kommunikationsverbindung (z.B. ein Moden oder eine Netzwerkverbindung) zu einem anfordernden Computer (z.B. einem Client) transferiert werden kann.
  • In der obigen Beschreibung wurde die Erfindung unter Bezugnahme auf spezifische beispielhafte Ausführungsformen beschrieben. Es versteht sich jedoch, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne von dem allgemeineren Wesen und Schutzumfang der Erfindung, sowie er in den angefügten Ansprüchen dargelegt wird, abzuweichen. Die Beschreibung und die Zeichnungen sind dementsprechend nicht im einschränkenden, sondern im veranschaulichenden Sinne aufzufassen.

Claims (15)

  1. Vorrichtung, umfassend: einen SSD-Controller (Solid State Drive) zum Verfolgen eines jeweiligen logischen Sättigungswerts für jeden von mehreren durch das SSD unterstützten Streams, wobei der logische Sättigungswert eines Streams eine Messung davon ist, wie viele der zugewiesenen Speicherungsressourcen des Streams gültige Daten enthalten, wobei der Controller wiederholt für Speicherbereinigung jegliche der mehreren Streams auswählen soll, der verglichen mit den anderen Streams einen niedrigsten logischen Sättigungswert aufweist.
  2. Vorrichtung nach Anspruch 1, wobei die logischen Sättigungswerte für die mehreren Streams über eine verlängerte Laufzeit des SSD hinweg zu einem selben logischen Sättigungswert tendieren, so dass jeder der mehreren Streams ein vergleichbares Verhältnis gültiger Daten zu zugewiesenen Speicherungsressourcen aufrechterhält.
  3. Vorrichtung nach Anspruch 2, wobei beliebige der mehreren Streams Folgendes aufweisen können: einen beständigen Fluss von Schreibvorgängen in existierende Daten; Bursts von Schreibvorgängen in existierende Daten.
  4. Vorrichtung nach Anspruch 3, wobei die mehreren Streams unterschiedliche Datenraten aufweisen können.
  5. Vorrichtung nach Anspruch 2, wobei ein erster der mehreren Streams mit einer niedrigeren Datenrate durch den Controller mehr Speicherungsressourcen zugewiesen bekommen soll als ein zweiter der mehreren Streams mit einer höheren Datenrate.
  6. Vorrichtung nach Anspruch 1, wobei ein erster der mehreren Streams mit einer niedrigeren Datenrate durch den Controller mehr Speicherungsressourcen zugewiesen bekommen soll als ein zweiter der mehreren Streams mit einer höheren Datenrate.
  7. Vorrichtung nach Anspruch 1, wobei der Controller sich aus Speicherbereinigung ergebende zurückbeanspruchte Speicherungsressourcen zu einem freien Pool hinzufügen soll und einem Stream zugewiesene Speicherungsressourcen von dem freien Pool abziehen soll.
  8. Vorrichtung nach Anspruch 7, wobei die Speicherungsressourcen in Einheiten von Bändern zu dem freien Pool hinzugefügt oder von diesem abgezogen werden.
  9. Vorrichtung nach Anspruch 7, wobei die Speicherungsressourcen in Einheiten von Blöcken zu dem freien Pool hinzugefügt und von diesem abgezogen werden.
  10. Solid State Drive, das den Solid-State-Drive-Controller nach einem der Ansprüche 1 bis 9 umfasst.
  11. Solid State Drive nach Anspruch 10, wobei das Solid State Drive in einen Computer eingesteckt wird.
  12. Vorrichtung, umfassend: Mittel zum Verfolgen eines logischen Sättigungswerts für jeden von mehreren Streams, die an eine Massenspeicherungsvorrichtung gerichtete Lese- und Schreibbefehle umfassen, wobei der logische Sättigungswert eines Streams eine Messung davon ist, wie viele der zugewiesenen Speicherungsressourcen des Streams der Massenspeicherungsvorrichtung gültige Daten enthalten; und Mittel zum wiederholten Auswählen zur Speicherbereinigung desjenigen der mehreren Streams, der verglichen mit den anderen Streams einen niedrigsten logischen Sättigungswert aufweist.
  13. Vorrichtung nach Anspruch 12, wobei die logischen Sättigungswerte für die mehreren Streams über eine verlängerte Laufzeit des SSD hinweg zu einem selben logischen Sättigungswert tendieren, so dass jeder der mehreren Streams ein vergleichbares Verhältnis gültiger Daten zu zugewiesenen Speicherungsressourcen aufrechterhält.
  14. Vorrichtung nach Anspruch 13, wobei beliebige der mehreren Streams Folgendes aufweisen können: einen beständigen Fluss von Schreibvorgängen in existierende Daten; Bursts von Schreibvorgängen in existierende Daten.
  15. Vorrichtung nach Anspruch 14, wobei die mehreren Streams unterschiedliche Datenraten aufweisen können.
DE102020102781.8A 2019-02-07 2020-02-04 Auswahl von massenspeicherungsvorrichtungs-streams zur speicherbereinigung auf der basis lokaler sättigung Pending DE102020102781A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/269,986 US11138104B2 (en) 2019-02-07 2019-02-07 Selection of mass storage device streams for garbage collection based on logical saturation
US16/269,986 2019-02-07

Publications (1)

Publication Number Publication Date
DE102020102781A1 true DE102020102781A1 (de) 2020-08-13

Family

ID=66659142

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020102781.8A Pending DE102020102781A1 (de) 2019-02-07 2020-02-04 Auswahl von massenspeicherungsvorrichtungs-streams zur speicherbereinigung auf der basis lokaler sättigung

Country Status (3)

Country Link
US (1) US11138104B2 (de)
CN (1) CN111538680A (de)
DE (1) DE102020102781A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10983829B2 (en) * 2019-07-12 2021-04-20 Micron Technology, Inc. Dynamic size of static SLC cache
US11494102B2 (en) * 2021-03-09 2022-11-08 Micron Technology, Inc. Media management operations based on a ratio of valid data
KR102652396B1 (ko) * 2021-05-31 2024-03-28 한국항공대학교산학협력단 멀티스트림을 활용한 분산 병렬 시스템의 데이터 분리 저장 장치 및 방법
US20240061589A1 (en) * 2022-08-17 2024-02-22 Micron Technology, Inc. Code rate as function of logical saturation

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8762620B2 (en) * 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
JP2016170583A (ja) * 2015-03-12 2016-09-23 株式会社東芝 メモリシステムおよび情報処理システム
US11048624B2 (en) * 2017-04-25 2021-06-29 Samsung Electronics Co., Ltd. Methods for multi-stream garbage collection

Also Published As

Publication number Publication date
CN111538680A (zh) 2020-08-14
US20190171564A1 (en) 2019-06-06
US11138104B2 (en) 2021-10-05

Similar Documents

Publication Publication Date Title
DE102020102781A1 (de) Auswahl von massenspeicherungsvorrichtungs-streams zur speicherbereinigung auf der basis lokaler sättigung
DE102017128952B4 (de) Datenspeichervorrichtung, die konfiguriert ist, um eine nicht-blockierende Steuerungs-Aktualisierungsoperation auszuführen
DE102012216022B4 (de) Verwaltung einer Zeitpunktkopie-Beziehung für platzsparende Datenträger
DE112014004761B4 (de) Beeinflussung des Wear-Leveling in Speichersystemen
DE112010002663B4 (de) Speichermanagementsysteme, Verfahren zur Verbesserung der Schreib-Lösch-Ausdauerlebenszeit von Speichervorrichtungen und Computerprogrammprodukt
DE102020132764A1 (de) Solid-state-drive mit externer softwareausführung zum bewirken von internen operationen des solid-state-drive
DE112014006118B4 (de) Spekulatives Vorab-Holen von in einem Flash-Speicher gespeicherten Daten
DE60319407T2 (de) Verfolgen der am häufigsten gelöschten blöcke eines nichtflüchtigen speichersystems
DE60319563T2 (de) Verwaltung der anzahl von löschungen in einem nicht-fluchtigem speicher
DE69726088T2 (de) Methode und Apparat zur Speicherverwaltung
DE102018214013A1 (de) Automatische kontinuierliche Prüfpunktsetzung
DE112018004256T5 (de) Redundanzcodierstreifen basierend auf internen adressen von speichervorrichtungen
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102005063250A1 (de) Datenspeicherungssteuersystem, Speicher- und Rechnersystem und Betriebsverfahren
DE112008000180T5 (de) Verfahren und System für die Umsetzung eines Fast-Wakeup eines Flashspeichersystems
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE102009034651A1 (de) Prozess und Verfahren zur Abbildung von logischen Adressen auf physische Adressen in Festkörperplatten
DE102017112751A1 (de) Internes Vorkonditionieren von Halbleiterlaufwerken für verschiedene Arbeitslasten
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE102007031269A1 (de) Verfahren zum Zugreifen auf Steuerregister über eine Speichervorrichtung
DE102007031270A1 (de) Verfahren zum Zugreifen auf einen nichtflüchtigen Speicher über eine Flüchtiger-Speicher-Schnittstelle
DE102012208141A1 (de) Ausgleich nachlassender Funktionsfähigkeit
DE102009048179A1 (de) Prozess und Verfahren für eine Löschstrategie in Festkörperplatten
DE102018130164A1 (de) Speicherungsvorrichtung mit programmierten zellenspeicherungsdichtenmodi, die eine funktion einer speicherungsvorrichtungskapazitätsnutzung sind
DE102018109929A1 (de) NAND-Flash-Speichervorrichtung mit NAND-Puffer

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

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

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