DE112010005074T5 - Speicher-Gerät-Beanspruchung-ausgleichende Techniken - Google Patents

Speicher-Gerät-Beanspruchung-ausgleichende Techniken Download PDF

Info

Publication number
DE112010005074T5
DE112010005074T5 DE112010005074T DE112010005074T DE112010005074T5 DE 112010005074 T5 DE112010005074 T5 DE 112010005074T5 DE 112010005074 T DE112010005074 T DE 112010005074T DE 112010005074 T DE112010005074 T DE 112010005074T DE 112010005074 T5 DE112010005074 T5 DE 112010005074T5
Authority
DE
Germany
Prior art keywords
address
block
caching
memory
data structure
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.)
Ceased
Application number
DE112010005074T
Other languages
English (en)
Inventor
Nirmal Saxena
Howard Tsai
Dimitry Vyshetsky
Yen Lin
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.)
Nvidia Corp
Original Assignee
Nvidia 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 Nvidia Corp filed Critical Nvidia Corp
Publication of DE112010005074T5 publication Critical patent/DE112010005074T5/de
Ceased 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • 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/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

Die Beanspruchung-ausgleichenden Techniken umfassen Herausfinden eines persistenten Zustands von einem oder mehreren Speicher-Geräten, oder Aufbauen und Caching von persistenter-Zustand-Parametern für jede logische Einheit eines gegebenen Speicher-Geräts, wenn ein persistenter Zustand für ein gegebenes Speicher-Gerät nicht herausgefunden ist. Die Techniken können auch ein Verarbeiten von Speicher-Zugriffsbefehlen umfassen, welche die gecachten persistenter-Zustand-Parameter benutzen. Wenn die Speicher-Zugriffsbefehle verarbeitet werden, können die logischer-Block-Adresse und Längenparameter einer logischen Adresse eines Befehls in eine Mehrzahl von physikalischen Adressen zum Zugreifen auf eines oder mehrere Speicher-Geräte translatiert werden, wobei jede physikalische Adresse eine Geräte-Adresse, eine logische-Einheit-Adresse, eine Block-Adresse, und eine Seiten-Adresse umfasst, wobei die Block-Adresse ein oder mehrere verschachtelte Adress-Bits umfasst.

