DE102020128780A1 - Speichervorrichtung mit unbeaufsichtigtem lernschema und speicherverwaltungsverfahren dafür - Google Patents

Speichervorrichtung mit unbeaufsichtigtem lernschema und speicherverwaltungsverfahren dafür Download PDF

Info

Publication number
DE102020128780A1
DE102020128780A1 DE102020128780.1A DE102020128780A DE102020128780A1 DE 102020128780 A1 DE102020128780 A1 DE 102020128780A1 DE 102020128780 A DE102020128780 A DE 102020128780A DE 102020128780 A1 DE102020128780 A1 DE 102020128780A1
Authority
DE
Germany
Prior art keywords
input
output
hot data
data
hot
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
DE102020128780.1A
Other languages
English (en)
Inventor
Byeonghui Kim
Jungmin Seo
Kangho Roh
Hyeongyu Min
JooYoung HWANG
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020190175237A external-priority patent/KR20210083448A/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102020128780A1 publication Critical patent/DE102020128780A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Abstract

Verfahren enthält das Abtasten von Eingabe-/Ausgabe-Anforderungen von einem Host, um abgetastete Eingabe-/Ausgabe-Anforderungen zu erzeugen; das Klassifizieren der abgetasteten Eingabe-/Ausgabe-Anforderungen in Cluster unter Verwendung eines Algorithmus eines unüberwachten Lernens; das Bestimmen eines Bereichs heißer Daten basierend auf einer Eigenschaft der Cluster; und das Aufnehmen des bestimmten Bereichs heißer Daten in eine Tabelle heißer Daten.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht die Priorität nach 35 U.S.C. § 119 zur koreanischen Patentanmeldung Nr. 10-2019-0175237 , die am 26. Dezember 2019 beim koreanischen Amt für geistiges Eigentum eingereicht wurde und deren Offenbarung durch Verweis hierauf hierin in ihrer Gesamtheit aufgenommen wird.
  • HINTERGRUND
  • Bereich
  • Vorrichtungen, Apparate, Systeme und Verfahren, die mit der vorliegenden Offenbarung übereinstimmen, beziehen sich auf eine Halbleiterspeichervorrichtung und insbesondere auf eine Speichervorrichtung, die ein Schema für unüberwachtes Lernen und ein Speicherverwaltungsverfahren dafür verwendet.
  • Beschreibung des Standes der Technik
  • Eine Flash-Speichervorrichtung wird weithin als Sprach- und Bilddaten-Speichervorrichtung von Informationsvorrichtungen, wie z. B. einem Computer, einem Smartphone, einem Personal Digital Assistant (PDA), einer Digitalkamera, einem Camcorder, einer Diktiervorrichtung, einem MP3-Player und einem Handheld-PC verwendet. Es gibt eine zunehmende Verallgemeinerung der Flash-Speichervorrichtung als Speichervorrichtung. Heutzutage wird eine Halbleiterspeichervorrichtung mit einer dreidimensionalen Array-Struktur geliefert, um den Integrationsgrad der Flash-Speichervorrichtung zu verbessern. Zellstränge der Flash-Speichervorrichtung, die die dreidimensionale Array-Struktur aufweisen, werden entlang einer Richtung senkrecht zu einem Substrat gestapelt. Das heißt, Speicherzellen werden auf dem Substrat entlang Zeilen und Spalten vorgesehen und in der Richtung senkrecht zum Substrat gestapelt, um die dreidimensionale Struktur zu bilden.
  • Eine Speichervorrichtung, die die Flash-Speichervorrichtung verwendet, identifiziert und verwaltet heiße Daten/kalte Daten, um die Effizienz der Speicherbereinigung zu erhöhen. Die heißen Daten bedeuten Daten mit einer relativ hohen Aktualisierungsfrequenz, und die kalten Daten bedeuten Daten mit einer relativ niedrigen Aktualisierungsfrequenz. Da die Daten in einem Zustand verwaltet werden, in dem sie in heiße Daten und kalte Daten klassifiziert werden, kann die Anzahl der für die Speicherbereinigung erforderlichen Seitenkopien abnehmen.
  • Ein Schema zur Speicherung einer logischen Blockadresse (LBA) unter Verwendung eines begrenzten Speichers wird jedoch nach wie vor als Schema zur Klassifizierung der Daten in heiße Daten und kalte Daten verwendet. In diesem Fall ist ein Speicherfenster für die Speicherung einer Eingabe-LBA begrenzt, so dass es eine Einschränkung der Genauigkeit gibt. Wenn die Größe des Speicherfensters zunimmt, kann die Genauigkeit erhöht werden, allerdings auf Kosten eines erhöhten Overheads. Es wäre vorteilhaft, über eine Technologie zur effizienteren Identifizierung heißer Daten zu verfügen, um eine Hochgeschwindigkeits-Speichervorrichtung mit hoher Kapazität effizient zu verwalten und deren Lebensdauer zu erhöhen.
  • ZUSAMMENFASSUNG
  • Es ist ein Aspekt, eine Speichervorrichtung vorzusehen, die in der Lage ist, heiße Daten mit hoher Genauigkeit zu identifizieren, ohne den Overhead und ein Betriebsverfahren dafür zu erhöhen.
  • Nach einem Aspekt einer beispielhaften Ausführungsform wird ein Verfahren vorgesehen, umfassend: Abtasten, durch einen Prozessor, einer Vielzahl von Eingabe-/Ausgabe-Anforderungen von einem Host, um abgetastete Eingabe-/Ausgabe-Anforderungen zu erzeugen; Klassifizieren der abgetasteten Eingabe-/Ausgabe-Anforderungen durch den Prozessor in eine Vielzahl von Clustern unter Verwendung eines Algorithmus eines unüberwachten Lernens; Bestimmen eines Bereichs heißer Daten durch den Prozessor basierend auf einer Eigenschaft der Vielzahl von Clustern; und Aufnehmen des ermittelten Bereichs heißer Daten durch den Prozessor in eine Tabelle heißer Daten.
  • Nach einem anderen Aspekt einer beispielhaften Ausführungsform ist eine Speichervorrichtung vorgesehen, die einen Speicher-Controller umfasst, der eingerichtet ist, um während einer ersten Periode eine Vielzahl von Eingabe-/Ausgabe-Anforderungen abzutasten, die von einem Host übertragen werden, um abgetastete Daten zu erzeugen, die abgetasteten Daten unter Verwendung eines Algorithmus eines unüberwachten Lernens in eine Vielzahl von Clustern zu klassifizieren, einen Bereich heißer Daten basierend auf einer Eigenschaft der Vielzahl von Clustern zu bestimmen und den bestimmten Bereich heißer Daten in eine Tabelle heißer Daten aufzunehmen; und eine nichtflüchtige Speichervorrichtung, eingerichtet ist, um einen Speicherblock zum Speichern von Schreib-Anforderungsdaten unter der Steuerung des Speicher-Controllers vorzusehen, wobei der Speicher-Controller unter Bezugnahme auf die Tabelle heißer Daten bestimmt, ob vom Host während einer zweiten Periode übertragene Eingabe-/Ausgabe-Anforderungen heißen Daten entsprechen.
  • Nach einem noch weiteren Aspekt einer beispielhaften Ausführungsform ist ein Speichersystem vorgesehen, das eine Speichervorrichtung umfasst, die eingerichtet ist, um Multi-Strom-Daten zu empfangen und einen Speicherblock auf einer Strom-Basis zuzuweisen; und einen Host, der eingerichtet ist, um eine Vielzahl von Eingabe/Ausgabe-Anforderungen von mindestens einem Anwendungsprogramm während einer ersten Periode abzutasten, um abgetastete Daten zu erzeugen, die abgetasteten Daten in eine Vielzahl von Clustern unter Verwendung eines Algorithmus eines unüberwachten Lernens zu klassifizieren, einen Bereich heißer Daten basierend auf einem Merkmal der Vielzahl von Clustern zu bestimmen, den bestimmten Bereich heißer Daten in eine Tabelle heißer Daten aufzunehmen und basierend auf der Tabelle heißer Daten einen Strom-Bezeichner zuzuweisen, der während einer zweiten Periode an die Speichervorrichtung zu übertragen ist.
  • Figurenliste
  • Die vorstehenden und andere Aspekte werden deutlich, wenn beispielhafte Ausführungsformen davon mit Bezug auf die beigefügten Zeichnungen detailliert beschrieben werden, in denen:
    • 1 ist ein Blockdiagramm, das eine Speichervorrichtung nach einer Ausführungsform darstellt;
    • 2 ist ein Blockdiagramm, das eine Konfiguration eines Speicher-Controllers der Speichervorrichtung aus 1 nach einer Ausführungsform veranschaulicht;
    • 3 ist ein Blockdiagramm, das eine nichtflüchtige Speichervorrichtung nach einer Ausführungsform darstellt;
    • 4 ist ein Ablaufdiagramm, das ein Verfahren veranschaulicht, bei dem ein Speicher-Controller eine Tabelle heißer Daten bildet, indem er einen Algorithmus eines unüberwachten Lernens nach einer Ausführungsform verwendet;
    • 5 ist ein Blockdiagramm, das ein Merkmal eines Moduls eines unüberwachten Lernens nach einer Ausführungsform veranschaulicht;
    • 6 ist ein Diagramm, das eine Abtastperiode veranschaulicht, in der ein Modul eines unüberwachten Lernens nach einer Ausführungsform ein Abtasten an Eingabe-/Ausgabe-Anforderungen durchführt, sowie einen Abtastzyklus;
    • 7 ist ein Diagramm, das Eingabe-/Ausgabe-Anforderungen veranschaulicht, die von einem Modul eines unüberwachten Lernens in einer Abtastperiode von 6 abgetastet wurden;
    • 8 ist eine Tabelle, die ein Verfahren zur Analyse von abgetasteten und gruppierten Eingabe-/Ausgabe-Anforderungen nach einer Ausführungsform veranschaulicht;
    • 9 ist ein Ablaufdiagramm, das ein Verfahren zur Verwendung einer Tabelle heißer Daten nach einer Ausführungsform veranschaulicht;
    • 10 ist ein Diagramm, das eine Tabelle heißer Daten nach einer Ausführungsform veranschaulicht;
    • 11 ist ein Ablaufdiagramm, das ein Verfahren zur Verarbeitung einer Eingabe-/Ausgabe-Anforderung unter Verwendung der Tabelle heißer Daten von 10 nach einer Ausführungsform veranschaulicht;
    • 12 ist ein Blockdiagramm, das ein Speichersystem nach einer anderen Ausführungsform darstellt;
    • 13 ist ein Blockdiagramm, das die Softwarestruktur eines Hosts des in 12 dargestellten Speichersystems nach einer Ausführungsform veranschaulicht; und
    • 14 ist ein Blockdiagramm, das ein Speichersystem nach einer anderen Ausführungsform darstellt.
  • DETAILLIERTE BESCHREIBUNG
  • Es sollte verstanden werden, dass sowohl die vorstehende allgemeine Beschreibung als auch die folgende detaillierte Beschreibung als Beispiele dienen und als zusätzliche Beschreibung angesehen werden sollte. Referenzziffern werden in verschiedenen Ausführungsformen, die im Folgenden erörtert werden, ausführlich dargestellt; Beispiele dafür sind in den beigefügten Zeichnungen veranschaulicht. Wo immer möglich, werden in den Zeichnungen und in der Beschreibung die gleichen Referenzziffern verwendet, um auf gleiche oder ähnliche Teile zu verweisen.
  • Im Folgenden wird eine Speichervorrichtung unter Verwendung einer Flash-Speichervorrichtung beispielhaft vorgestellt, um Merkmale und Funktionen der verschiedenen beispielhaften Ausführungsformen zu beschreiben. Ein Fachmann kann jedoch aus dem hier offenbarten Inhalt leicht andere Vorzüge und Leistungen der beispielhaften Ausführungsformen erkennen. Die dargestellten beispielhaften Ausführungsformen können durch andere Ausführungsformen implementiert oder angewendet werden. Darüber hinaus kann die detaillierte Beschreibung je nach Gesichtspunkten und Anwendungen geändert oder modifiziert werden, ohne von Umfang und Geist der Offenbarung, wie in den beigefügten Ansprüchen dargelegt, abzuweichen.
  • 1 ist ein Blockdiagramm, das eine Speichervorrichtung nach einer Ausführungsform darstellt. Unter Bezugnahme auf 1 kann eine Speichervorrichtung 100 einen Speicher-Controller 110 und eine nichtflüchtige Speichervorrichtung 120 enthalten. In einigen Ausführungsformen können der Speicher-Controller 110 und die nichtflüchtige Speichervorrichtung 120 jeweils mit einem Chip, einem Package oder einem Modul implementiert sein. In anderen Ausführungsformen können der Speicher-Controller 110 und die nichtflüchtige Speichervorrichtung 120 alternativ mit einem Chip, einem Package oder einem Modul implementiert werden, um ein Speichersystem, wie etwa eine Speicherkarte, einen Speicherstick oder ein Festkörperlaufwert (SSD) zu bilden.
  • Der Speicher-Controller 110 kann eingerichtet werden, um die nichtflüchtige Speichervorrichtung 120 zu steuern. Zum Beispiel kann der Speicher-Controller 110 als Antwort auf eine Eingabe-/Ausgabe (E/A)-Anforderung eines Hosts Daten in die nichtflüchtige Speichervorrichtung 120 schreiben oder in der nichtflüchtigen Speichervorrichtung 120 gespeicherte Daten lesen. Um auf die nichtflüchtige Speichervorrichtung 120 zuzugreifen, kann der Speicher-Controller 110 einen Befehl, eine Adresse, Daten und ein Steuersignal der nichtflüchtigen Speichervorrichtung 120 zuführen.
  • Insbesondere kann der Speicher-Controller 110 nach einer Ausführungsform ein UL-Modul 114 (UL = Unsupervised Learning, unüberwachtes Lernen) enthalten. Der Speicher-Controller 110 kann eine vom Host vorgesehene Eingabe-/Ausgabe (E/A)-Anforderung abtasten. Eine Zeit, zu dem das Abtasten durchgeführt wird, wird als „Abtastperiode“ bezeichnet. Die Abtastperiode wird in einem bestimmten Zyklus während einer Laufzeit der Speichervorrichtung 100 zugewiesen. Eine Zeit zwischen Abtastperioden wird als „Abtastzyklus“ bezeichnet. Während der Abtastperiode kann die Speichervorrichtung 110 Eingabe-/Ausgabe-Anforderungen, die vom Host vorgesehen werden, nach dem Zufallsprinzip abtasten. Das Abtasten von Eingabe-/Ausgabe-Anforderungen bedeutet, dass ein Teil der Eingabe-/Ausgabe-Anforderungen ausgewählt und charakteristische Informationen, wie eine logische Blockadresse (LBA) und eine Datengröße des ausgewählten Teils der Eingabe-/Ausgabe-Anforderungen in einem reservierten Speicher gespeichert werden.
  • Das Modul 114 eines unüberwachten Lernens kann unter Verwendung des Abtastergebnisses heiße Daten oder kalte Daten identifizieren. Das Modul 114 eines unüberwachten Lernens kann abgetastete LBAs klassifizieren und kann die Daten der abgetasteten LBAs in die heißen Daten und die kalten Daten klassifizieren. Das Modul 114 eines unüberwachten Lernens gruppiert die abgetasteten LBAs durch unüberwachtes Lernen in Cluster. Das Modul 114 eines unüberwachten Lernens kann ein gruppiertes Ergebnis analysieren, um eine Tabelle HDT heißer Daten zu erzeugen. Die Tabelle HDT heißer Daten kann die folgenden statistischen Informationen über heiße Daten enthalten: einen LBA-Bereich, ein Überschreibverhältnis (d. h. ein Verhältnis der Anzahl der Überschreibungen zur Anzahl der Schreibvorgänge), eine Eingabe-/Ausgabezählung, ein Eingabe-/Ausgabeintervall und/oder eine Eingabe-/Ausgabe-Anforderung usw. In einigen Ausführungsformen kann eine Überschreibzählung zusätzlich zum oder anstelle des Überschreibverhältnisses verwendet werden.
  • Der Speicher-Controller 110 kann unter Bezugnahme auf die Tabelle HDT heißer Daten bestimmen, ob eine empfangene Eingabe-/Ausgabe-Anforderung mit einer LBA, die heißen Daten entspricht, assoziiert ist. Die Tabelle HDT heißer Daten dient zur Verwaltung adressbereichsbasierter Informationen über einen LBA-Bereich und nicht zur Verwaltung von Informationen über LBAs eines bestimmten Bereichs. Das heißt, entsprechend der Tabelle HDT heißer Daten können Informationen über heiße Daten über alle LBAs vorgesehen werden, die die Speichervorrichtung 100 unterstützt. Die Tabelle HDT heißer Daten kann Informationen liefern, unter Verwendung derer bestimmt werden kann, ob eine empfangene Eingabe-/Ausgabe-Anforderung in einem LBA-Bereich heißer Daten enthalten ist (oder als „heiße-Daten-LBA-Bereich“ oder „heiße-Daten-Bereich“ bezeichnet wird). Dementsprechend ist es im Falle der Verwendung der Tabelle HDT heißer Daten möglich, mit hoher Geschwindigkeit heiße Daten in Bezug auf alle empfangenen LBAs zu identifizieren.
  • Unter der Steuerung des Speicher-Controllers 110 kann die nichtflüchtige Speichervorrichtung 120 Daten speichern, die vom Speicher-Controller 110 empfangen wurden, oder darin gespeicherte Daten an den Speicher-Controller 110 übertragen. Die nichtflüchtige Speichervorrichtung 120 kann eine Vielzahl von Speicherblöcken BLK1 bis BLKi enthalten. Jeder der Vielzahl von Speicherblöcken BLK1 bis BLKi kann eine dreidimensionale Speicherstruktur aufweisen, in der Wortleitungsschichten in einer Richtung senkrecht zu einem Substrat gestapelt sind.
  • Nach einer Ausführungsform kann die Speichervorrichtung 100 empfangene Eingabe-/Ausgabe-Anforderungen in Echtzeit abtasten und das Abtastergebnis durch den Algorithmus eines unüberwachten Lernens gruppieren. Die Speichervorrichtung 100 kann eine LBA-Eigenschaft (z.B. kontinuierlich oder nach dem Zufallsprinzip) für jeden der Cluster analysieren und die auf einem Adressbereich basierende Tabelle HDT heißer Daten erzeugen. Entsprechend der Speichervorrichtung 100 kann unter Verwendung (d. h. mit Bezug auf) die Tabelle HDT heißer Daten unabhängig von einem Bereich einer Eingabe-LBA für alle Eingabe-/Ausgabe-Anforderungen bestimmt werden, ob eine empfangene Eingabe-/Ausgabe-Anforderung mit heißen Daten assoziiert ist.
  • 2 ist ein Blockdiagramm, das eine Konfiguration eines Speicher-Controllers der Speichervorrichtung 100 aus 1 nach einer Ausführungsform veranschaulicht. Unter Bezugnahme auf 2 enthält der Speicher-Controller 110 einen Prozessor 111, einen Arbeitsspeicher 113, eine Host-Schnittstelle (I/F) 115, einen Fehlerkorrekturcode (ECC)-Block 117 und eine Speicherschnittstelle (I/F) 119. Es ist jedoch leicht verständlich, dass die Komponenten des Speicher-Controllers 110 nicht auf die im Beispiel von 2 dargestellten Komponenten beschränkt sind. Zum Beispiel kann der Speicher-Controller 110 ferner einen Festwertspeicher (ROM), der Codedaten für einen ersten Bootvorgang speichert, und/oder andere Komponenten enthalten.
  • Der Prozessor 111 kann eine zentrale Verarbeitungseinheit (CPU) oder einen Mikroprozessor enthalten. Der Prozessor 111 kann den gesamten Betrieb des Speicher-Controllers 110 verwalten. Der Prozessor 111 ist eingerichtet, um Firmware zur Steuerung des Speicher-Controllers 110 auszuführen.
  • Software (oder Firmware) zur Steuerung des Speicher-Controllers 110 oder Daten können in den Arbeitsspeicher 113 geladen werden. Die gespeicherte Software und Daten können durch den Prozessor 111 ausgeführt oder verarbeitet werden. Insbesondere kann nach einigen Ausführungsformen mindestens eine Firmware, die eine Speicherverwaltungsoperation durchführt, in den Arbeitsspeicher 113 geladen werden. Beispielsweise kann Firmware oder Software wie eine Flash-Übersetzungsschicht FTL in den Arbeitsspeicher 113 geladen und vom Prozessor 111 aufgerufen oder ausgeführt werden. Im Allgemeinen führt die Flash-Übersetzungsschicht FTL, die vom Prozessor 111 ausgeführt wird, Funktionen wie eine Adresszuordnungsfunktion, eine Speicherbereinigungsfunktion und/oder eine Verschleißausgleichsfunktion usw. aus.
  • Zusätzlich kann das Modul 114 eines unüberwachten Lernens in den Arbeitsspeicher 113 geladen werden. Wenn das Modul 114 eines unüberwachten Lernens durch den Prozessor 111 ausgeführt wird, kann eine an den Speicher-Controller 110 übertragene Eingabe-/Ausgabe-Anforderung abgetastet werden. Das Modul 114 eines unüberwachten Lernens klassifiziert die angeforderten E/A-Daten unter Verwendung des Abtastergebnisses in heiße Daten und kalte Daten und bildet die Tabelle HDT heißer Daten. Um heiße Daten/kalte Daten unter Verwendung des Abtastergebnisses zu identifizieren, kann das Modul 114 eines unüberwachten Lernens einen heuristischen Algorithmus oder einen Algorithmus eines unüberwachten Lernens verwenden. Ein Algorithmus wie z.B. ein K-Mittelwert-Algorithmus, eine dichtebasierte räumliche Clusteranalyse mit Rauschen (DBSCAN), ein Gaußsches Mischmodel-Algorithmus oder ein Algorithmus zur balancierten iterativen Reduzierung und Clustering unter Verwendung von Hierarchien (BIRCH) kann als Algorithmus für das unüberwachte Lernen verwendet werden. Das Modul 114 eines unüberwachten Lernens kann ein Ergebnis des Clustering analysieren und die Tabelle HDT heißer Daten erzeugen. Die Tabelle HDT heißer Daten kann die folgenden statistischen Informationen über heiße Daten enthalten: einen LBA-Bereich, ein Überschreibverhältnis, eine Eingabe-/Ausgabe-Zählung, ein Eingabe-/Ausgabe-Intervall und/oder eine Eingabe-/Ausgabe-Anforderung usw. Die Tabelle HDT heißer Daten wird zur Verwaltung adressbereichsbasierter Informationen über einen LBA-Bereich verwendet, nicht zur Verwaltung von Informationen über LBAs eines bestimmten Bereichs. Der Speicher-Controller 110 kann unter Bezugnahme auf die Tabelle HDT heißer Daten bestimmen, ob eine empfangene Eingabe-/Ausgabe-Anforderung einer LBA, die heißen Daten entspricht, zugeordnet ist. Dementsprechend ist es im Falle der Verwendung der Tabelle HDT heißer Daten möglich, mit hoher Geschwindigkeit heiße Daten in Bezug auf alle empfangenen LBAs zu identifizieren.
  • Die Host-Schnittstelle (I/F) 115 bietet eine Schnittstelle zwischen dem Host und dem Speicher-Controller 110. Der Host und der Speicher-Controller 110 können über eine von verschiedenen standardisierten Schnittstellen verbunden werden. Hier umfassen die standardisierten Schnittstellen verschiedene Schnittstellen, wie z.B. eine ATA-Schnittstelle (Advanced Technology Attachment), eine SATA-Schnittstelle (Serial ATA), eine externe SATA-Schnittstelle (e-SATA), eine SCSI-Schnittstelle (SCSI = Small Computer Small Interface), eine SAS-Schnittstelle (SAS = Serial Attached SCSI), eine PCI-Schnittstelle (PCI = Peripheral Component Interconnection), eine PCI-Express-Schnittstelle (PCI-E), eine USB-Schnittstelle (USB = Universal Serial Bus), eine IEEE 1394-Schnittstelle, eine UFS-Schnittstelle (UFS = Universal Flash Store) oder eine Kartenschnittstelle usw.
  • Der ECC-Block 117 kann einen Fehler von Daten korrigieren, die aufgrund verschiedener Ursachen beschädigt wurden. Beispielsweise kann der ECC-Block 117 eine Berechnung durchführen, um einen Fehler von Daten zu erfassen oder zu korrigieren, die aus der nichtflüchtigen Speichervorrichtung 120 gelesen wurden. Insbesondere kann der ECC-Block 117 die Anzahl der Fehlerbits von Daten, die aus Speicherzellen gelesen werden, in Einheiten einer Wortleitung oder eine Bitfehlerrate BER der gelesenen Daten abhängig von einer Anforderung des Moduls eines unüberwachten Lernens 114 erfassen.
  • Die Speicherschnittstelle (I/F) 119 kann eine Schnittstelle zwischen dem Speicher-Controller 110 und der nichtflüchtigen Speichervorrichtung 120 bilden. Beispielsweise können Daten, die vom Prozessor 111 verarbeitet werden, über die Speicherschnittstelle (I/F) 119 in einer nichtflüchtigen Speichervorrichtung 120 gespeichert werden. Für ein anderes Beispiel werden Daten, die in der nichtflüchtigen Speichervorrichtung 120 gespeichert sind, dem Prozessor 111 über die Speicherschnittstelle (I/F) 119 zugeführt werden.
  • Die Komponenten des Speicher-Controllers 110 sind vorstehend beschrieben. Entsprechend den Funktionen des Speicher-Controllers 110 tastet der Speicher-Controller 110 vom Host vorgesehene Eingabe-/Ausgabe-Anforderungen ab und erzeugt die Tabelle HDT heißer Daten, die auf einem Adressbereich basiert. Der Speicher-Controller 110 kann mit Bezug auf die Tabelle HDT heißer Daten bestimmen, ob eine nach der Erzeugung der Tabelle HDT heißer Daten empfangene Eingabe-/Ausgabe-Anforderung mit heißen Daten assoziiert ist. Dementsprechend kann der Speicher-Controller 110 ohne Einschränkung eines LBA-Bereichs mit hoher Geschwindigkeit bestimmen, ob eine empfangene Eingabe-/Ausgabe-Anforderung mit heißen Daten assoziiert ist.
  • 3 ist ein Blockdiagramm, das eine nichtflüchtige Speichervorrichtung nach einer Ausführungsform darstellt. Unter Bezugnahme auf 3 kann die nichtflüchtige Speichervorrichtung 120 ein Speicherzellenarray 121, einen Decoder 122, einen Seitenpuffer 123, einen Eingabe-/Ausgabepuffer 124 und eine Steuerlogikschaltung 125 enthalten.
  • Das Speicherzellenarray 121 ist über die Wortleitungen WL und die Auswahlleitungen SSL und GSL mit dem Decoder 122 verbunden. Das Speicherzellenarray 121 ist über die Bitleitungen BL mit dem Seitenpuffer 123 verbunden. Das Speicherzellenarray 121 enthält die Vielzahl der Speicherzellen BLK1 bis BLKi. Jeder der Speicherblöcke BLK1 bis BLKi enthält eine Vielzahl von NAND-Zellensträngen. Daten können in das Speicherzellenarray 121 auf Seitenbasis geschrieben werden. Eine Löschoperation kann auf Speicherblockbasis durchgeführt werden.
  • Nach einigen Ausführungsformen kann das Speicherzellenarray 121 mit einem dreidimensionalen (3D) Speicherarray implementiert werden. Das dreidimensionale Speicherarray kann monolithisch in einer oder mehreren physikalischen Ebenen eines Speicherzellenarrays, das eine aktive Fläche aufweist, die auf einem Siliziumsubstrat angeordnet ist, und einer Schaltung, die mit einem Betrieb von Speicherzellen zusammenhängt, gebildet werden.
  • In einigen Ausführungsformen kann das 3D-Speicherarray vertikale NAND-Stränge enthalten, die vertikal ausgerichtet sind, so dass sich mindestens eine Speicherzelle über einer anderen Speicherzelle befindet. Die mindestens eine Speicherzelle enthält eine Ladungsfangschicht. Jede vertikale NAND-Zeichenkette kann mindestens einen Auswahltransistor enthalten, der sich über Speicherzellen befindet. Mindestens ein Auswahltransistor kann die gleiche Struktur wie jene der Speicherzellen aufweisen und kann zusammen mit Speicherzellen monolithisch gebildet werden.
  • Der Decoder 122 kann als Antwort auf eine Adresse ADD einen der Speicherblöcke BLK1 bis BLKi des Speicherzellenarrays 121 auswählen. Der Decoder 122 kann eine Wortleitungsspannung, die einem Betriebsmodus entspricht, einer Wortleitung des ausgewählten Speicherblocks zuführen. Der Decoder 122 kann Auswahlsignale den Auswahlleitungen SSL und GSL zuführen, um einen Speicherblock auszuwählen. Bei der Leseoperation kann eine Lesespannung Vrd an eine ausgewählte Wortleitung eines Speicherblocks angelegt werden und kann eine Durchgangslesespannung Vread an nicht ausgewählte Wörter anwenden.
  • Der Seitenpuffer 123 kann je nach Betriebsmodus als Schreibtreiber oder als Leseverstärker arbeiten. In einer Programmoperation führt der Seitenpuffer 123 einer Bitleitung des Speicherzellenarrays 121 eine Bitleitungsspannung, die den zu programmierenden Daten entspricht, zu. In einer Leseoperation liest der Seitenpuffer 123 die in einer ausgewählten Speicherzelle gespeicherten Daten über eine Bitleitung ab. Der Seitenpuffer 123 hält die erfassten Daten zwischengespeichert und gibt die zwischengespeicherten Daten an den Eingabe-/Ausgabepuffer 124 aus.
  • Der Eingabe-/Ausgabe (E/A)-Puffer 124) führt die in einer Programmoperation empfangenen Schreibdaten dem Seitenpuffer 123 zu. Der Eingabe-/Ausgabe (E/A)-Puffer 124 gibt die in der Leseoperation vom Seitenpuffer 123 vorgesehenen Daten nach außen aus. Der Eingabe-/Ausgabe-(E/A-)Puffer 124 kann die empfangene Adresse oder den empfangenen Befehl der Steuerlogikschaltung 125 oder dem Decoder 122 zuführen.
  • Die Steuerlogikschaltung 125 steuert den Decoder 122 und den Seitenpuffer 123 als Reaktion auf einen Befehl CMD und/oder ein Steuersignal CTRL. Die Steuerlogikschaltung 125 kann den Decoder 122 steuern, um je nach Programmbefehl Biases in verschiedenen Schemata zu erzeugen. Insbesondere kann die Steuerlogikschaltung 125 in Abhängigkeit von einer Anforderung vom Speicher-Controller 110 (eine) Information(en) über ein Programmergebnis ausgeben.
  • Die Anzahl der Wortleitungen, die in jedem der Speicherblöcke BLK1 bis BLKi gestapelt sind, erhöht sich, um eine Speichervorrichtung mit hoher Kapazität zu implementieren. Ebenso nimmt die Anzahl der Datenbits zu, die in jeder der Speicherzellen gespeichert werden müssen. Dementsprechend kann sich im Falle einer schnellen Identifizierung von heißen Daten und der Zuweisung der identifizierten heißen Daten an einen Speicherblock zur Speicherung der heißen Daten die Anzahl der Seitenkopien, die bei der Speicherbereinigung anfallen, verringern. Da die Speicherverwaltung durch das Modul 114 eines unüberwachten Lernens (siehe 1) nach verschiedenen beispielhaften Ausführungsformen erfolgt, kann die Effizienz der Speicherbereinigung verbessert und die Lebensdauer der Speichervorrichtung 100 verlängert werden.
  • 4 ist ein Ablaufdiagramm, das ein Verfahren veranschaulicht, bei dem ein Speicher-Controller die Tabelle HDT heißer Daten bildet, indem er einen Algorithmus eines unüberwachten Lernens nach einer Ausführungsform verwendet. Unter Bezugnahme auf 4 tastet der Speicher-Controller 110 Eingabe-/Ausgabe (E/A)-Anforderungen vom Host innerhalb der Abtastperiode ab. Der Speicher-Controller 110 kann aus dem Abtastergebnis einen LBA-Bereich bestimmen, der den heißen Daten entspricht.
  • In der Operation S110 empfängt der Speicher-Controller 110 eine Eingabe-/Ausgabe (E/A)-Anforderung vom Host. Wenn die Eingabe-/Ausgabe (E/A)-Anforderung empfangen wird, kann der Speicher-Controller 110 ein in der Eingabe-/Ausgabe (E/A)-Anforderung enthaltenes LBA extrahieren. Beispielsweise kann die Eingabe-/Ausgabe (E/A)-Anforderung eine Schreibanforderung, eine Leseanforderung, eine Löschanforderung usw. enthalten. Die Eingabe-/Ausgabe (E/A)-Anforderung kann eine logische Blockadresse LBA und eine Datengröße (z. B. eine Sektorzählung) enthalten.
  • In der Operation S120 tastet der Speicher-Controller 110 die Eingabe-/Ausgabe (E/A)-Anforderung nach dem Zufallsprinzip ab. Der Grund dafür, dass das Abtasten nach dem Zufallsprinzip erfolgt, liegt darin, dass viele Ressourcen erforderlich wären, um alle empfangenen Eingabe-/Ausgabe (E/A)-Anforderungen abzutasten, und der durch die Berechnung bedingte Overhead groß werden würde. Dementsprechend werden Eingabe-/Ausgabe (E/A)-Anforderungen abgetastet, so dass die nach dem Zufallsprinzip abgetasteten Eingabe-/Ausgabe (E/A)-Anforderungen die Eigenschaften aller Eingabe-/Ausgabe (E/A)-Anforderungen widerspiegeln. Die abgetasteten Eingabe-/Ausgabe (E/A)-Anforderungen können als repräsentativ für die Eigenschaften aller Eingabe-/Ausgabe (E/A)-Anforderungen angesehen werden.
  • Abtasten bedeutet, Informationen über eine LBA oder eine Datengröße, die einer aktuellen Eingabe-/Ausgabe (E/A)-Anforderung entspricht, zu erhalten und zu speichern. Dabei können Eingabe-/Ausgabe (E/A)-Anforderungen mit Hilfe einer Zufallszahl nach dem Zufallsprinzip abgetastet werden. Wenn beispielsweise eine erzeugte Zufallszahl geradzahlig ist, kann eine aktuell vom Host übertragene Eingabe-/Ausgabe (E/A)-Anforderung abgetastet werden. Wenn dagegen eine erzeugte Zufallszahl ungerade Zahlen enthält, kann das Abtasten einer Eingabe-/Ausgabe (E/A)-Anforderung, die derzeit vom Host übertragen wird, übersprungen werden. Es kann jedoch gut verstanden werden, dass das auf dem Zufallsprinzip basierte Abtasten unter Verwendung einer Zufallszahl nur ein Beispiel ist, und dass der Weg zur Abtastung von Eingabe-/Ausgabe (E/A)-Anforderungen nach dem Zufallsprinzip nicht besonders beschränkt ist. In anderen Ausführungsformen kann ein anderes Verfahren zum Abtasten nach dem Zufallsprinzip der Eingabe-/Ausgabe (E/A)-Anforderungen verwendet werden.
  • In der Operation S130 prüft der Speicher-Controller 110, ob die Anzahl der abgetasteten Eingabe-/Ausgabe (E/A)-Anforderungen größer als ein Schwellenwert TH ist. Das heißt, der Speicher-Controller 110 kann bestimmen, ob die Anzahl der abgetasteten E/A-Anforderungen einen Wert (z.B. TH) erreicht, der in der Lage ist, während einer bestimmten Zeit heiße Daten und kalte Daten darzustellen. Wenn festgestellt wird, dass die Anzahl der abgetasteten Eingabe-/Ausgabe (E/A)-Anforderungen größer als der Schwellenwert TH ist (S130, Ja), fährt das Verfahren mit Operation S140 fort. Wenn dagegen festgestellt wird, dass die Anzahl der abgetasteten E/A-Anforderungen nicht größer als der Schwellenwert TH ist (S130, Nein), fährt die Prozedur mit Operation S110 fort, um bei E/A-Anforderungen eine zusätzliche Abtastung durchzuführen.
  • In der Operation S140 werden die abgetasteten Eingabe-/Ausgabe (E/A)-Anforderungen gruppiert. Das heißt, das Modul 114 eines unüberwachten Lernens des Speicher-Controllers 110 führt das Clustering durch, indem es LBAs oder Merkmale der abgetasteten Eingabe-/Ausgabe (E/A)-Anforderungen klassifiziert. Beispielsweise kann eine LBA, die in einer Eingabe-/Ausgabe (E/A)-Anforderung enthalten ist, für das Clustering ausgewählt werden. Für das LBA-Clustering kann das Modul 114 eines unüberwachten Lernens einen heuristischen Algorithmus oder ein Schema für unüberwachtes Lernen verwenden. Insbesondere kann mindestens einer der Algorithmen wie ein K-Mittelwert-Algorithmus, ein DBSCAN-Algorithmus, ein Gaußsches Mischmodel-Algorithmus oder ein Algorithmus zur balancierten iterativen Reduzierung und Clustering unter Verwendung von Hierarchien (BIRCH, BIRCH = Balanced Iterative Reducing and Clustering using Hierarchies) usw. für das unüberwachte Lernen verwendet werden.
  • In der Operation S150 analysiert das Modul 114 eines unüberwachten Lernens die gruppierten LBAs. Das Modul 114 eines unüberwachten Lernens kann Daten jeder der gruppierten LBAs analysieren und nach einem Cluster suchen, das eine starke Zufallstendenz (d. h. ein Zufallsmerkmal) und ein relativ großes Überschreibverhältnis (d. h. ein Überschreibmerkmal) aufweist. Beispielsweise kann das Modul 114 eines unüberwachten Lernens in Bezug auf jeden LBA-Cluster Folgendes berechnen: eine LBA-Kontinuitätszählung, ein LBA-Überschreibverhältnis, einen LBA-Bereich (LBA_min, LBA_max), eine Gesamt-E/A-Zählung, eine Gesamtschreibgröße, ein E/A-Intervall und/oder einen statistischen Wert (z. B. einen Durchschnitts- / Standardabweichungs- / Mittelwert) der angeforderten E/A-Größen usw. Das Modul 114 eines unüberwachten Lernens kann zusätzlich zu den vorstehend genannten Informationen verschiedene charakteristische Informationen über die LBA-Cluster extrahieren und die extrahierten Informationen in einer Speicherverwaltungsoperation verwenden.
  • Um beispielsweise die LBA-Kontinuitätszählung eines Clusters zu erhalten, kann das Modul 114 eines unüberwachten Lernens die LBAs der zum Cluster gehörenden Eingabe-/Ausgabe (E/A)-Anforderungen in einer aufsteigenden Reihenfolge der Eingabezeiten der LBAs ausrichten. Auf der Grundlage der ausgerichteten LBAs kann das Modul 114 eines unüberwachten Lernens berechnen, ob ein Wert, der das Ergebnis der Addition einer LBA und einer angeforderten Datengröße ist, die zu einem Zeitpunkt „t“ eingegeben wurden, gleich einem Wert einer LBA zu einem Zeitpunkt „t+1“ ist. Der Fall, in dem der Wert, der dem Zeitpunkt „t“ entspricht, gleich einem Wert der LBA ist, der dem Zeitpunkt „t+1“ entspricht, entspricht einer LBA-Kontinuität, und der Fall, in dem der Wert, der dem Zeitpunkt „t“ entspricht, nicht gleich einem Wert der LBA ist, der dem Zeitpunkt „t+1“ entspricht, entspricht einer LBA-Diskontinuität. In Bezug auf einen Cluster entspricht die Anzahl der Fälle, in denen eine LBA-Kontinuität erfasst wird, der LBA-Kontinuitätszählung. Wenn ein Verhältnis der LBA-Kontinuitätszählung zu einer Gesamt-E/A-Zählung eines Clusters ein Referenzverhältnis oder mehr ist, kann der entsprechende Cluster als sequentieller Cluster bestimmt werden. Wenn dagegen das Verhältnis der LBA-Kontinuitätszählung zur Gesamt-E/A-Zählung des Clusters kleiner als das Referenzverhältnis ist, kann der entsprechende Cluster als ein Cluster nach dem Zufallsprinzip bestimmt werden.
  • In der Operation S160 bestimmt das Modul 114 eines unüberwachten Lernens einen LBA-Bereich heißer Daten basierend auf einem Ergebnis der in Operation S150 durchgeführten Analyse. Beispielsweise kann das Modul 114 eines unüberwachten Lernens Cluster, deren Verhältnis einer LBA-Kontinuitätszählung zu einer Gesamt-E/A-Zählung kleiner als das Referenzverhältnis ist, als einen Bereich heißer Daten bestimmen. Alternativ kann das Modul 114 eines unüberwachten Lernens einen Cluster mit einem LBA-Überschreibverhältnis, das höher als ein Referenzwert ist, als einen Bereich heißer Daten bestimmen.
  • In der Operation S170 kann das Modul 114 eines unüberwachten Lernens den ermittelten Bereich heißer Daten in die Tabelle heißer Daten aufnehmen. Beispielsweise kann das Modul 114 eines unüberwachten Lernens den ermittelten Bereich heißer Daten neu in der Tabelle HDT heißer Daten registrieren oder die Tabelle HDT heißer Daten mit dem ermittelten Bereich heißer Daten aktualisieren. Ob eine Eingabe-/Ausgabe (E/A)-Anforderung, die nach der Operation S170 eingegeben wurde, den heißen Daten entspricht, kann unter Verwendung der aktualisierten Tabelle HDT heißer Daten ermittelt werden.
  • Abtastung, Clustering und Analyse können auf Eingabe/Ausgabe-Anforderungen (E/A) innerhalb der Abtastperiode durch den Speicher-Controller 110 durchgeführt werden. Der Speicher-Controller 110 kann basierend auf dem Analyseergebnis die Tabelle HDT heißer Daten erzeugen.
  • 5 ist ein Blockdiagramm, das ein Merkmal des Moduls eines unüberwachten Lernens 114 nach einer Ausführungsform veranschaulicht. Unter Bezugnahme auf 5 kann das Modul 114 eines unüberwachten Lernens einen Eingabe-/Ausgabe (E/A)-Abtaster 114a, einen Eingabe-/Ausgabe (E/A)-Analysator 114b, eine Tabelle 114c heißer Daten und einen Tabellenmanager 114d enthalten.
  • Der Eingabe-/Ausgabe (E/A)-Abtaster 114a und der Eingabe-/Ausgabe (E/A)-Analysator 114b werden während der Abtastperiode aktiviert. Während der Abtastperiode können der Eingabe-/Ausgabe (E/A)-Abtaster 114a und der Eingabe-/Ausgabe (E/A)-Analysator 114b Eingabe-/Ausgabe (E/A)-Anforderungen analysieren und die Tabelle 114c heißer Daten aktualisieren. In Bezug auf alle nach der Abtastperiode übertragenen Eingabe/Ausgabe (E/A)-Anforderungen bestimmt der Tabellenmanager 114d unter Bezugnahme auf die Tabelle 114c heißer Daten, ob eine empfangene Eingabe/Ausgabe (E/A)-Anforderung mit heißen Daten assoziiert wird. Die Abtastperiode wird nach dem Abtastzyklus wiederholt. Die Tabelle 114c heißer Daten kann in Einheiten eines Abtastzyklus aktualisiert werden.
  • Wenn eine Eingabe/Ausgabe (E/A)-Anforderung empfangen wird, kann die Eingabe/Ausgabe (E/A)-Anforderung dem Eingabe/Ausgabe (E/A)-Abtaster 114a und dem Tabellenmanager 114d zugeführt werden. Zunächst tastet der Eingabe-/Ausgabe (E/A)-Abtaster 114a Eingabe-/Ausgabe (E/A)-Anforderungen nach dem Zufallsprinzip ab. Der Eingabe-/Ausgabe (E/A)-Abtaster 114a kann einen Befehl, eine LBA, eine Datengröße usw. extrahieren, der/die in der empfangenen Eingabe-/Ausgabe (E/A)-Anforderung enthalten ist. Der Eingabe-/Ausgabe (E/A)-Abtaster 114a kann ein Abtasten nach dem Zufallsprinzip unter Verwendung einer Zufallszahl oder eines anderen Verfahrens, wie vorstehend beschrieben, durchführen.
  • Der Eingabe-/Ausgabe (E/A)-Analysator 114b analysiert die abgetasteten Eingabe-/Ausgabe (E/A)-Anforderungen und bestimmt einen LBA-Bereich, der den heißen Daten entspricht. Zum Beispiel gruppiert, wie vorstehend beschrieben, der Eingabe-/Ausgabe (E/A)-Analysator 114b die abgetasteten Eingabe-/Ausgabe (E/A)-Anforderungen in Abhängigkeit von Merkmalen wie Diskontinuität, Kontinuität und/oder einem Überschreibverhältnis usw. Für LBA-Clustering kann der Eingabe-/Ausgabe (E/A)-Analysator 114b einen heuristischen Algorithmus oder einen Algorithmus für unüberwachtes Lernen verwenden, wie z.B. einen K-Mittelwert-Algorithmus, einen DBSCAN-Algorithmus, einen Gaußschen Mischmodel-Algorithmus oder einen BIRCH-Algorithmus (Balanced Iterative Reducing and Clustering using Hierarchies, balancierte iterative Reduzierung und Clustering unter Verwendung von Hierarchien) usw. Der Eingabe-/Ausgabe (E/A)-Analysator 114b kann die gruppierten LBAs und Daten analysieren und nach einem Cluster suchen, der eine starke Zufallstendenz und ein relativ großes Überschreibverhältnis aufweist. Das heißt, der Eingabe/Ausgabe (E/A)-Analysator 114b kann in Bezug auf jeden LBA-Cluster Folgendes berechnen: eine LBA-Kontinuitätszählung, ein LBA-Überschreibverhältnis, einen LBA-Bereich (LBA_min, LBA_max), eine Gesamt-E/A-Zählung, eine Gesamtschreibgröße, ein E/A-Intervall und/oder einen statistischen Wert (z. B. einen Durchschnitts-/Standardabweichungs-/Mittelwert) der angeforderten E/A-Größen usw.
  • Der Eingabe-/Ausgabe (E/A)-Analysator 114b bestimmt einen Bereich heißer Daten basierend auf dem Ergebnis der Analyse jedes Clusters. In einigen Ausführungsformen kann der Eingabe-/Ausgabe (E/A)-Analysator 114b beispielsweise nach dem Zufallsprinzipe Cluster, die als ein Verhältnis einer LBA-Kontinuitätszählung zu einer Gesamt-E/A-Zählung eines Clusters, die kleiner als das Referenzverhältnis ist, analysiert werden, als einen Bereich heißer Daten bestimmen. In anderen Ausführungsformen kann der Eingabe-/Ausgabe-(E/A)-Analysator 114b alternativ einen Cluster mit einem LBA-Überschreibverhältnis, das höher als ein Referenzwert ist, als einen Bereich heißer Daten bestimmen. Der Eingabe-/Ausgabe (E/A)-Analysator 114b kann den ermittelten Bereich heißer Daten in der Tabelle HDT heißer Daten registrieren oder die Tabelle HDT heißer Daten mit dem ermittelten Bereich heißer Daten aktualisieren.
  • Ein LBA-Bereich, der den heißen Daten entspricht, wird in der Tabelle 114c der heißen Daten gespeichert. Zusätzlich zu einem LBA-Bereich können auch statistische Informationen zu jedem der Cluster, die den heißen Daten entsprechen, in der Tabelle 114c heißer Daten gespeichert werden. Die Tabelle 114c heißer Daten kann während der Abtastperiode, die bei jedem Abtastzyklus wiederholt wird, aktualisiert werden.
  • Wenn eine Eingabe-/Ausgabe (E/A)-Anforderung vom Host empfangen wird, kann der Tabellenmanager 114d die Tabelle 114c heißer Daten durchsuchen und bestimmen, ob eine LBA, die einer Eingabe-/Ausgabe (E/A)-Anforderung entspricht, einem Bereich heißer Daten entspricht. Wenn festgestellt wird, dass eine LBA einer Eingabe-/Ausgabe (E/A)-Anforderung dem Bereich heißer Daten entspricht, kann der Tabellenmanager 114d eine Heiß-Markierung erzeugen und an den Speicher-Controller 110 zurückgeben. In diesem Fall kann der Speicher-Controller 110 in Abhängigkeit von der Heiß-Markierung einen Speicherblock für die Verarbeitung einer Eingabe-/Ausgabe (E/A)-Anforderung zuweisen. Beispielsweise kann der Speicher-Controller 110 einem ersten Speicherblock Eingabe-/Ausgabedaten (E/A-Daten) zuweisen, die als heiße Daten bestimmt werden. Im Gegensatz dazu kann der Speicher-Controller 110 Eingabe-/Ausgabe (E/A)-Daten, die als nicht heiße Daten (d. h. als kalte Daten) bestimmt sind, einem zweiten Speicherblock zuweisen, der sich vom ersten Speicherblock unterscheidet.
  • Beispielhafte Funktionen und Abläufe des Moduls eines unüberwachten Lernens 114 werden vorstehend unter Verwendung eines Blockdiagramms beschrieben. In einigen Ausführungsformen kann das Modul 114 eines unüberwachten Lernens im Speicher-Controller 110 in Form von Firmware oder Software, die vom Prozessor 111 ausgeführt wird, vorgesehen werden. Alternativ können in einigen Ausführungsformen der Eingabe-/Ausgabe (E/A)-Abtaster 114a, der Eingabe-/Ausgabe (E/A)-Analysator 114b, die Tabelle 114c heißer Daten und der Tabellenmanager 114d des Moduls eines unüberwachten Lernens 114 in Form einer Hardwareschaltung implementiert sein. Beispielsweise können in einigen Ausführungsformen der Eingabe-/Ausgabe (E/A)-Abtaster 114a, der Eingabe-/Ausgabe (E/A)-Analysator 114b, die Tabelle 114c heißer Daten und der Tabellenmanager 114d des Moduls eines unüberwachten Lernens 114 in Form eines geistigen Eigentums (oder Funktionsblocks) implementiert sein.
  • 6 ist ein Diagramm, das eine Abtastperiode veranschaulicht, in der ein Modul eines unüberwachten Lernens nach einer Ausführungsform eine Abtastung auf Eingabe-/Ausgabe (E/A)-Anforderungen und einen Abtastzyklus durchführt. Unter Bezugnahme auf 6 kann das Modul 114 eines unüberwachten Lernens die Tabelle 114c heißer Daten aktualisieren, indem es während einer Abtastperiode ΔTs in einer Laufzeit der Speichervorrichtung 100 (siehe 1) Eingabe-/Ausgabe (E/A)-Anforderungen abtastet und analysiert. Die Abtastperiode ΔTs wird in jedem Abtastzyklus ΔTc wiederholt.
  • Während der Abtastperiode ΔTs von einem Zeitpunkt T0 bis zu einem Zeitpunkt T1 werden Abtastung, Clustering und Analyse durch den Eingabe-/Ausgabe (E/A)-Abtaster 114a und den Eingabe-/Ausgabe (E/A)-Analysator 114b durchgeführt. Während des Zeitraums ΔTs von der Zeit T0 bis zu einer Zeit T1 tastet der Eingabe-/Ausgabe (E/A)-Abtaster 114a Eingabe-/Ausgabe (E/A)-Anforderungen nach dem Zufallsprinzip ab. Während der Abtastperiode ΔTs gruppiert und analysiert der Eingabe-/Ausgabe (E/A)-Analysator 114b die abgetasteten Eingabe-/Ausgabe (E/A)-Anforderungen. Der Eingabe-/Ausgabe (E/A)-Analysator 114b bestimmt basierend auf dem Analyseergebnis einen LBA-Bereich heißer Daten. Der Eingabe-/Ausgabe (E/A)-Analysator 114b kann den ermittelten Bereich heißer Daten in der Tabelle heißer Daten 114c registrieren oder die Tabelle heißer Daten 114c mit dem ermittelten Bereich heißer Daten aktualisieren.
  • Von der Zeit T1 bis zu einer Zeit T3 wird in der Tabelle 114c für heiße Daten angezeigt, ob eine empfangene Eingabe-/Ausgabe (E/A)-Anforderung den heißen Daten entspricht. Das heißt, ein erster Anwendungszeitraum basierend auf der aktualisierten Tabelle 114c heißer Daten entspricht einem Intervall von der Zeit T1 bis zur Zeit T3. Eingabe/Ausgabe (E/A)-Anforderungen, die zwischen dem Zeitpunkt T1 und bis zu einem Zeitpunkt T2 empfangen werden, werden nicht abgetastet. Die Abtastung einer Eingabe/Ausgabe (E/A)-Anforderung wird zum Zeitpunkt T2 wieder aufgenommen, wenn der Abtastzyklus ΔTc ab dem Zeitpunkt T0 abläuft.
  • Während der Abtastperiode ΔTs vom Zeitpunkt T2 bis zum Zeitpunkt T3 werden Abtastung, Clustering und Analyse durch den Eingabe-/Ausgabe (E/A)-Abtaster 114a und den Eingabe-/Ausgabe (E/A)-Analysator 114b durchgeführt. Während des Zeitraums ΔTs von der Zeit T2 bis zur Zeit T3 tastet der Eingabe-/Ausgabe (E/A)-Abtaster 114a Eingabe-/Ausgabe (E/A)-Anforderungen nach dem Zufallsprinzip ab. Während der Abtastperiode ΔTs gruppiert und analysiert der Eingabe-/Ausgabe (E/A)-Analysator 114b die abgetasteten Eingabe-/Ausgabe (E/A)-Anforderungen. Der Eingabe-/Ausgabe (E/A)-Analysator 114b kann basierend auf dem Analyseergebnis einen LBA-Bereich heißer Daten bestimmen und die Tabelle heißer Daten 114c aktualisieren.
  • Ob eine zwischen dem Zeitpunkt T3 und dem Zeitpunkt T5 empfangene Eingabe/Ausgabe (E/A)-Anforderung heißen Daten entspricht, wird durch die zum Zeitpunkt T3 aktualisierte Tabelle 114c heißer Daten identifiziert. Das heißt, ein zweiter Anwendungszeitraum basierend auf der aktualisierten Tabelle 114c heißer Daten entspricht einem Intervall von der Zeit T3 bis zur Zeit T5. Eingabe/Ausgabe (E/A)-Anforderungen, die zwischen dem Zeitpunkt T3 und bis zu einem Zeitpunkt T4 empfangen werden, werden nicht abgetastet. Die Abtastung einer Eingabe/Ausgabe (E/A)-Anforderung wird zum Zeitpunkt T4 wieder aufgenommen, wenn der Abtastzyklus ΔTc ab dem Zeitpunkt T2 abläuft.
  • Die Abtastung einer Eingabe-/Ausgabe (E/A)-Anforderung und die Aktualisierung der Tabelle 114c heißer Daten werden von der Zeit T4 bis zur Zeit T5 durchgeführt. Ob eine ab dem Zeitpunkt T5 empfangene Eingabe/Ausgabe (E/A)-Anforderung den heißen Daten entspricht, wird durch die zum Zeitpunkt T5 aktualisierte Tabelle heißer Daten 114c identifiziert. Ein dritter Anwendungszeitraum basierend auf der aktualisierten Tabelle 114c heißer Daten beginnt ab dem Zeitpunkt T5.
  • Wie in 6 dargestellt, wird somit das Abtasten einer Eingabe-/Ausgabe (E/A)-Anforderung während der Abtastperiode ΔTs nach dem Zufallsprinzip durchgeführt. Die Abtastperiode ΔTs kann in jedem Abtastzyklus ΔTc wiederholt werden.
  • 7 ist ein Diagramm, das eine Eingabe-/Ausgabe-Anforderung veranschaulicht, die von einem Modul eines unüberwachten Lernens in der Abtastperiode T0 bis T1 von 6 nach einer Ausführungsform abgetastet wurde. In 7 stellt eine horizontale Achse die Zeit und eine vertikale Achse eine LBA dar. Die Bereiche heißer Daten HDR1 und HDR2 können in Bezug auf „n“ Eingabe-/Ausgabe (E/A)-Anforderungen erfasst werden, die während der Abtastperiode nach dem Zufallsprinzip abgetastet werden.
  • Es wird davon ausgegangen, dass „n“ Eingabe-/Ausgabe (E/A)-Anforderungen vom Modul 114 eines unüberwachten Lernens während der Abtastperiode T0 bis T1 abgetastet werden. Eingabe-/Ausgabe (E/A)-Anforderungen werden jeweils zu den Abtastzeitpunkten t1, t2, t3,..., tn abgetastet. Das Modul 114 eines unüberwachten Lernens erhält und speichert zu jedem Abtastzeitpunkt Informationen über ein LBA und/oder eine Datengröße, die einer Eingabe-/Ausgabe (E/A)-Anforderung entspricht. Dabei können die Abtastzeitpunkte t1, t2, t3,..., tn durch die Verwendung einer Zufallszahl, wie vorstehend beschrieben, nach dem Zufallsprinzip bestimmt werden.
  • Ein Muster von Eingabe-/Ausgabe (E/A)-Anforderungen, die zu einem LBA-Bereich unter „150“ gehören, weist eine lineare Kennlinie mit einer gegebenen Steigung über die Zeit auf, wie durch die Linien in 7 veranschaulicht. In diesem Fall kann diese lineare Kennlinie Eingabe-/Ausgabe (E/A)-Anforderungen bedeuten, von denen LBAs kontinuierlich wie Datenströme zunehmen. Dementsprechend ist die Häufigkeit, mit der ein und dieselbe LBA wiederholt angefordert wird, sehr gering. Im Gegensatz dazu kann beobachtet werden, dass eine Eingabe-/Ausgabe (E/A)-Anforderung in einem LBA-Bereich von „150“ bis „300“ nach dem Zufallsprinzip auf Daten mit relativ geringer Größe im Laufe der Zeit gestellt wird.
  • In den Fällen, in denen Eingabe-/Ausgabe (E/A)-Anforderungen, wie in 7 dargestellt, erfasst werden, können die LBA-Bereiche 150 bis 300 und 500 bis 800, in denen die LBA-Durchgangszahl relativ klein ist, als Bereiche heißer Daten HDR1 und HDR2 bestimmt werden.
  • 8 ist eine Tabelle, die ein Verfahren zur Analyse von abgetasteten und gruppierten Eingabe-/Ausgabe (E/A)-Anforderungen veranschaulicht. Unter Bezugnahme auf 8 kann das Modul 114 eines unüberwachten Lernens gruppierte Eingabe-/Ausgabe (E/A)-Anforderungen analysieren. Das Modul 114 eines unüberwachten Lernens kann unter Verwendung des Analyseergebnisses einen LBA-Bereich bestimmen, der heißen Daten entspricht, und kann die Tabelle 114c der heißen Daten mit den ermittelten Daten aktualisieren.
  • Das Modul 114 eines unüberwachten Lernens kann Eingabe-/Ausgabe (E/A)-Anforderungen analysieren, die in Einheiten eines LBAs in Abhängigkeit von verschiedenen Merkmalen gruppiert werden. Hier ist es möglich, jeden einer Vielzahl von Clustern zu analysieren, die in Abhängigkeit von LBA-Bereichen klassifiziert sind. Das Modul 114 eines unüberwachten Lernens kann in Bezug auf jeden LBA-Cluster Folgendes berechnen: einen LBA-Bereich (LBA_min, LBA max), eine LBA-Kontinuitätszählung, ein LBA-Überschreibverhältnis, ein durchschnittliches E/A-Intervall, eine Gesamt-E/A-Zählung, eine Gesamtschreibgröße, ein durchschnittliches E/A-Intervall und/oder einen statistischen Wert (z. B. einen Durchschnitt der Anforderungsgröße, eine Standardabweichung der Anforderungsgröße und/oder einen Mittelwert der Anforderungsgröße) der angeforderten E/A-Größen usw.
  • Beispielsweise kann das Modul 114 eines unüberwachten Lernens charakteristische Informationen in Bezug auf einen ersten Cluster berechnen, der einem LBA-Bereich „0“ bis „149“ entspricht. Das heißt, das Modul 114 eines unüberwachten Lernens kann die LBA-Kontinuitätszahl des ersten Clusters berechnen und die LBA-Kontinuitätszahl als „50“ bestimmen. Außerdem kann das LBA-Überschreibverhältnis durch das Modul 114 eines unüberwachten Lernens als „0“ berechnet werden, das durchschnittliche E/A-Intervall als „500 ms“, die Gesamt-E/A-Zählung als „5“, die gesamte geschriebene Größe als „560M“ (d. h, 560 Mbytes), der Durchschnitt der Anforderungsgröße (d. h. die durchschnittliche Größe der zum Schreiben angeforderten Daten) als „250 M“ (d. h. 250 Mbytes) und die Standardabweichung der Anforderungsgröße (d. h. die Standardabweichung der zum Schreiben angeforderten Daten) als „120“. Die Berechnung und Analyse der charakteristischen Informationen kann in ähnlicher Weise für jedes Cluster 1, 2, ..., n durchgeführt werden.
  • Das Modul 114 eines unüberwachten Lernens kann die Merkmale jedes Clusters analysieren und die Analyseergebnisse zur Bestimmung von Bereichen heißer Daten verwenden. Darüber hinaus kann das Modul 114 eines unüberwachten Lernens basierend auf dem Analyseergebnis jedes Clusters nach einem Cluster suchen, der eine starke Zufallstendenz und ein relativ großes Überschreibverhältnis aufweist, und den dem Cluster entsprechenden LBA-Bereich als Bereich heißer Daten bestimmen. In dem in 8 dargestellten Beispiel können beispielsweise die LBA-Bereiche, die dem Cluster 2 und dem Cluster 4 entsprechen, als Bereiche heißer Daten bestimmt werden. In einigen Ausführungsformen kann das Modul 114 eines unüberwachten Lernens Cluster, die als heiße Daten klassifiziert werden, basierend auf den analysierten charakteristischen Informationen in stärker unterteilte Ebenen klassifizieren. Darüber hinaus kann das Modul 114 eines unüberwachten Lernens in einigen Ausführungsformen zusätzlich zu den vorstehend analysierten Informationen verschiedene charakteristische Informationen über LBA-Cluster extrahieren und die extrahierten Informationen in einer Speicherverwaltungsoperation verwenden.
  • Das Modul 114 eines unüberwachten Lernens kann basierend auf dem Analyseergebnis einen LBA-Bereich heißer Daten bestimmen. Das Modul 114 eines unüberwachten Lernens kann die Tabelle HDT heißer Daten mit dem ermittelten Bereich LBA-Bereich heißer Daten aktualisieren.
  • 9 ist ein Ablaufdiagramm, das ein Verfahren zur Verwendung einer Tabelle heißer Daten nach einer Ausführungsform veranschaulicht. Unter Bezugnahme auf 9 kann der Tabellenmanager 114d (siehe 5) bestimmen, ob eine vom Host empfangene Eingabe-/Ausgabe (E/A)-Anforderung unter Bezugnahme auf die Tabelle 114c heißer Daten den heißen Daten entspricht.
  • In der Operation S210 empfängt der Tabellenmanager 114d eine Eingabe-/Ausgabe (E/A)-Anforderung vom Host. Wenn die Eingabe-/Ausgabe (E/A)-Anforderung empfangen wird, kann der Tabellenmanager 114d selektiv ein LBA empfangen, das in der Eingabe-/Ausgabe (E/A)-Anforderung enthalten ist.
  • In der Operation S220 kann der Tabellenmanager 114d suchen, ob die in der Eingabe-/Ausgabe (E/A)-Anforderung enthaltene LBA in der Tabelle 114c heißer Daten vorhanden ist.
  • In der Operation S230 kann der Tabellenmanager 114d basierend auf der Suche einen Treffer oder Fehltreffer der in der Eingabe-/Ausgabe (E/A)-Anforderung enthaltenen LBA bestimmen. Der Tabellenmanager 114d führt eine Operationsverzweigung durch, je nachdem, ob ein Treffer der LBA der Eingabe-/Ausgabe (E/A)-Anforderung auftritt. Wenn die in der Eingabe-/Ausgabe (E/A)-Anforderung enthaltene LBA in der Tabelle 114c heißer Daten vorhanden ist (S230, Ja), fährt das Verfahren mit der Operation S240 fort. Wenn die in der E/A-Anforderung enthaltene LBA nicht in der Tabelle 114c heißer Daten vorhanden ist (S230, Nein), fährt das Verfahren mit der Operation S250 fort.
  • In der Operation S240 kann der Tabellenmanager 114d „heiß“ an den Speicher-Controller 110 zurückkehren. Das heißt, der Tabellenmanager 114d kann dem Speicher-Controller 110 mitteilen, dass die angeforderten E/A-Daten „heiß“ sind.
  • In der Operation S250 kann der Tabellenmanager 114d „kalt“ an den Speicher-Controller 110 zurückkehren. Das heißt, der Tabellenmanager 114d kann dem Speicher-Controller 110 mitteilen, dass die angeforderten E/A-Daten „kalte“ Daten sind.
  • Der Speicher-Controller 110 empfängt heiße oder kalte Informationen, die vom Tabellenmanager 114d zurückgegeben werden, und kann einen Speicherblock zum Zweck der Verarbeitung der entsprechenden Eingabe-/Ausgabe (E/A)-Anforderung zuweisen. In diesem Fall können Daten, die als heiße Daten und Daten, die als kalte Daten klassifiziert sind, jeweils unterschiedlichen Speicherblöcken zugewiesen werden.
  • 10 ist ein Diagramm, das eine Tabelle heißer Daten nach einer Ausführungsform veranschaulicht. Unter Bezugnahme auf 10 kann eine Tabelle HDT heißer Daten einen LBA-Bereich (LBA_min, LBA max), der den heißen Daten entspricht, sowie eine Intensität der heißen Daten für jeden Cluster, der den heißen Daten entspricht, definieren.
  • Das Modul 114 eines unüberwachten Lernens kann die Cluster „2“ und „4“, die jeweils Bereiche heißer Daten aus einer Vielzahl von Clustern entsprechen, als den heißen Daten entsprechend bestimmen (siehe 8). Darüber hinaus kann das Modul 114 eines unüberwachten Lernens jedem der Cluster „2“ und „4“, die heißen Daten entsprechen, durch eine zusätzliche Analyse eine Heiße-Intensität verleihen (siehe 8). Beispielsweise kann das Modul 114 eines unüberwachten Lernens eine Heiß-Intensität in Bezug auf mindestens eine LBA-Kontinuitätszählung, ein LBA-Überschreibverhältnis, eine Gesamt-E/A-Zählung, eine Gesamtschreibgröße, ein durchschnittliches E/A-Intervall oder einen statistischen Wert (z.B. einen Durchschnitts-/ Standardabweichungs-/ Mittelwert) der angeforderten E/A-Größen jedes der Cluster „2“ und „4“ bestimmen. Einem Cluster (oder einem LBA-Bereich), in dem das Überschreibverhältnis relativ hoch oder die LBA-Kontinuitätszahl relativ klein ist, kann aus den Clustern (oder LBA-Bereichen), die jeweils den heißen Daten entsprechen, eine Heiß-Intensität einer höheren Ebene zugewiesen werden.
  • Je nach der Intensität der heißen Daten können verschiedene Speicherblöcke Clustern zugeordnet werden, die als heiße Daten bezeichnet werden. Beispielsweise kann eine Heiß-Intensität von „2“ einem zweiten Cluster (Cluster 2) zugewiesen werden, der als Bereich heißer Daten bestimmt wird. Beispielsweise kann einem vierten Cluster (Cluster 4), der als heißer Datenbereich bestimmt wurde, eine Heiß-Intensität von „1“ zugewiesen werden. Daten, die im zweiten Cluster enthalten sind, und Daten, die im vierten Cluster enthalten sind, können als heiße Daten klassifiziert werden, können jedoch in verschiedene Speicherblöcke programmiert werden.
  • Der Fall, in dem je nach Charakteristik der heißen Daten unterschiedlich hohe Heiß-Intensitäten an Cluster gegeben werden, ist vorstehend beschrieben. In dem Fall, in dem heiße Daten unterschiedlicher Heiß-Intensitäten auf verschiedene Speicherblöcke programmiert werden, kann sich die Anzahl der Seitenkopien bei einer Speicherbereinigungsoperation verringern.
  • 11 ist ein Ablaufdiagramm, das ein Verfahren zur Verarbeitung einer Eingabe-/Ausgabe (E/A)-Anforderung unter Verwendung einer Tabelle heißer Daten nach einer Ausführungsform veranschaulicht. 11 wird mit Bezug auf das Beispiel der in 10 dargestellten Tabelle heißer Daten beschrieben. Unter Bezugnahme auf 10-11 kann der Tabellenmanager 114d (siehe 5) verschiedene Speicherblöcke oder verschiedene Strom-Bezeichner SID den heißen Daten zuweisen, von denen mindestens zwei oder mehr Heiß-Intensitäten vorhanden sind.
  • In der Operation S310 empfängt der Tabellenmanager 114d eine Eingabe-/Ausgabe (E/A)-Anforderung vom Host. Wenn die Eingabe-/Ausgabe (E/A)-Anforderung empfangen wird, kann der Tabellenmanager 114d ein LBA erhalten, das in der Eingabe-/Ausgabe (E/A)-Anforderung enthalten ist.
  • In der Operation S320 kann der Tabellenmanager 114d suchen, ob die in der Eingabe-/Ausgabe (E/A)-Anforderung enthaltene LBA in der Tabelle 114c heißer Daten vorhanden ist. Das heißt, der Tabellenmanager 114d kann einen Treffer oder Fehlschlag der in der Eingabe-/Ausgabe (E/A)-Anforderung enthaltenen LBA mit Bezug auf die Tabelle 114c heißer Daten bestimmen.
  • In der Operation S330 kann der Tabellenmanager 114d basierend auf der Suche einen Treffer oder Fehltreffer der in der Eingabe-/Ausgabe (E/A)-Anforderung enthaltenen LBA bestimmen. Wenn das in der Eingabe-/Ausgabe (E/A)-Anforderung enthaltene LBA in der Tabelle 114c heißer Daten vorhanden ist (S330, Ja), fährt das Verfahren mit Operation S350 fort. Wenn das in der E/A-Anforderung enthaltene LBA nicht in der Tabelle 114c heißer Daten vorhanden ist (S330, Nein), fährt das Verfahren mit Operation S340 fort.
  • In der Operation S340 kann der Tabellenmanager 114d „1“ als Strom-Bezeichner SID in Bezug auf die aktuell empfangene Eingabe-/Ausgabe (E/A)-Anforderung zurückgeben.
  • In der Operation S350 prüft der Tabellenmanager 114d eine in der Tabelle heißer Daten angegebene Heiß-Intensität. Bezogen auf das Beispiel der in 10 dargestellten Tabelle heißer Daten geht das Verfahren zu Operation S360 über, wenn die Heiß-Intensität der aktuell empfangenen Eingabe-/Ausgabe (E/A)-Anforderung als „1“ gefunden wird. Wenn dagegen die Intensität der aktuell empfangenen E/A-Anforderung als „2“ gefunden wird, fährt das Verfahren mit Operation S370 fort.
  • In der Operation S360 kann der Tabellenmanager 114d „3“ als Strom-Bezeichner SID in Bezug auf die aktuell empfangene Eingabe-/Ausgabe (E/A)-Anforderung zurückgeben. In der Operation S370 kann der Tabellenmanager 114d „3“ als Strom-Bezeichner SID in Bezug auf die aktuell empfangene Eingabe/Ausgabe (E/A)-Anforderung zurückgeben.
  • In der Operation S360 und der Operation S370 können unterschiedliche Strom-Bezeichner SID jeweils Daten zugewiesen werden, die heißen Daten entsprechen, weisen aber eine unterschiedliche Heiß-Intensität auf. Dass den Daten unterschiedliche Strom-Bezeichner zugewiesen werden, bedeutet, dass die Daten unterschiedlichen Speicherblöcken einer Speichervorrichtung eines Multi-Strom-Schemas zugewiesen werden. Dementsprechend kann man davon ausgehen, dass Daten, die als heiße Daten bestimmt wurden, je nach Heiß-Intensitäten auch in unterschiedlichen Schemata verwaltet werden.
  • 12 ist ein Blockdiagramm, das ein Speichersystem nach einer anderen Ausführungsform darstellt. Unter Bezugnahme auf 12 kann in einem Speichersystem 200 ein Host 210 bestimmen, ob eine Eingabe-/Ausgabe (E/A)-Anforderung heißen Daten entspricht, bevor die Eingabe-/Ausgabe (E/A)-Anforderung an eine Speichervorrichtung 220 übertragen wird. Der Host 210 kann einen Strom-Bezeichner SID, der einer Eingabe-/Ausgabe (E/A)-Anforderung entspricht, an die Speichervorrichtung 220 übertragen, je nachdem, ob die Eingabe-/Ausgabe (E/A)-Anforderung heißen Daten entspricht.
  • Der Host 210 kann Daten in die Speichervorrichtung 220 schreiben oder in der Speichervorrichtung 220 gespeicherte Daten lesen. Der Host 210 erzeugt einen Befehl zum Schreiben von Daten in die Speichervorrichtung 220 oder zum Lesen von in der Speichervorrichtung 220 gespeicherten Daten. Der Host 210 enthält eine zentrale Verarbeitungseinheit 211, einen Arbeitsspeicher 213, eine Speicherschnittstelle 215 und einen Systembus 217.
  • Die zentrale Verarbeitungseinheit 211 führt eine Vielzahl von Software (z.B. ein Anwendungsprogramm, ein Betriebssystem und einen Vorrichtungstreiber) aus, die in den Arbeitsspeicher 213 geladen wird. Die zentrale Verarbeitungseinheit 211 kann ein Betriebssystem OS und Anwendungsprogramme ausführen. Die zentrale Verarbeitungseinheit 211 kann mit einem homogenen Mehrkernprozessor oder einem heterogenen Mehrkernprozessor implementiert werden.
  • Das Betriebssystem OS, das von der zentralen Verarbeitungseinheit 211 ausgeführt werden soll, oder Daten, die von der zentralen Verarbeitungseinheit 211 verarbeitet werden sollen, werden in den Arbeitsspeicher 213 geladen. In den Arbeitsspeicher 213 kann ein Anwendungsprogramm 230, ein Dateisystem 240, ein Vorrichtungstreiber 250 usw. geladen werden. Insbesondere kann der Vorrichtungstreiber 250, der die Kopplung mit der Speichervorrichtung 220 durchführt, in den Arbeitsspeicher 213 geladen und ausgeführt werden. Der Vorrichtungstreiber 250 kann die gleiche Funktion wie das Modul 114 eines unüberwachten Lernens von 1 ausführen. Das heißt, der Vorrichtungstreiber 250 kann eine Eingabe-/Ausgabe (E/A)-Anforderung abtasten, die vom Anwendungsprogramm 230 oder dem Dateisystem 240 an die Speichervorrichtung 220 übertragen werden soll, und kann unter Verwendung des Abtastergebnisses bestimmen, ob die Eingabe-/Ausgabe (E/A)-Anforderung heißen Daten entspricht. Der Vorrichtungstreiber 250 kann unter Verwendung des Algorithmus eines unüberwachten Lernens abgetastete LBAs gruppieren. Der Vorrichtungstreiber 250 kann die Tabelle HDT heißer Daten unter Verwendung eines Ergebnisses des Clustering erzeugen. Die Tabelle HDT heißer Daten kann die folgenden statistischen Informationen über heiße Daten enthalten: einen LBA-Bereich, ein Überschreibverhältnis, eine Eingabe-/Ausgabe (E/A)-Zählung, ein Eingabe-/Ausgabe (E/A)-Intervall und/oder eine Eingabe-/Ausgabe (E/A)-Anforderung usw. Darüber hinaus kann eine Vielzahl von Software zur Ansteuerung von Vorrichtungen des Host 210 in den Arbeitsspeicher 213 geladen werden.
  • Die Speicherschnittstelle 215 stellt eine physische Verbindung zwischen dem Host 210 und der Speichervorrichtung 220 her. Das heißt, die Speicherschnittstelle 215 konvertiert einen Befehl, eine Adresse, Daten usw., die verschiedenen vom Host 210 erzeugten Zugriffsanforderungen entsprechen, so dass sie sich für ein Schema zur Verbindung mit der Speichervorrichtung 220 eignet. Die Speicherschnittstelle 215 kann mindestens eines der Protokolle wie Universal Serial Bus (USB), Small Computer System Interface (SCSI), PCI-Express, ATA, Parallel ATA (PATA), Serial ATA (SATA) und/oder Serial Attached SCSI (SAS) usw. enthalten.
  • Die Speichervorrichtung 220 kann einen Speicher-Controller 221, einen Direktzugriffsspeicher (RAM) 223 und nichtflüchtige Speichervorrichtungen 224, 225 und 226 enthalten. Die Speichervorrichtung 220 kann auf die nichtflüchtigen Speichervorrichtungen 224, 225 und 226 als Antwort auf einen Befehl CMD vom Host 210 zugreifen oder verschiedene angeforderte Operationen durchführen. Die Speichervorrichtung 220 kann einen Speicherblock zum Zweck der Verarbeitung einer vom Host 210 vorgesehenen Eingabe-/Ausgabe (E/A)-Anforderung auswählen. Die Speichervorrichtung 220 kann einen Speicherblock je nach dem vom Host 210 gelieferten Strom-Bezeichner SID zuweisen oder auswählen. Das heißt, im Gegensatz zu der Speichervorrichtung 100 in 1 kann die Speichervorrichtung 220 einen Speicherblock zuweisen, der dem Strom-Bezeichner SID des Hosts 210 entspricht.
  • 13 ist ein Blockdiagramm, das eine Softwarestruktur des Hosts 210 des in 12 dargestellten Speichersystems 200 nach einer Ausführungsform veranschaulicht. Die Softwarestruktur des Hosts 210 kann von der zentralen Verarbeitungseinheit 211 des Hosts 210 ausgeführt werden. Unter Bezugnahme auf 13 kann der Vorrichtungstreiber 250 eine Zugriffsanforderung, die vom Anwendungsprogramm 230 oder dem Dateisystem 240 zu der Speichervorrichtung 220 übertragen werden soll, unter Verwendung vom unüberwachten Lernen abtasten und in Abhängigkeit vom Abtastergebnis den Strom-Bezeichner SID erzeugen.
  • Das Anwendungsprogramm 230 ist als Programm zur Verwaltung der Speichervorrichtung 220 vorgesehen. Das Anwendungsprogramm 230 kann z.B. als dediziertes Programm zur Steuerung der Speichervorrichtung 220 vorgesehen werden. Das Anwendungsprogramm 230 kann eine Vielzahl von Anwendungsprogrammen APP1, APP2, APP3 und APP4 enthalten. Jedes der mehreren Anwendungsprogramme APP1, APP2, APP3 und APP4 kann Eingabe-/Ausgabe (E/A)-Anforderungen eines heißen Datenmusters oder eines kalten Datenmusters je nach Eigenschaften an das Dateisystem 240 übertragen.
  • Das Dateisystem 240 ist definiert als ein Satz abstrakter Datenstrukturen zum hierarchischen Speichern, Suchen, Zugreifen und Manipulieren von Daten auf Betriebssystemebene (OS). Das heißt, das Dateisystem 240 kann Daten, auf die ein übergeordnetes Programm (z.B. das Betriebssystem OS oder das Anwendungsprogramm 230) zugreift und die von diesem angefordert werden, von einer Dateieinheit in eine Verwaltungseinheit des Vorrichtungstreibers 250 konvertieren. Wenn z.B. eine Schreibanforderung einer bestimmten Datei vom Anwendungsprogramm 230 übertragen wird, öffnet das Dateisystem 240 die Datei und überträgt die zum Schreiben angeforderten Daten an den Vorrichtungstreiber 250.
  • Der Vorrichtungstreiber 250 kann ein Steuermodul zur Steuerung der Speichervorrichtung 220 auf Betriebssystemebene (OS) sein. Wenn ein Zugriff auf die Speichervorrichtung 220 durch einen Benutzer oder durch die Vielzahl der Anwendungsprogramme APP1, APP2, APP3 und APP4 angefordert wird, wird der Vorrichtungstreiber 250 aufgerufen. Der Vorrichtungstreiber 250 kann mit einem Softwaremodul des Kernels zur Steuerung der Speichervorrichtung 220 implementiert werden.
  • Der Vorrichtungstreiber 250 kann ein UL-Modul 255 (UL = Unsupervised Learning, unüberwachtes Lernen) enthalten. Das Modul 255 eines unüberwachten Lernens tastet Anforderungen aus dem Dateisystem 240 und gruppiert abgetastete LBAs durch unüberwachtes Lernen. Das Modul 255 eines unüberwachten Lernens kann ein Ergebnis des Clustering analysieren und die Tabelle HDT heißer Daten erzeugen. Die Tabelle HDT heißer Daten kann die folgenden statistischen Informationen über heiße Daten enthalten: einen LBA-Bereich, ein Überschreibverhältnis, eine Eingabe-/Ausgabe (E/A)-Zählung, ein Eingabe-/Ausgabe (E/A)-Intervall und/oder eine Eingabe-/Ausgabe (E/A)-Anforderung usw.
  • Das Modul 255 eines unüberwachten Lernens kann mit Bezug auf die Tabelle HDT heißer Daten bestimmen, ob eine empfangene Eingabe-/Ausgabe (E/A)-Anforderung mit einem LBA assoziiert ist, das heißen Daten entspricht. Die Tabelle HDT heißer Daten wird zur Verwaltung adressbereichsbasierter Informationen über einen LBA-Bereich verwendet, nicht zur Verwaltung von Informationen über LBAs eines bestimmten Bereichs. Die Tabelle HDT heißer Daten kann Informationen zuführen, mit denen bestimmt werden kann, ob ein in der empfangenen Eingabe-/Ausgabe (E/A)-Anforderung enthaltenes LBA in einem Bereich heißer Daten enthalten ist. Dementsprechend ist es im Falle der Verwendung der Tabelle HDT heißer Daten möglich, mit hoher Geschwindigkeit heiße Daten in Bezug auf alle empfangenen LBAs zu identifizieren. Wenn der Vorrichtungstreiber 250 des Hosts 210 heiße Daten oder kalte Daten identifiziert, kann der Vorrichtungstreiber 250 des Hosts 210 darüber hinaus je nach Identifikationsergebnis den Strom-Bezeichner SID erzeugen.
  • Hier wird beschrieben, dass das Modul eines unüberwachten Lernens 255 im Vorrichtungstreiber 250 enthalten ist, aber beispielhafte Ausführungsformen sind nicht darauf beschränkt. Beispielsweise kann das Modul eines unüberwachten Lernens 255 unabhängig vom Vorrichtungstreiber 250 in Form eines Software-Moduls oder eines Hardware-Funktionsblocks vorgesehen werden.
  • 14 ist ein Blockdiagramm, das ein Speichersystem nach einer anderen Ausführungsform darstellt. Ein Speichersystem 300 kann einen Host 310 und eine Speichervorrichtung 320 enthalten. Die Hardwarekonfiguration des Hosts 310 und der Speichervorrichtung 320 kann der in 12 dargestellten Hardwarekonfiguration des Host 210 bzw. der Speichervorrichtung 220 ähnlich sein, weshalb aus Gründen der Prägnanz auf eine wiederholte Beschreibung verzichtet wird. Unter Bezugnahme auf 14 kann der Host 310 in einem Multi-Strom-Schema Daten an die Speichervorrichtung 320 übertragen. Insbesondere kann der Host 310 die Tabelle HDT heißer Daten unter Verwendung des Algorithmus eines unüberwachten Lernens bilden, und wenn eine Eingabe-/Ausgabe (E/A)-Anforderung erzeugt wird, kann der Host 310 den Strom-Bezeichner SID unter Bezugnahme auf die Tabelle HDT heißer Daten erzeugen. Dies wird im Folgenden ausführlich beschrieben.
  • Der Host 310 kann verschiedene Strom-Bezeichner SID, die heiße Daten und kalte Daten anzeigen, unter Verwendung der Tabelle HDT für heiße Daten Eingabe-/Ausgabe (E/A)-Anforderungen zuweisen und die Eingabe-/Ausgabe (E/A)-Anforderungen an die Speichervorrichtung 320 übertragen. Ein Vorrichtungstreiber 312 des Hosts 310 kann Daten je nachdem, ob es sich um heiße oder kalte Daten handelt, in verschiedene Ströme klassifizieren. Der Vorrichtungstreiber 312 kann einen Strom, der kalten Daten entspricht, als einen ersten Datenstrom Stream_1 klassifizieren und den kalten Daten einen Strom-Bezeichner SID_1 zuweisen. Im Gegensatz dazu kann der Vorrichtungstreiber 312 heiße Daten Hot1, die häufig aktualisiert werden oder eine hohe Zufälligkeitstendenz aufweisen, als einen zweiten Strom Stream_2 klassifizieren und den heißen Daten Hot1 einen Strom-Bezeichner SID_2 zuweisen. Darüber hinaus kann der Vorrichtungstreiber 312 heiße Daten Hot2, die eine höhere Zufälligkeitstendenz als die heißen Daten Hot1 oder eine höhere Aktualisierungsfrequenz als die heißen Daten Hot1 aufweisen, als einen dritten Strom Stream_3 klassifizieren und den heißen Daten Hot3 einen Strom-Bezeichner SID 3 zuweisen.
  • Eine Schnittstellenschaltung 315 kann vom Vorrichtungstreiber 312 angeforderte Multi-Strom-Daten-E/A über einen Datenkanal an die Speichervorrichtung 320 übertragen. In diesem Fall können Strom-Daten nach dem Zufallsprinzip übertragen werden. Jede Datenübertragungseinheit (z.B. ein Paket) kann jedoch einen Strom-Bezeichner aufweisen. Dementsprechend kann die Speichervorrichtung 320 Datenattribute jedes empfangenen Pakets unter Verwendung der Strom-Bezeichner SID identifizieren.
  • Der Speichervorrichtung 320 enthält einen Speicher-Controller 322 und eine nichtflüchtige Speichervorrichtung 324. Der Speicher-Controller 322 verwaltet Multi-Strom-Daten in Einheiten eines Stroms. Beispielsweise kann der Speicher-Controller 322 einen Speicherblock, in dem Schreibdaten gespeichert werden sollen, in Einheiten eines Strom-Bezeichners auswählen und zuweisen. Der Speicher-Controller 322 kann den Speicherblock BLK3 zum Zwecke der Speicherung von Daten des Strom-Bezeichners SID_1 auswählen und zuweisen. Anschließend kann der Speicher-Controller 322 im Falle des Empfangs von Schreibdaten des Strom-Bezeichners SID_1 intensiv Schreibdaten des Strom-Bezeichners SID_1 in den Speicherblock BLK3 programmieren. Im Gegensatz dazu kann der Speicher-Controller 322 den Speicherblock BLK9 zum Zwecke der Speicherung von Daten des Strom-Bezeichners SID_2 auswählen. Im Falle des Empfangs einer Eingabe-/Ausgabe (E/A)-Anforderung für Schreibdaten des Strom-Bezeichners SID_2 kann der Speicher-Controller 322 intensiv Schreibdaten des Strom-Bezeichners SID_2 in den Speicherblock BLK9 programmieren. Wie in der vorstehenden Beschreibung kann der Speicher-Controller 322 auf eine Eingabe-/Ausgabe (E/A)-Anforderung für Daten des Strom-Bezeichners SID 3 antworten.
  • Nach verschiedenen Ausführungsformen kann eine Speichervorrichtung zur Verfügung gestellt werden, die in der Lage ist, heiße Daten mit hoher Genauigkeit ohne Overhead zu identifizieren, sowie ein entsprechendes Betriebsverfahren dafür.
  • Während vorstehend verschiedene beispielhafte Ausführungsformen beschrieben wurden, wird es für Fachleute offensichtlich sein, dass verschiedene Änderungen und Modifikationen daran vorgenommen werden können, ohne vom Geist und Umfang der vorliegenden Offenbarung abzuweichen, wie in den folgenden Ansprüchen dargelegt wird.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 1020190175237 [0001]

