DE112010005074T5 - Speicher-Gerät-Beanspruchung-ausgleichende Techniken - Google Patents
Speicher-Gerät-Beanspruchung-ausgleichende Techniken Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear 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ät230 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 LUN110 ist aus einer Kollektion von verschachtelten oder verschränkten (interleaved) physikalischen Blöcken120 von Speicher-Zellen zusammengesetzt. Jeder physikalische Block120 umfasst eine Mehrzahl von Seiten130 (z. B. eine spezifizierte Anzahl von Speicher-Zellen). In einer Implementierung können die physikalischen Blöcke120 eine Zweierpotenz Seiten (power of two pages) (z. B. ein Mehrfaches von 32 Seiten) umfassen. Eine Seite130 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 Speichers230 geschrieben werden. Im Allgemeinen, wenn Daten in einen physikalischen Block120 zu schreiben sind, welcher bereits Daten beinhaltet, dann muss der physikalische Block120 gelöscht werden, bevor die neuen Daten programmiert werden. Wenn die Blöcke120 von einem Block-programmierbaren Speichers230 direkt von Software geschrieben werden, können nicht-gleichförmige Adressmuster zu einer ungleichen Anzahl von Löschungen über die Mehrzahl von physikalischen Blöcken120 des Speichers230 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 Blocks120 überschreiten. Überschreiten der Dauerhaltbarkeits-Grenze (endurance limit) des Blocks120 würde die Betriebslebenszeit des Block-programmierbaren Speicher-Geräts230 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ät210 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 Verarbeitungseinheiten220 , welche kommunikativ mit dem Systemspeicher230 , einer Speicher-Steuerung240 und einer Mehrzahl von Block-programmierbaren Speicher-Geräten260 mittels eines oder mehrerer Kommunikationsbuse260 gekoppelt sind. Das elektronische Gerät210 kann auch andere Schaltungen, wie etwa Eingabe-/Ausgabe-Geräte270 und dergleichen umfassen. In einer Implementierung können die Mehrzahl von Block-programmierbaren Speicher-Geräten250 Flash-Speicher-Geräte sein. In einer Implementierung kann die Speicher-Steuerung240 Zugriff auf den System-Speicher230 , die Block-programmierbaren Speicher-Geräte250 und ein anderes Speicher-Gerät des elektronischen Geräts210 ermöglichen. Eines oder mehrere der Block-programmierbaren Speicher-Geräte250 können intern oder extern zu dem elektronischen Gerät210 sein. Die Speicher-Steuerung240 kann integral zu einer oder mehreren Schaltungen des elektronischen Geräts210 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ät210 eine Mehrzahl von Speicher-Steuerungen umfassen, wobei eine der Speicher-Steuerungen eine dedizierte Block-programmierbarer-Speicher-Steuerung240 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äte250 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 Cache280 zum Caching von persistenter-Zustand-Parametern (persistent state parameters) des einen oder der mehreren Block-programmierbaren Speicher-Geräte250 . Die Block-programmierbarer-Speicher-Steuerung240 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äte250 . Der persistenter-Zustand-Parameter-Cache280 kann separat sein oder kann integral zu der Block-programmierbaren Speicher-Steuerung240 sein. Die Block-programmierbarer-Speicher-Steuerung240 benutzt die gecachten persistenter-Zustand-Parameter280 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äte250 , 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-Steuerung240 aktualisiert die gecachten persistenter-Zustand-Parameter280 und archiviert (journals) dann periodisch die persistenter-Zustand-Parameter in den Block-programmierbaren Speicher-Geräten250 , um das Beanspruchung-Ausgleichen (wear-leveling) der Block-programmierbaren Speicher-Geräte250 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-Translator310 die logischer-Block-Adresse (LBA)315 und Länge320 , 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-Adresse315 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-Feld325 , ein logische-Einheit-Feld330 , ein Block-Feld335 , und ein Seiten-Feld340 . Für jede der N physikalischen Adressen ist das Geräte-Feld325 in eines der N-Chip-Freigabeen (CE)s für die adressierten Speicher-Geräte dekodiert. Das LUN-Feld330 spezifiziert die Adresse einer gegebenen logischen Einheit innerhalb des adressierten physikalischen Speicher-Geräts. Das Block-Feld335 spezifiziert die verschachtelte Adresse eines gegebenen Blocks innerhalb der spezifizierten LUN. Das Seiten-Feld340 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ät414 –425 wird ein gegebener physikalischer Block für jede LUN in einem Gerät gelesen, bei430 . In einer Implementierung wird Block 0 von jeder LUN gelesen. Bei435 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 . Bei445 wird auch die neueste Abbildung-Tabellen-Datenstruktur detektiert und für jede LUN von jedem angehängten Gerät gecacht. Bei450 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 . Bei460 wird auch eine Abbildung-Tabellen-Datenstruktur, welche logischer-Block-Adressen auf physikalische Block-Adressen abbildet (mapping), auch aufgebaut (oder erstellt) (build) und gecacht. Bei465 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, bei475 . Die Speicher-Zugriffsbefehle werden unter Benutzung des Adress-Translationsverfahrens, welches oben mit Bezug auf3 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 auf3 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)
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Elektronisches Gerät gemäß Anspruch 19, wobei der persistenter-Zustand-Parameter-Cache eine schlechter-Block-Datenstruktur, eine Abbildung-Datenstruktur und eine Reserveblock-Datenstruktur umfasst.
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)
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)
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 |
-
2009
- 2009-12-30 US US12/649,992 patent/US20110161553A1/en not_active Abandoned
-
2010
- 2010-11-23 GB GB1211590.3A patent/GB2489355B/en active Active
- 2010-11-23 WO PCT/US2010/057831 patent/WO2011090547A2/en active Application Filing
- 2010-11-23 DE DE112010005074T patent/DE112010005074T5/de not_active Ceased
- 2010-11-23 CN CN201080065039.1A patent/CN102792284B/zh active Active
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 |