Description

  • HINTRGRUND DER ERFINDUNG
  • Verschiedene Typen von Speichern sind ausgelegt, gelöscht zu werden und in großen Abschnitten programmiert zu werden, und werden im Allgemeinen als Flash-Speicher bezeichnet. Solche Speicher-Geräte können eine begrenzte Anzahl von Lösch-Zyklen während ihrer Betriebslebensdauer aushalten. Die Anzahl von Lösch-Zyklen (erase cycles), welche ein Flash-Speicher aushalten kann und andauern kann, zuverlässig zu operieren, kann als die Dauerhaltbarkeit (endurance) des Speicher-Geräts ausgedrückt werden. Im Allgemeinen kann eine gegebene Speicherzelle eines Flash-Speicher-Geräts momentan zwischen 1.000 und 100.000 Mal gelöscht werden, bevor es versagt, zuverlässig zu operieren. Die Dauerhaltbarkeit eines Speichergeräts kann von Halbleiterprozessen abhängen, welche benutzt sind, um das Gerät herzustellen, und von der Architektur des Speichergeräts.
  • Flash-Speicher ist in verschiedenen herkömmlichen elektronischen Geräten gewöhnlich. Wenn die Dauerhaltbarkeit des Flash-Speichers überschritten ist, kann die Performanz des Flash-Speichers- und/oder des elektronischen Geräts, welches den Flash-Speicher beinhaltet, nachteilig beeinflusst sein, oder es kann sogar einen Betrieb beenden. Demgemäß gibt es einen anhaltenden Bedarf zum Verbessern der Dauerhaltbarkeit von Speicher-Geräten, wie etwa ein Flash-Speicher.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ausführungsformen der vorliegenden Technologie sind auf Speicher-Gerät-Beanspruchung-ausgleichende (wear-leveling) Techniken gerichtet. In einer Ausführungsform umfasst ein Beanspruchung-ausgleichendes Verfahren ein Translatieren einer logischer-Block-Adresse und einer Länge in der logischer-Block-Adresse, welche eine Anzahl von logischen Seiten spezifiziert, auf eine Mehrzahl von physikalischen Adressen zum Zugreifen auf ein oder mehrere Speicher-Geräte. Jede physikalische Adresse umfasst eine Geräte-Adresse, eine logische-Einheit-Adresse, eine Block-Adresse und eine Seiten-Adresse.
  • In einer anderen Ausführungsform findet eine Beanspruchung-ausgleichende Speicher-Steuerung einen persistenten Zustand von einem oder mehreren Speicher-Geräten heraus. Die Speicher-Steuerung baut (builds) auch persistenter-Zustand-Parameter auf (oder erstellt diese) und cached persistenter-Zustand-Parameter für jede logische Einheit eines gegebenen Speicher-Geräts, wenn ein persistenter Zustand für das gegebene Speicher-Gerät nicht herausgefunden worden ist.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Ausführungsformen der vorliegenden Technologie sind als ein Weg eines Beispiels und in keiner Weise einer Begrenzung in den Figuren der begleitenden Zeichnungen illustriert und in welchen sich ähnliche Bezugsnummern auf ähnliche Elemente beziehen, in welchen:
  • 1 ein Blockdiagramm eines exemplarischen Speicher-Geräts in Überstimmung mit einer Ausführungsform der vorliegenden Technologie zeigt.
  • 2 zeigt ein Blockdiagramm eines exemplarischen elektronischen Geräts, einschließlich eines oder mehrerer Speicher-Geräte, in Übereinstimmung mit einer Ausführungsform der vorliegenden Technologie.
  • 3 zeigt ein Blockdiagramm eines Verfahrens zum Translatieren einer logischen Adresse auf eine physikalische Adresse in Übereinstimmung mit einer Ausführungsform der vorliegenden Technologie.
  • 4 zeigt ein Flussdiagramm eines Verfahrens eines Initialisierens von einem oder mehreren Speicher-Geräten in Übereinstimmung mit einer Ausführungsform der vorliegenden Technologie.
  • DETALLIERTE BESCHREIBUNG DER ERFINDUNG
  • Es wird nun im Detail Bezug auf die Ausführungsformen der vorliegenden Technologie genommen, wobei Beispiele davon in den begleitenden Zeichnungen illustriert sind. Während die vorliegende Technologie in Verbindung mit diesen Ausführungsformen beschrieben wird, wird es verstanden werden, dass sie nicht beabsichtigt sind, die Erfindung auf diese Ausführungsformen zu begrenzen. Im Gegenteil ist die Erfindung beabsichtigt, Alternativen, Modifikationen und Äquivalente abzudecken, welche innerhalb des Geltungsbereichs der Erfindung, wie mittels der angehängten Ansprüche definiert, umfasst sein können. Ferner werden in der folgenden detaillierten Beschreibung der vorliegenden Technologie zahlreiche spezifische Details ausgeführt, um ein durchgängiges Verständnis der vorliegenden Technologie bereitzustellen. Es ist jedoch verstanden, dass die vorliegende Technologie ohne diese spezifischen Details praktiziert werden kann. In anderen Fällen sind wohl bekannte Verfahren, Prozeduren, Komponenten und Schaltungen nicht im Detail beschrieben worden, um nicht in unnötiger Weise Aspekte der vorliegenden Technologie zu verschleiern.
  • Mit Bezug auf 1 ist ein exemplarisches Speicher-Gerät in Übereinstimmung mit einer Ausführungsform der vorliegenden Technologie gezeigt. Das exemplarische Speicher-Gerät 230 kann ein Block-programmierbares Speicher-Gerät sein, wie etwa ein Flash-Speichergerät oder dergleichen. Das Block-programmierbarer-Speichergerät (block programmable memory device) umfasst eine große Mehrzahl von Speicher-Zellen, welche in einem Feld (array) angeordnet sind. Das Feld von Speicher-Zellen ist in einer oder in mehreren logischen Einheiten (LUNs) 110 angeordnet. Jede LUN 110 ist aus einer Kollektion von verschachtelten oder verschränkten (interleaved) physikalischen Blöcken 120 von Speicher-Zellen zusammengesetzt. Jeder physikalische Block 120 umfasst eine Mehrzahl von Seiten 130 (z. B. eine spezifizierte Anzahl von Speicher-Zellen). In einer Implementierung können die physikalischen Blöcke 120 eine Zweierpotenz Seiten (power of two pages) (z. B. ein Mehrfaches von 32 Seiten) umfassen. Eine Seite 130 von Speicher-Zellen kann eine vorbestimmte Zweierpotenz Speicher-Zellen umfassen (z. B. ein Vielfaches von 8 Bit speichernd). Die Seiten können von 2 Kilobyte bis 512 Megabyte oder mehr sein und sind typischerweise 4 Kilobyte bis 64 Kilobyte in der Größe. Jede Speicher-Zelle speichert typischerweise ein oder mehrere Bits. Zum Beispiel speichert eine Einzel-Level-(single-level)-Zelle (SLC) ein Bit von Daten und eine Mehrfach-Level-(multi-level)-Zelle (MLC) kann zwei oder mehr Bits von Daten speichern.
  • Die Schaltungs- und Speicher-Zell-Architektur des Block-programmierbaren Speichers ist derart, dass neue Daten auf gelöschte physikalische Blöcke 120 des Block-programmierbaren Speichers 230 geschrieben werden. Im Allgemeinen, wenn Daten in einen physikalischen Block 120 zu schreiben sind, welcher bereits Daten beinhaltet, dann muss der physikalische Block 120 gelöscht werden, bevor die neuen Daten programmiert werden. Wenn die Blöcke 120 von einem Block-programmierbaren Speichers 230 direkt von Software geschrieben werden, können nicht-gleichförmige Adressmuster zu einer ungleichen Anzahl von Löschungen über die Mehrzahl von physikalischen Blöcken 120 des Speichers 230 führen. Wenn z. B. ein Adress-Pattern kontinuierlich beschrieben wird, dann würde die Anzahl von Löschungen schließlich die Dauerhaftigkeits-Grenze des gegebenen physikalischen Blocks 120 überschreiten. Überschreiten der Dauerhaltbarkeits-Grenze (endurance limit) des Blocks 120 würde die Betriebslebenszeit des Block-programmierbaren Speicher-Geräts 230 vermindern.
  • Die Beanspruchung-ausgleichenden Techniken, in Übereinstimmung mit Ausführungsformen der vorliegenden Technologie, bilden (map) logische Adressen, welche mittels Software erzeugt sind, auf physikalische Adressen in dem Block-programmierbaren Speicher-Gerät ab. Die Abbildung (mapping) ist derart durchgeführt, dass über die Zeit alle physikalischen Blöcke in dem Block-programmierbaren Speicher-Gerät fast derselben Anzahl von Löschzyklen unabhängig von den Software-Zugriffsmustern ausgesetzt sind. Die Beanspruchung-ausgleichenden Techniken erhöhen signifikant die Betriebslebenszeit von Block-programmierbaren Speicher-Geräten. In einer Implementierung sind die Beanspruchungsausgleich-Techniken für Flash-Speichergeräte implementiert, welche der Open-NAND-Flash-Interface (ONFI) 2.0 Spezifikation genügen.
  • Mit Bezug nun auf 2 ist ein exemplarisches elektronisches Gerät einschließlich eines oder mehrerer Speicher-Geräte in Übereinstimmung mit einer Ausführungsform der vorliegenden Technologie gezeigt. Das elektronische Gerät 210 kann ein Computer, ein Laptop-Computer, ein Mobil-Telefon, ein Smart-Telefon, ein tragbares Musikabspielgerät (z. B. MP3-Abspielgerät), ein persönlicher digitaler Assistent, ein Netbook-Computer, ein E-Book, eine Spielkonsole, ein tragbares Spiele-Abspielgerät, eine Settop-Box, ein Satellitenempfänger, ein Navigationssystem, ein digitaler Videorecorder (z. B. DVR), ein Server-Computer, und/oder dergleichen sein.
  • Das elektronische Gerät 210 umfasst eine oder mehrere Verarbeitungseinheiten 220, welche kommunikativ mit dem Systemspeicher 230, einer Speicher-Steuerung 240 und einer Mehrzahl von Block-programmierbaren Speicher-Geräten 260 mittels eines oder mehrerer Kommunikationsbuse 260 gekoppelt sind. Das elektronische Gerät 210 kann auch andere Schaltungen, wie etwa Eingabe-/Ausgabe-Geräte 270 und dergleichen umfassen. In einer Implementierung können die Mehrzahl von Block-programmierbaren Speicher-Geräten 250 Flash-Speicher-Geräte sein. In einer Implementierung kann die Speicher-Steuerung 240 Zugriff auf den System-Speicher 230, die Block-programmierbaren Speicher-Geräte 250 und ein anderes Speicher-Gerät des elektronischen Geräts 210 ermöglichen. Eines oder mehrere der Block-programmierbaren Speicher-Geräte 250 können intern oder extern zu dem elektronischen Gerät 210 sein. Die Speicher-Steuerung 240 kann integral zu einer oder mehreren Schaltungen des elektronischen Geräts 210 sein oder kann diskrete Geräte sein. Zum Beispiel kann die Speicher-Steuerung integral zu einem oder mehreren Speicher-Geräten, einem oder mehreren Prozessoren, einer oder mehreren anderen Schaltungen (z. B. Northbridge-Chip, Grafik-Verarbeitungseinheit) sein und/oder kann eine dedizierte separate Steuerung sein. Die Speicher-Steuerung kann mittels eines oder mehrerer Mittel implementiert sein, wie etwa Hardware, Firmware, und/oder Computer-Gerät lesbaren Anweisungen (z. B. Software) und einer Verarbeitungseinheit. In einer anderen Implementierung kann das elektronische Gerät 210 eine Mehrzahl von Speicher-Steuerungen umfassen, wobei eine der Speicher-Steuerungen eine dedizierte Block-programmierbarer-Speicher-Steuerung 240 ist.
  • Die Block-programmierbaren Speicher-Geräte 250 können ein oder mehrere Geräte umfassen, welche verschiedene Betriebsparameter haben. Zum Beispiel können die Speicher-Geräte 250 ein oder mehrere Geräte umfassen, welche verschiedene Speicherkapazität (z. B. Seiten) haben, verschiedene Anzahlen von Blöcken haben, verschiedene Reserve-Blöcke, verschiedene Zeitanforderungen und dergleichen.
  • Die Block-programmierbarer-Speicher-Steuerung 240 umfasst einen Cache 280 zum Caching von persistenter-Zustand-Parametern (persistent state parameters) des einen oder der mehreren Block-programmierbaren Speicher-Geräte 250. Die Block-programmierbarer-Speicher-Steuerung 240 kann persistenter-Zustand-Parameter cachen, wie etwa schlechter-Block-Daten (bad block data) in einer schlechter-Block-Datenstruktur, Abbildungsdaten (mapping data) in einer Abbildung-Datenstruktur, Reserveblock-Daten in einer Reserveblock-Datenstruktur und/oder dergleichen für das eine oder die mehreren Block-programmierbaren Speicher-Geräte 250. Der persistenter-Zustand-Parameter-Cache 280 kann separat sein oder kann integral zu der Block-programmierbaren Speicher-Steuerung 240 sein. Die Block-programmierbarer-Speicher-Steuerung 240 benutzt die gecachten persistenter-Zustand-Parameter 280 zum Verarbeiten von einem oder mehreren Speicher-Zugriffsbefehlen einschließlich eines Translatierens einer logischer-Block-Adresse und Länge, welche eine ganzzahlige (integral) Anzahl von logischen Seiten in einer logischen Adresse spezifiziert, auf eine Mehrzahl von physikalischen Adressen zum Zugreifen auf ein oder mehrere Speicher-Geräte 250, wobei jede physikalische Adresse eine Geräte-Adresse, eine logische-Einheit-Adresse, eine Block-Adresse, und eine Seiten-Adresse umfasst. Zusätzlich umfasst die Block-Adresse ein oder mehrere verschachtelte (interleaved) Adress-Bits. Die Block-programmierbarer-Speicher-Steuerung 240 aktualisiert die gecachten persistenter-Zustand-Parameter 280 und archiviert (journals) dann periodisch die persistenter-Zustand-Parameter in den Block-programmierbaren Speicher-Geräten 250, um das Beanspruchung-Ausgleichen (wear-leveling) der Block-programmierbaren Speicher-Geräte 250 zu verbessern.
  • Mit Bezug nun auf 3 ist ein Verfahren zum Translatieren einer logischen Adresse auf eine physikalische Adresse in Übereinstimmung mit einer Ausführungsform der vorliegenden Technologie gezeigt. Das Adress-Translationsverfahren kann mittels einer Speicher-Steuerung implementiert sein. Das Verfahren kann auch in einem Herstellungsartikel verkörpert sein einschließlich von Computer-Gerät-lesbaren Anweisungen, welche auf einem oder mehreren Computer-Gerät-lesbaren Medien (z. B. Speicher) gespeichert sind, welche, wenn mittels einer Verarbeitungseinheit ausgeführt, einen oder mehrere Prozesse durchführen einschließlich einer Adress-Translation. Das Verfahren kann auch in einem Herstellungsartikel verkörpert sein, welcher Firmware umfasst, welche, wenn betrieben, einen oder mehrere Prozesse einschließlich einer Adress-Translation durchführt.
  • Die logische Adresse, welche mittels der Software benutzt wird, um auf Daten zuzugreifen, umfasst eine logischer-Block-Adresse (LBA) und eine ganzzahlige Anzahl von logischen Seiten, welche mittels eines Längenparameters spezifiziert ist. Die physikalische Adresse umfasst einen Geräte-Identifikator (z. B. Chip-Freigabe (chip enable)), eine logische-Einheit-Adresse, eine Block-Adresse und eine Seiten-Adresse. Die Niedrigordnungs-Bits (lower Order bits) der Block-Adresse umfassen ein oder mehrere verschachtelte (interleaved) Adress-Bits.
  • Der physikalische Speicher-Raum umfasst typischerweise eine Mehrzahl von Block-programmierbaren Speicher-Geräten, wie in 2 illustriert ist. Demgemäß kann der Adressen-Translator 310 die logischer-Block-Adresse (LBA) 315 und Länge 320, welche eine Anzahl von logischen Seiten einer logischen Adresse spezifiziert, auf eine physikalische Adresse über mehrere Ziel-Block-programmierbare Speicher-Geräte translatieren. In einer Ausführungsform wird die logischer-Block-Adresse 315 in N physikalische Adressen translatiert, wobei N die kleinste ganzzahlige Zahl ist nicht weniger als die Länge, welche in der logischen Adresse spezifiziert ist, dividiert durch die Seitengröße (N = Obergrenze (Länge/Seitengröße)). Jede der N-physikalischen Adressen umfasst ein Geräte-Feld 325, ein logische-Einheit-Feld 330, ein Block-Feld 335, und ein Seiten-Feld 340. Für jede der N physikalischen Adressen ist das Geräte-Feld 325 in eines der N-Chip-Freigabeen (CE)s für die adressierten Speicher-Geräte dekodiert. Das LUN-Feld 330 spezifiziert die Adresse einer gegebenen logischen Einheit innerhalb des adressierten physikalischen Speicher-Geräts. Das Block-Feld 335 spezifiziert die verschachtelte Adresse eines gegebenen Blocks innerhalb der spezifizierten LUN. Das Seiten-Feld 340 spezifiziert die Adresse der Seite innerhalb des spezifizierten Blocks.
  • Das Translations-Verfahren hat die Flexibilität, verschiedene Abbildungen (mappings) über mehrere Block-programmierbarer-Speicher-Geräte für eine erhöhte Performanz und Zuverlässigkeit verglichen mit herkömmlichen Beanspruchung-ausgleichenden Techniken zu erschaffen. Zusätzlich zu der Adress-Translation unterstützt das Verfahren die Initialisierung des Block-programmierbaren Geräts und das Herausfinden von persistenten Zuständen, die Detektion und das Management von schlechten physikalischen Blöcken (bad physical blocks), Reserveblock-Allokation (spare block allocation), Management und Abfallsammlung (garbage collection) und die Flexibilität, nicht-sequenzielle Programmierung von physikalischen Seiten in einem Block zu vermeiden.
  • Nun mit Bezug auf 4 ist ein Verfahren eines Initialisierens von einem oder mehreren Speicher-Geräten in Übereinstimmung mit einer Ausführungsform der vorliegenden Technologie gezeigt. Das Verfahren eines Initialisierens von einem oder mehreren Speicher-Geräten kann mittels einer Speicher-Steuerung implementiert sein. Die Speicher-Steuerung kann integral zu einem oder mehreren Speicher-Geräten sein, zu einem oder mehreren Prozessoren, und/oder zu einer oder mehreren anderen Schaltungen (z. B. Northbridge Chip, Grafik-Verarbeitungseinheit), oder kann eine separate dedizierte Steuerung sein. Das Verfahren kann in einem Herstellungsartikel verkörpert sein einschließlich von Computer-Gerät-lesbaren Anweisungen, welche in einem oder in mehreren Computer-Gerät-lesbaren Medien (z. B. Speicher) gespeichert sind, welche, wenn mittels einer Verarbeitungseinheit ausgeführt, einen oder mehrere Prozesse durchführen einschließlich eines Initialisierens von einem oder mehreren Speicher-Geräten. Das Verfahren kann auch in einem Herstellungsartikel verkörpert sein, welcher Firmware umfasst, welche, wenn betrieben, einen oder mehrere Prozesse einschließlich eines Initialisierens von einem oder mehreren Speicher-Geräten durchführt.
  • Das Verfahren beginnt mit dem Lesen einer Parameterseite von einer Mehrzahl von Block-programmierbaren Speicher-Geräten, bei 410. Die Parameter-Seite umfasst Parameter von dem jeweiligen Speicher-Gerät, wie etwa die Anzahl von LUNs, die Anzahl von Blöcken pro LUN, die Seitengröße, die Anzahl von Reserve-Bytes pro Seite, ECC-Bytes, welche unterstützt sind (z. B. Strap-Option), und/oder dergleichen. Für jedes angehängte Speicher-Gerät 414425 wird ein gegebener physikalischer Block für jede LUN in einem Gerät gelesen, bei 430. In einer Implementierung wird Block 0 von jeder LUN gelesen. Bei 435 wird die Block-Typ-Signatur des gegebenen Blocks jeder LUN überprüft, um zu bestimmen, ob er bereits initialisiert worden ist.
  • Wenn der gegebene Block von jeder LUN schon initialisiert ist, werden die Initialisierungs-Parameter detektiert und gecacht. In einer Implementierung wird die neueste schlechter-Block-Tabellen-Datenstruktur (most recent bad block data structure) detektiert und für jede LUN von jedem angehängten Gerät gecacht, bei 440. Bei 445 wird auch die neueste Abbildung-Tabellen-Datenstruktur detektiert und für jede LUN von jedem angehängten Gerät gecacht. Bei 450 wird die neueste Reserve-Block-Datenstruktur auch detektiert und für jede LUN von jedem angehängten (attached) Gerät gecacht. Die Parameter werden gecacht, so dass der gegebene Block, welcher die Initialisierungs-Parameter speichert, nicht jedes Mal geschrieben werden muss, wenn die Parameter aktualisiert werden, und verbessert daher das Beanspruchungsausgleichen des Speicher-Geräts.
  • Wenn der gegebene Block von jeder LUN nicht initialisiert worden ist, wird die LUN initialisiert und die Initialisierungs-Daten werden gecacht. In einer Implementierung werden die schlechten Blöcke (bad blocks) detektiert und eine schlechter-Block-Tabellen-Datenstruktur (bad block table data structure) wird aufgestellt (built) und gecacht, bei 455. Bei 460 wird auch eine Abbildung-Tabellen-Datenstruktur, welche logischer-Block-Adressen auf physikalische Block-Adressen abbildet (mapping), auch aufgebaut (oder erstellt) (build) und gecacht. Bei 465 wird auch eine Reserve-Block-Tabellen-Datenstruktur aufgebaut und gecacht.
  • Bei 470 können ein oder mehrere Speicher-Zugriffsbefehle verarbeitet werden. Verschiedene Hintergrund-Aufgaben können auch durchgeführt werden, bei 475. Die Speicher-Zugriffsbefehle werden unter Benutzung des Adress-Translationsverfahrens, welches oben mit Bezug auf 3 beschrieben wurde, verarbeitet. Die Hintergrund-Aufgaben können Müllsammlungen (garbage collection), Aktualisieren der Mapping- oder Reserve-Tabellen, Löschen von Blöcken, Aktualisieren von Lösch-Zählraten oder Zählern, Archivieren (journaling) der Abbildung-, Reserve- und/oder schlechter-Block-Tabelle, und/oder dergleichen umfassen. Archivieren (journaling) der Abbildungs-Tabelle-, der Reserve-Tabelle- und der schlechter-Block-Tabellen-Datenstruktur stellt eine persistente Speicherung der Daten bereit. Die Datenstrukturen werden unter Benutzung des Adress-Translationsverfahrens, welches oben mit Bezug auf 3 beschrieben wurde, archiviert.
  • Die Beanspruchung-ausgleichenden Techniken (wear-leveling technics) in Übereinstimmung mit Ausführungsformen der vorliegenden Technologie verwenden vorteilhafter Weise Systemspeicher-Abbildung-Tabellenstrukturen (system memory map table structures), um eine große Kapazität (z. B. Hunderte von Giga-Bytes) zu unterstützen und einen Hochperformanz-Block-programmierbaren Speicher, wie etwa ONFI-Flash-Speicher-Geräte. Die Abbildung-Datenstrukturen haben auch vorteilhafter Weise flexibele Semantik, um mehrere Instanzen von Speicher-Steuerungen zu unterstützen. Dieses hilft dabei, die Größe von Firmware zu minimieren, welche die Beanspruchung-Ausgleich-Techniken implementiert. In Übereinstimmung mit einer Ausführungsform der vorliegenden Technologie hat das Indizieren von virtuellem Adressen-Tupel (LBA, Länge) eine programmierbare Hash-Funktion, welche vorteilhafterweise verschiedene Optionen zum Verschachteln von abgebildeten physikalischen Adressen über die gleichen oder über verschiedene Zielspeicher-Geräte erschafft.
  • Die vorangehenden Beschreibungen von spezifischen Ausführungsformen der vorliegenden Technologie sind für Zwecke von Illustration und Beschreibung präsentiert worden. Sie sind nicht beabsichtigt, erschöpfend zu sein oder die Erfindung auf die präzisen offenbarten Formen zu beschränken und offensichtlich sind viele Modifikationen und Variationen im Lichte der obigen Lehre möglich. Die Ausführungsformen wurden ausgewählt und beschrieben, um am Besten die Prinzipien der vorliegenden Technologie und ihre praktische Anwendung zu erläutern, um dadurch anderen Fachleuten der Technik zu ermöglichen, die vorliegende Technologie und verschiedene Ausführungsformen mit verschiedenen Modifikationen zu benutzen, wie sie für die besondere Benutzung, welche ins Auge gefasst wird, geeignet sind. Es ist beabsichtigt, dass der Geltungsbereich der Erfindung mittels der hierzu angehängten Ansprüche und ihrer Äquivalente definiert ist.