Claims (20)

  1. Verfahren, umfassend: Abtasten durch einen Prozessor einer Vielzahl von Eingabe-/Ausgabe-Anforderungen von einem Host, um abgetastete Eingabe-/Ausgabe-Anforderungen zu erzeugen; Klassifizieren der abgetasteten Eingabe-/Ausgabe-Anforderungen durch den Prozessor in eine Vielzahl von Clustern unter Verwendung eines Algorithmus eines unüberwachten Lernens; Bestimmen eines Bereichs heißer Daten durch den Prozessor basierend auf einer Eigenschaft der Vielzahl von Clustern; und Aufnehmen des ermittelten Bereichs heißer Daten durch den Prozessor in eine Tabelle heißer Daten.
  2. Verfahren nach Anspruch 1, wobei das Abtasten das Speichern einer logischen Blockadresse (LBA) oder einer Datengröße jeder der abgetasteten Eingabe-/Ausgabe-Anforderungen umfasst.
  3. Verfahren nach Anspruch 1, wobei die abgetasteten Eingabe-/Ausgabe-Anforderungen zu zufälligen Zeitpunkten aus der Vielzahl von Eingabe/Ausgabe-Anforderungen des Hosts ausgewählt werden.
  4. Verfahren nach Anspruch 3, wobei das Abtasten nur während einer Abtastperiode unter den Perioden, in denen die Vielzahl der Eingabe-/Ausgabe-Anforderungen vom Host übertragen werden, durchgeführt wird.
  5. Verfahren nach Anspruch 1, wobei der Algorithmus des unüberwachten Lernens mindestens einen von einem heuristischen Algorithmus, einem K-Mittelwert-Algorithmus, einem auf Dichte basierenden Algorithmus zur räumlichen Clustering von Anwendungen mit Rauschen (DBSCAN), einem Gaußschen Mischmodel-Algorithmus oder einem Algorithmus zur balancierten iterativen Reduzierung und Clustering unter Verwendung von Hierarchien (BIRCH) umfasst.
  6. Verfahren nach Anspruch 1, wobei die Bestimmung des Bereichs heißer Daten enthält: Analysieren statistischer Informationen über einen LBA-Bereich, ein Überschreibverhältnis, eine Eingabe-/Ausgabezahl, ein Eingabe-/Ausgabeintervall und eine Eingabe-/Ausgabe-Anforderung für jeden der mehreren Cluster.
  7. Verfahren nach Anspruch 1, ferner umfassend: Empfangen einer ersten Eingabe-/Ausgabe-Anforderung, die vom Host übermittelt wurde; Suchen, ob eine logische Blockadresse, die der ersten Eingabe-/Ausgabe-Anforderung entspricht, in der Tabelle heißer Daten vorhanden ist; und Auswählen basierend auf einem Suchergebnis eines Speicherblocks, in dem Daten entsprechend der ersten Eingabe-/Ausgabe-Anforderung gespeichert werden sollen.
  8. Verfahren nach Anspruch 7, wobei das Auswählen des Speicherblocks durch die Bestimmung eines Strom-Bezeichners erfolgt, der den Daten zuzuordnen ist, die der ersten Eingabe/Ausgabe-Anforderung entsprechen.
  9. Speichervorrichtung, umfassend: einen Speicher-Controller, der eingerichtet ist, um während einer ersten Periode eine Vielzahl von Eingabe-/Ausgabe-Anforderungen abzutasten, die von einem Host übertragen werden, um abgetastete Daten zu erzeugen, die abgetasteten Daten unter Verwendung eines Algorithmus eines unüberwachten Lernens in eine Vielzahl von Clustern zu klassifizieren, einen Bereich heißer Daten basierend auf einer Eigenschaft der Vielzahl von Clustern zu bestimmen und den bestimmten Bereich heißer Daten in eine Tabelle heißer Daten aufzunehmen; und eine nichtflüchtige Speichervorrichtung, die eingerichtet ist, um einen Speicherblock zum Speichern von Schreib-Anforderungsdaten unter der Steuerung des Speicher-Controllers vorzusehen, wobei der Speicher-Controller unter Bezugnahme auf die Tabelle heißer Daten bestimmt, ob vom Host während einer zweiten Periode übertragene Eingabe-/Ausgabe-Anforderungen heißen Daten entsprechen.
  10. Speichervorrichtung nach Anspruch 9, wobei der Speicher-Controller basierend auf einem zufälligen Merkmal oder einem Überschreibmerkmal von logischen Blockadressen, die jeweils der Vielzahl von Clustern entsprechen, den Bereich heißer Daten bestimmt.
  11. Speichervorrichtung nach Anspruch 10, wobei der Bereich heißer Daten ein logischer Blockadressbereich (LBA-Bereich) ist.
  12. Speichervorrichtung nach Anspruch 11, wobei der Speicher-Controller während der ersten Periode die Vielzahl der Eingabe-/Ausgabe-Anforderungen zu zufälligen Zeiten abtastet, um die abgetasteten Daten zu erzeugen.
  13. Speichervorrichtung nach Anspruch 9, wobei der Algorithmus des unüberwachten Lernens mindestens einen heuristischen Algorithmus, einen K-Mittelwert-Algorithmus, einen auf Dichte basierenden Algorithmus zur räumlichen Clusteranalyse mit Rauschen (DBSCAN), einen Gaußschen Mischmodel-Algorithmus und einen Algorithmus zur balancierten iterativen Reduzierung und Clustering unter Verwendung von Hierarchien (BIRCH) umfasst.
  14. Speichervorrichtung nach Anspruch 9, wobei der Speicher-Controller statistische Informationen über einen LBA-Bereich, ein Überschreibverhältnis, eine Eingabe/Ausgabe-Zählung, ein Eingabe/Ausgabe-Intervall und eine Eingabe/Ausgabe-Anforderung für jeden der mehreren Cluster während der ersten Periode analysiert.
  15. Speichervorrichtung nach Anspruch 9, wobei der Speicher-Controller die Vielzahl der Eingabe-/Ausgabe-Anforderungen in einem Mehrstrom-Schema empfängt, und wobei der Speicher-Controller basierend auf der Tabelle heißer Daten der Vielzahl von Eingabe-/Ausgabe-Anforderungen, die vom Host während der zweiten Periode übertragen werden, Strom-Bezeichner zuweist.
  16. Speichervorrichtung nach Anspruch 9, wobei der Speicher-Controller eine Heiß-Intensität von heißen Daten als eine von mehreren Heiß-Intensitäten klassifiziert und der Vielzahl von Heiß-Intensitäten jeweils unterschiedliche Speicherblöcke zuweist.
  17. Speichersystem, umfassend: eine Speichervorrichtung, die eingerichtet ist, um Multi-Strom-Daten zu empfangen und einen Speicherblock auf einer Strom-Basis zuzuweisen; und einen Host, der eingerichtet ist, um eine Vielzahl von Eingabe/Ausgabe-Anforderungen von mindestens einem Anwendungsprogramm während einer ersten Periode abzutasten, um abgetastete Daten zu erzeugen, die abgetasteten Daten in eine Vielzahl von Clustern unter Verwendung eines Algorithmus eines unüberwachten Lernens zu klassifizieren, einen Bereich heißer Daten basierend auf einem Merkmal der Vielzahl von Clustern zu bestimmen, den bestimmten Bereich heißer Daten in eine Tabelle heißer Daten aufzunehmen und basierend auf der Tabelle heißer Daten einen Strom-Bezeichner zuzuweisen, der während einer zweiten Periode an die Speichervorrichtung zu übertragen ist.
  18. Speichersystem nach Anspruch 17, wobei der Host einen Vorrichtungstreiber enthält, der den Algorithmus eines unüberwachten Lernens ausführt.
  19. Speichervorrichtung nach Anspruch 17, wobei der Algorithmus des unüberwachten Lernens mindestens einen von einem heuristischen Algorithmus, einem K-Mittelwert-Algorithmus, einem Algorithmus zur dichtebasierten räumlichen Clusteranalyse mit Rauschen (DBSCAN), einem Gaußschen Mischmodel-Algorithmus und einem Algorithmus zur balancierten iterativen Reduzierung und Clustering unter Verwendung von Hierarchien (BIRCH) umfasst.
  20. Speichervorrichtung nach Anspruch 17, wobei der Host die Vielzahl der Eingabe-/Ausgabe-Anforderungen während der ersten Periode nach dem Zufallsprinzip abtastet, um die abgetasteten Daten zu erzeugen.