Claims (20)

  1. Ein oder mehrere Computer-Gerät-lesbare Medien, welche Anweisungen darauf gespeichert haben, welche, wenn mittels eines oder mehrerer Verarbeitungs-Einheiten ausgeführt, ein Verfahren durchführen, welches aufweist: Translatieren einer logischer-Block-Adresse und Länge einer logischen Adresse auf eine Mehrzahl von physikalischen Adressen zum Zugreifen auf eine Mehrzahl von Speicher-Geräten, wobei jede physikalische Adresse eine Geräte-Adresse, eine logische-Einheit-Adresse, eine Block-Adresse und eine Seiten-Adresse umfasst.
  2. Ein oder mehrere Computer-Gerät-lesbare Medien gemäß Anspruch 1, wobei zumindest zwei der Mehrzahl von Speicher-Geräten verschiedene Speicher-Geräte sind.
  3. Ein oder mehrere Computer-Gerät-lesbare Medien gemäß Anspruch 1, wobei die Mehrzahl von Speicher-Geräten eine Mehrzahl von Flash-Speicher-Geräten umfasst.
  4. Ein oder mehrere Computer-Gerät-lesbare Medien gemäß Anspruch 1, wobei das Verfahren ferner aufweist: Lesen einer Parameterseite des einen oder der mehreren Speicher-Geräte; Lesen eines gegebenen physikalischen Blocks jeder logischen Einheit von jedem des einen oder der mehreren Speicher-Geräte; Bestimmen, ob der gegebene Block initialisiert worden ist; Detektieren und Caching von Initialisierungs-Parametern für eine gegebene logische Einheit, wenn der gegebene Block der gegebenen logischen Einheit bereits initialisiert ist; und Aufbauen und Caching von Initialisierungs-Parametern für eine gegebene logische Einheit, wenn der gegebene Block der gegebenen logischen Einheit nicht initialisiert ist.
  5. Ein oder mehrere Computer-Gerät-lesbare Medien gemäß Anspruch 4, wobei das Verfahren ferner aufweist periodisches Archivieren der gecachten Initialisierungs-Parameter in dem entsprechenden einen oder den entsprechenden mehreren Speicher-Geräten.
  6. Ein oder mehrere Computer-Gerät-lesbare Medien gemäß Anspruch 4, wobei Detektieren und Caching der Initialisierungs-Parameter aufweist; Detektieren und Caching einer neuesten schlechter-Block-Tabellen-Datenstruktur; Detektieren und Caching einer neuesten Mapping-Tabellen-Datenstruktur; und Detektieren und Caching einer neuesten Reserve-Block-Tabellen-Datenstruktur.
  7. Ein oder mehrere Computer-Gerät-lesbare Medien gemäß Anspruch 4, wobei Aufbauen und Caching von Initialisierungs-Parametern aufweist; Aufbauen und Caching einer schlechter-Block-Tabellen-Datenstruktur; Aufbauen und Caching einer Mapping-Tabellen-Datenstruktur; und Aufbauen und Caching einer Reserve-Block-Tabellen-Datenstruktur.
  8. Ein oder mehrere Computer-Gerät-lesbare Medien, welche Anweisungen darauf gespeichert haben, welche, wenn mittels einer oder mehrerer Verarbeitungs-Einheit ausgeführt, ein Verfahren durchführen, welches aufweist: Herausfinden eines persistenten Zustandes von einem oder mehreren Speicher-Geräten; und Aufbauen und Caching von persistenter-Zustand-Parametern für jede logische Einheit eines gegebenen Speicher-Geräts, wenn ein persistenter Zustand für ein gegebenes Speicher-Gerät nicht herausgefunden ist.
  9. Ein oder mehrere Computer-Gerät-lesbare Medien gemäß Anspruch 8, wobei Herausfinden des persistenten Zustandes aufweist; Lesen einer Parameterseite von dem einen oder den mehreren Speicher-Geräten; Lesen eines gegebenen physikalischen Blocks jeder logischen Einheit von jedem des einen oder der mehreren Speicher-Geräte; Detektieren und Caching einer neuesten schlechter-Block-Tabellen-Datenstruktur; Detektieren und Caching einer neuesten Mapping-Tabellen-Datenstruktur; und Detektieren und Caching einer neuesten Reserve-Block-Tabellen-Datenstruktur.
  10. Ein oder mehrere Computer-Gerät-lesbare Medien gemäß Anspruch 9, wobei Aufbauen und Caching von persistenter-Zustand-Parametern aufweist: Aufbauen und Caching der schlechter-Block-Tabellen-Datenstruktur; Aufbauen und Caching der Mapping-Tabellen-Datenstruktur; und Aufbauen und Caching der Reserve-Tabellen-Datenstruktur.
  11. Ein oder mehrere Computer-Gerät-lesbare Medien gemäß Anspruch 8, wobei das Verfahren ferner aufweist Verarbeiten von einem oder mehreren Speicher-Zugriffs-Befehlen, welche einen oder mehrere der persistenter-Zustand-Parameter benutzen, einschließlich Translatieren einer logischer-Block-Adresse und eines Längen-Parameters in einer logischen Adresse auf eine Mehrzahl von physikalischen Adressen zum Zugreifen auf ein oder mehrere Speicher-Geräte, wobei jede physikalische Adresse eine Geräte-Adresse, eine logische-Einheit-Adresse, eine Block-Adresse und eine Seiten-Adresse umfasst, wobei die Block-Adresse ein oder mehrere verschachtelte Adress-Bits umfasst.
  12. Ein oder mehrere Computer-Gerät-lesbare Medien gemäß Anspruch 11, wobei die Geräte-Adresse der Mehrzahl von physikalischen Adressen über eine Mehrzahl von Speicher-Geräten abbildet.
  13. Ein oder mehrere Computer-Gerät-lesbare Medien gemäß Anspruch 12, wobei zumindest zwei der Mehrzahl von Speicher-Geräten verschiedene Speicher-Geräte sind.
  14. Ein oder mehrere Computer-Gerät-lesbare Medien gemäß Anspruch 12, wobei die Mehrzahl von Speicher-Geräten eine Mehrzahl von Open-NAND-Flash-Schnittstelle-(ONFI)-Speicher-Geräten aufweist.
  15. Ein oder mehrere Computer-Gerät-lesbare Medien gemäß Anspruch 12, wobei einer oder mehrere der persistenter-Zustand-Parameter in dem entsprechenden Flash-Speicher-Gerät archiviert sind.
  16. Elektronisches Gerät, aufweisend: einen Prozessor; eines oder mehrere Block-programmierbarer-Speicher-Geräte, welche kommunikativ mit dem Prozessor gekoppelt sind, wobei jedes Block-programmierbarer-Speicher-Gerät eine oder mehrere logische Einheiten umfasst, wobei jede logische Einheit eine Mehrzahl von Blöcken umfasst, und wobei jeder Block eine Mehrzahl von Speicherseiten umfasst; und eine Speicher-Steuerung, welche eine programmierbare Hash-Funktion umfasst, welche benutzt ist, um eine logische Adresse, welche eine logischer-Block-Adresse und eine Länge umfasst, auf eine Mehrzahl von physikalischen Adressen zum Zugreifen auf das Speicher-Gerät zu translatieren, wobei jede physikalische Adresse eine Geräte-Adresse, eine logische-Einheit-Adresse, eine Block-Adresse und eine Seiten-Adresse umfasst, zum Verschachteln von abgebildeten physikalischen Adressen über gleiche oder verschiedene Speicher-Geräte.
  17. Elektronisches Gerät gemäß Anspruch 16, wobei die Speicher-Steuerung ferner einen persistenter Zustand-Parameter-Cache umfasst, wobei die gecachten persistenter-Zustand-Parameter benutzt werden, um Speicher-Zugriffsbefehle zu verarbeiten.
  18. Elektronisches Gerät gemäß Anspruch 17, wobei die Speicher-Steuerung einen persistenten Zustand des einen oder der mehreren Block-programmierbaren Speichergeräte herausfindet und persistenter-Zustand-Parameter für jede logische Einheit eines gegebenen Speicher-Geräts aufbaut, wenn ein persistenter Zustand für ein gegebenes Speicher-Gerät nicht herausgefunden ist.
  19. Elektronisches Gerät gemäß Anspruch 18, wobei die Speicher-Steuerung periodisch die persistenter-Zustand-Parameter eines gegebenen Block-programmierbaren Speicher-Geräts in dem gegebenen Block-programmierbaren Speicher-Gerät archiviert.
  20. Elektronisches Gerät gemäß Anspruch 19, wobei der persistenter-Zustand-Parameter-Cache eine schlechter-Block-Datenstruktur, eine Abbildung-Datenstruktur und eine Reserveblock-Datenstruktur umfasst.
DE112010005074T 2009-12-30 2010-11-23 Speicher-Gerät-Beanspruchung-ausgleichende Techniken Ceased DE112010005074T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/649,992 US20110161553A1 (en) 2009-12-30 2009-12-30 Memory device wear-leveling techniques
US12/649,992 2009-12-30
PCT/US2010/057831 WO2011090547A2 (en) 2009-12-30 2010-11-23 Memory device wear-leveling techniques

Publications (1)

Publication Number Publication Date
DE112010005074T5 true DE112010005074T5 (de) 2012-12-27

Family

ID=44188841

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010005074T Ceased DE112010005074T5 (de) 2009-12-30 2010-11-23 Speicher-Gerät-Beanspruchung-ausgleichende Techniken

Country Status (5)

Country Link
US (1) US20110161553A1 (de)
CN (1) CN102792284B (de)
DE (1) DE112010005074T5 (de)
GB (1) GB2489355B (de)
WO (1) WO2011090547A2 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8688955B2 (en) 2010-08-13 2014-04-01 Micron Technology, Inc. Line termination methods and apparatus
US9465728B2 (en) 2010-11-03 2016-10-11 Nvidia Corporation Memory controller adaptable to multiple memory devices
US8660608B2 (en) * 2010-11-12 2014-02-25 Apple Inc. Apparatus and methods for recordation of device history across multiple software emulations
US8626991B1 (en) * 2011-06-30 2014-01-07 Emc Corporation Multi-LUN SSD optimization system and method
US20130067289A1 (en) * 2011-09-14 2013-03-14 Ariel Maislos Efficient non-volatile read cache for storage system
KR20130060791A (ko) * 2011-11-30 2013-06-10 삼성전자주식회사 마모도 제어 로직을 포함하는 메모리 시스템, 데이터 저장 장치, 메모리 카드, 그리고 솔리드 스테이트 드라이브
US9098400B2 (en) * 2012-10-31 2015-08-04 International Business Machines Corporation Dynamic tuning of internal parameters for solid-state disk based on workload access patterns
US9424209B2 (en) 2013-09-19 2016-08-23 Intel Corporation Dynamic heterogeneous hashing functions in ranges of system memory addressing space
US10437785B2 (en) 2016-03-29 2019-10-08 Samsung Electronics Co., Ltd. Method and apparatus for maximized dedupable memory
CN113867650A (zh) * 2016-12-23 2021-12-31 北京忆芯科技有限公司 Io命令处理方法与固态存储设备
KR102509913B1 (ko) * 2017-01-25 2023-03-14 삼성전자주식회사 최대화된 중복 제거 메모리를 위한 방법 및 장치
US10261913B2 (en) * 2017-04-20 2019-04-16 Alibaba Group Holding Limited Persistent memory for key-value storage
KR20180123385A (ko) * 2017-05-08 2018-11-16 에스케이하이닉스 주식회사 메모리 시스템 및 이를 이용한 웨어-레벨링 방법
CN109800180B (zh) * 2017-11-17 2023-06-27 爱思开海力士有限公司 用于地址映射的方法和存储器系统
CN110781102A (zh) * 2019-10-29 2020-02-11 江苏微锐超算科技有限公司 计算设备的信息存储、读取方法及共享虚拟介质承载芯片

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4360916A (en) * 1979-12-31 1982-11-23 Ncr Canada Ltd.-Ncr Canada Ltee. Method and apparatus for providing for two bits-error detection and correction
JPH04128946A (ja) * 1990-09-20 1992-04-30 Fujitsu Ltd アドレス変換方式
US5343481A (en) * 1991-01-07 1994-08-30 Kraft Clifford H BCH error-location polynomial decoder
US5734926A (en) * 1992-07-15 1998-03-31 Advanced Hardware Architectures Direct memory access controller in an integrated circuit
US5533035A (en) * 1993-06-16 1996-07-02 Hal Computer Systems, Inc. Error detection and correction method and apparatus
FR2737592B1 (fr) * 1995-08-03 1997-10-17 Sgs Thomson Microelectronics Circuit hdlc a bus interne partage
US5787279A (en) * 1995-12-22 1998-07-28 International Business Machines Corporation System and method for conformationally-flexible molecular recognition
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US6604136B1 (en) * 1998-06-27 2003-08-05 Intel Corporation Application programming interfaces and methods enabling a host to interface with a network processor
US7934074B2 (en) * 1999-08-04 2011-04-26 Super Talent Electronics Flash module with plane-interleaved sequential writes to restricted-write flash chips
US7457897B1 (en) * 2004-03-17 2008-11-25 Suoer Talent Electronics, Inc. PCI express-compatible controller and interface for flash memory
US6760743B1 (en) * 2000-01-04 2004-07-06 International Business Machines Corporation Instruction memory system for multi-processor environment and disjoint tasks
US8108590B2 (en) * 2000-01-06 2012-01-31 Super Talent Electronics, Inc. Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear
US6820142B2 (en) * 2000-12-14 2004-11-16 International Business Machines Corporation Token based DMA
US20020161941A1 (en) * 2001-04-30 2002-10-31 Sony Corporation And Electronics, Inc System and method for efficiently performing a data transfer operation
US7237016B1 (en) * 2001-09-07 2007-06-26 Palau Acquisition Corporation (Delaware) Method and system to manage resource requests utilizing link-list queues within an arbiter associated with an interconnect device
US6772276B2 (en) * 2002-01-04 2004-08-03 Intel Corporation Flash memory command abstraction
US7100103B2 (en) * 2002-01-22 2006-08-29 Broadcom Corporation Efficient method for fast decoding of BCH binary codes
US6985977B2 (en) * 2002-08-30 2006-01-10 National Instruments Corporation System and method for transferring data over a communication medium using double-buffering
US8041878B2 (en) * 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
US7685254B2 (en) * 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7277978B2 (en) * 2003-09-16 2007-10-02 Micron Technology, Inc. Runtime flash device detection and configuration for flash data management software
US7293048B2 (en) * 2003-10-29 2007-11-06 Hewlett-Packard Development Company, L.P. System for preserving logical object integrity within a remote mirror cache
EP1528478A1 (de) * 2003-11-03 2005-05-04 Sun Microsystems, Inc. Allgemeines Adressierungsverfahren für fern-firekt-speicherzugrifffähige Geräte
JP2005202767A (ja) * 2004-01-16 2005-07-28 Toshiba Corp プロセッサシステム、dma制御回路、dma制御方法、dmaコントローラの制御方法、画像処理方法および画像処理回路
US8006056B2 (en) * 2004-01-30 2011-08-23 Hewlett-Packard Development Company, L.P. Storage system including capability to move a virtual storage device group without moving data
US20050289253A1 (en) * 2004-06-24 2005-12-29 Edirisooriya Samantha J Apparatus and method for a multi-function direct memory access core
US7392330B2 (en) * 2004-07-02 2008-06-24 Mediatek Usa Inc. Memory access bandwidth allocation and latency control in a digital camera
US7689998B1 (en) * 2004-07-13 2010-03-30 Microsoft Corporation Systems and methods that manage processing resources
EP1797645B1 (de) * 2004-08-30 2018-08-01 Google LLC Systeme und verfahren zur bereitstellung von verwaltung nichtflüchtiger speicher in drahtlosen telefonen
KR100621631B1 (ko) * 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
US20060236039A1 (en) * 2005-04-19 2006-10-19 International Business Machines Corporation Method and apparatus for synchronizing shared data between components in a group
US7441054B2 (en) * 2005-09-26 2008-10-21 Realtek Semiconductor Corp. Method of accessing internal memory of a processor and device thereof
US9213627B2 (en) * 2005-12-21 2015-12-15 Nxp B.V. Non-volatile memory with block erasable locations
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
CN101051464A (zh) * 2006-04-06 2007-10-10 株式会社东芝 说话人认证的注册和验证方法及装置
US7761636B2 (en) * 2006-11-22 2010-07-20 Samsung Electronics Co., Ltd. Method and system for providing access arbitration for an integrated circuit in a wireless device
TW200823923A (en) * 2006-11-23 2008-06-01 Genesys Logic Inc Caching method for address translation layer of flash memory
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
WO2008070191A2 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
CN100504814C (zh) * 2007-01-17 2009-06-24 忆正存储技术(深圳)有限公司 闪存的区块管理方法
US8166212B2 (en) * 2007-06-26 2012-04-24 Xerox Corporation Predictive DMA data transfer
JP5087347B2 (ja) * 2007-09-06 2012-12-05 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
US7877524B1 (en) * 2007-11-23 2011-01-25 Pmc-Sierra Us, Inc. Logical address direct memory access with multiple concurrent physical ports and internal switching
CN100565477C (zh) * 2007-12-06 2009-12-02 浙江科技学院 一种NAND Flash存储器的动态管理方法
CN101470663B (zh) * 2007-12-29 2011-01-12 安凯(广州)微电子技术有限公司 Nand闪存的mtd设计中处理地址不连续的方法
US8464021B2 (en) * 2008-05-28 2013-06-11 Spansion Llc Address caching stored translation
CN101419842B (zh) * 2008-11-07 2012-04-04 成都市华为赛门铁克科技有限公司 硬盘的损耗均衡方法、装置及系统
US8176295B2 (en) * 2009-04-20 2012-05-08 Imation Corp. Logical-to-physical address translation for a removable data storage device
US8392806B2 (en) * 2009-09-02 2013-03-05 Texas Instruments Incorporated Method, device, and digital circuitry for providing a closed-form solution to a scaled error locator polynomial used in BCH decoding