DE102020128780.1A 2019-12-26 2020-11-02 Speichervorrichtung mit unbeaufsichtigtem lernschema und speicherverwaltungsverfahren dafür Pending DE102020128780A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2019-0175237 2019-12-26
KR1020190175237A KR20210083448A (ko) 2019-12-26 2019-12-26 비지도 학습 기법을 사용하는 스토리지 장치 및 그것의 메모리 관리 방법
US17/038,371 US11487448B2 (en) 2019-12-26 2020-09-30 Storage device using unsupervised learning scheme and memory management method thereof
US17/038,371 2020-09-30

Publications (1)

Publication Number Publication Date
DE102020128780A1 true DE102020128780A1 (de) 2021-07-01

Family

ID=76310643

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020128780.1A Pending DE102020128780A1 (de) 2019-12-26 2020-11-02 Speichervorrichtung mit unbeaufsichtigtem lernschema und speicherverwaltungsverfahren dafür

Country Status (1)

Country Link
DE (1) DE102020128780A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114553565A (zh) * 2022-02-25 2022-05-27 国网山东省电力公司临沂供电公司 一种基于请求频率的安全态势感知方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114553565A (zh) * 2022-02-25 2022-05-27 国网山东省电力公司临沂供电公司 一种基于请求频率的安全态势感知方法和系统
CN114553565B (zh) * 2022-02-25 2024-02-02 国网山东省电力公司临沂供电公司 一种基于请求频率的安全态势感知方法和系统

Similar Documents

Publication Publication Date Title
DE112017002941B4 (de) Arbeitslastoptimierte Datendeduplizierung mittels Phantomfingerabdrücken
DE112010002663B4 (de) Speichermanagementsysteme, Verfahren zur Verbesserung der Schreib-Lösch-Ausdauerlebenszeit von Speichervorrichtungen und Computerprogrammprodukt
DE102020106971A1 (de) Datenschreibverwaltung im nichtflüchtigen speicher
DE112012005222T5 (de) Halbleiter-Datenspeicherverwaltung
DE102019132371A1 (de) Zuordnungsverwaltung logisch zu physisch unter Verwendung von nichtflüchtigem Speicher
DE102017128952A1 (de) Datenspeichervorrichtung, die konfiguriert ist, um eine nicht-blockierende Steuerungs-Aktualisierungsoperation auszuführen
DE112018004251T5 (de) Adaptive vorrichtungsdienstqualität durch host-speicherpufferbereich
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE202010017666U1 (de) Partitionsverteilung bei einer Datenspeichervorrichtung mit Flash-Speicherchips
DE102017120787A1 (de) Verfahren und Vorrichtung zum Entladen von Datenverarbeitung in Hybrid-Speichervorrichtungen
DE102008036822A1 (de) Verfahren zum Speichern von Daten in einem Solid-State-Speicher, Solid-State-Speichersystem und Computersystem
DE102008033518B4 (de) Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement
DE102013016609A1 (de) Vorrichtung und Verfahren für ein Storage Class Memory mit niedrigem Energieverbrauch, niedriger Latenz und hoher Kapazität
DE102013108491A1 (de) Nichtflüchtige Speichervorrichtung und Betriebsverfahren mit variablen Speicherzellenzustandsdefinitionen
DE112019000161T5 (de) Speicher-cache-verwaltung
DE102013206744A1 (de) Deduplizierende speicherung mit verbesserter erkennung von häufigen blöcken
DE102018123669A1 (de) Host-Computer-Anordnung, Remote-Server-Anordnung, Speicherungssystem und Verfahren davon
DE102020126663A1 (de) Speichervorrichtung zum Speichern von Daten basierend auf Schlüssel-Wert und Betriebsverfahren derselben
DE112019005511T5 (de) Halten von schreibbefehlen in gezonten namensräumen
DE112015005102T5 (de) Systeme und verfahren zum erzeugen von einem hostbefehl zugeordneten hinweisinformationen
DE112020001937T5 (de) Vorausschauender datenvorabruf in einer datenspeicher-vorrichtung
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE112017005782T5 (de) Warteschlange für Speichervorgänge
DE102021118940A1 (de) Speichersteuerung und speichereinrichtung mit derselben

Legal Events

Date Code Title Description
R012 Request for examination validly filed