Also Published As

Publication number Publication date
WO2011090547A2 (en) 2011-07-28
GB201211590D0 (en) 2012-08-15
GB2489355A (en) 2012-09-26
WO2011090547A3 (en) 2011-10-06
CN102792284B (zh) 2016-05-04
US20110161553A1 (en) 2011-06-30
CN102792284A (zh) 2012-11-21
GB2489355B (en) 2017-08-16

Similar Documents

Publication Publication Date Title
DE112010005074T5 (de) Speicher-Gerät-Beanspruchung-ausgleichende Techniken
DE102017104150B4 (de) Abnutzungsausgleich in Speichervorrichtungen
DE112014006118B4 (de) Spekulatives Vorab-Holen von in einem Flash-Speicher gespeicherten Daten
DE112018004256T5 (de) Redundanzcodierstreifen basierend auf internen adressen von speichervorrichtungen
DE102017113439A1 (de) Abbildungstabellen für Speichervorrichtungen
DE102011076894B4 (de) Persistenter Speicher für einen Hauptspeicher eines Prozessors
DE112020000139T5 (de) Nicht sequentiell in zonen aufgeteilte namensräume
DE112011102487T5 (de) Zuordnen von logischen zu physischen Adressen in Halbleiterspeichereinheiten aufweisenden Speichersystemen
DE112020005060T5 (de) Ratengrenze für den übergang von zonen zum öffnen
DE112014005521T5 (de) Speichermodul und Verfahren zum Verwalten des Abbildens logischer Adressen auf physikalische Adressen
DE112018004252T5 (de) Redundanzcodierstreifen auf der basis eines koordinierten internen adressschemas über mehrere vorrichtungen
DE112017002941T5 (de) Arbeitslastoptimierte Datendeduplizierung mittels Phantomfingerabdrücken
DE102017104158A1 (de) Gültigkeitsverfolgung für garbage collection
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102013016609A1 (de) Vorrichtung und Verfahren für ein Storage Class Memory mit niedrigem Energieverbrauch, niedriger Latenz und hoher Kapazität
DE112014005570T5 (de) Deaktivieren von Seiten in einem Nand-Flash-Speicher-System
DE112020005180T5 (de) Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen
DE102005031525A1 (de) Verfahren und System zur Steuerung eines Flashspeichers und Speichersystem
DE102021115626A1 (de) Datenaggregation in zns-laufwerk
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE112020004958T5 (de) Dynamische zonenaktivgrenze für offenen zns
DE112020000183T5 (de) Speicherungsklassenspeicherzugriff
DE102021115500A1 (de) Hostverwaltete hardwarekomprimierung mit gezonten namensräumen
DE112022000468T5 (de) Unterschiedliche schreibpriorisierung in zns-vorrichtungen
DE112022002830T5 (de) Spiegeln von daten in schreibcaches eines controllers eines nicht flüchtigen speichers

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R409 Internal rectification of the legal status completed
R409 Internal rectification of the legal status completed
R016 Response to examination communication
R082 Change of representative

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final