DE102021116033A1 - Vereinfachte verwaltung von chips und blöcken mit hoher kapazität - Google Patents

Vereinfachte verwaltung von chips und blöcken mit hoher kapazität Download PDF

Info

Publication number
DE102021116033A1
DE102021116033A1 DE102021116033.2A DE102021116033A DE102021116033A1 DE 102021116033 A1 DE102021116033 A1 DE 102021116033A1 DE 102021116033 A DE102021116033 A DE 102021116033A DE 102021116033 A1 DE102021116033 A1 DE 102021116033A1
Authority
DE
Germany
Prior art keywords
meta
physical
blocks
chips
logical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021116033.2A
Other languages
English (en)
Inventor
Hiep Tran
Dhayanithi Rajendiran
Christopher Dinh
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of DE102021116033A1 publication Critical patent/DE102021116033A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

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

Abstract

Gesichtspunkte einer Speichervorrichtung, die einen Speicher und eine Steuerung einschließt, werden bereitgestellt, die Steuerungsverwaltung logischer und physischer Meta-Chips und Meta-Blöcke vereinfachen, indem sie ermöglichen, dass ein logischer Meta-Chip mehreren physischen Meta-Chips zugeordnet wird. Der Speicher schließt erste Chips ein, die in einem ersten physischen Meta-Chips gruppiert sind, und zweite Chips, die in einem zweiten physischen Meta-Chips gruppiert sind. Die physischen Meta-Chips schließen jeweils physische Meta-Blöcke ein. Die Steuerung bildet einen logischen Meta-Chip auf den ersten physischen Meta-Chip und den zweiten physischen Meta-Chip ab. Die Steuerung kann auch logische Meta-Blöcke des logischen Meta-Chips auf die physischen Meta-Blöcke abbilden. Zum Beispiel kann die Steuerung einen ersten logischen Meta-Block des logischen Meta-Chips dem ersten physischen Meta-Chip und einen zweiten logischen Meta-Block des logischen Meta-Chips dem zweiten physischen Meta-Chip zuordnen. Infolgedessen kann die Firmwarekomplexität beim Verwalten von Meta-Chips und Meta-Blöcken im Vergleich zu Eins-zu-Eins-Logische-zu-Physikalische-Meta-Chip-Abbildungs-Ansätzen reduziert werden.

Description

  • HINTERGRUND
  • Gebiet
  • Diese Offenbarung bezieht sich im Allgemeinen auf elektronische Vorrichtungen und insbesondere auf Speichervorrichtungen.
  • Einleitung
  • Speichervorrichtungen ermöglichen es Benutzern, Daten zu speichern und abzurufen. Beispiele von Speichervorrichtungen schließen Vorrichtungen für nicht-flüchtigen Speicher ein. Ein nicht-flüchtiger Speicher behält Daten im Allgemeinen nach einem Leistungszyklus bei. Ein Beispiel eines nicht-flüchtigen Speichers ist ein Flash-Speicher, der (eine) Anordnung(en) von NAND-Zellen auf einem oder mehreren Chips einschließen kann. Flash-Speicher kann in Festkörpervorrichtungen (SSDs), Secure Digital-Karten (SD-Karten) und dergleichen zu finden sein.
  • Eine Flash-Speichervorrichtung kann Steuerinformationen speichern, die Daten zugeordnet sind. Zum Beispiel kann eine Flash-Speichervorrichtung Steuertabellen unterhalten, die eine Abbildung von logischen Adressen auf physische Adressen einschließen. Diese Steuertabellen werden verwendet, um den physischen Ort von logischen Sektoren oder Blöcken in dem Flash-Speicher zu verfolgen. Die Steuertabellen sind in dem nicht-flüchtigen Speicher gespeichert, um einen Zugriff auf die gespeicherten Daten nach einem Leistungszyklus zu ermöglichen.
  • Flash-Speichervorrichtungen können viele Flash-Speicherblöcke einschließen, die Daten speichern. Zahlreiche Blöcke können in einem Chip enthalten sein, und Flash-Speichervorrichtungen können viele Chips einschließen. Darüber hinaus können Flash-Speichervorrichtungen mehrere Kanäle einschließen, über die Daten zu und von den Chips übertragen werden können. Zum Beispiel kann eine typische Flash-Speichervorrichtung hoher Kapazität vier oder mehr Kanäle einschließen, wobei jeder Kanal mit einem oder mehreren NAND-Pakete oder Chips gekoppelt ist, die jeweils mehrere Chips einschließen. Infolgedessen können Flash-Speichervorrichtungen Daten in mehreren Blöcken oder Chips gleichzeitig lesen oder schreiben.
  • KURZDARSTELLUNG
  • Ein Gesichtspunkt einer Speichervorrichtung wird hierin offenbart. Die Speichervorrichtung schließt einen Speicher und eine Steuerung ein. Der Speicher schließt eine Vielzahl von physischen Meta-Chips ein, wobei jeder physische Meta-Chip eine Vielzahl von Chips einschließt, wobei jeder der Chips in einem gleichen der physischen Meta-Chips mit einem anderen Kanal gekoppelt ist, und wobei zwei oder mehr der Chips in dem gleichen der physischen Meta-Chips eine andere Anzahl von Blöcken einschließen. Die Steuerung ist eingerichtet, um einen logischen Meta-Chip auf die physischen Meta-Chips abzubilden, wobei eine Gesamtzahl von Blöcken in den Chips, die mit einem der Kanäle gekoppelt sind, die gleiche ist wie eine Gesamtzahl von Blöcken in den Chips, die mit einem anderen der Kanäle gekoppelt sind.
  • Ein weiterer Gesichtspunkt einer Speichervorrichtung wird hierin offenbart. Die Speichervorrichtung schließt einen Speicher und eine Steuerung ein. Der Speicher schließt eine Vielzahl von physischen Meta-Chips ein, die jeweils eine Vielzahl von physischen Meta-Blöcken einschließen. Die Steuerung ist eingerichtet, um logische Meta-Blöcke eines logischen Meta-Chips auf die physischen Meta-Blöcke abzubilden, wobei einer der logischen Meta-Blöcke Blöcken in zwei oder mehr der physischen Meta-Chips zugeordnet ist.
  • Ein weiterer Gesichtspunkt einer Speichervorrichtung wird hierin offenbart. Die Speichervorrichtung schließt einen Speicher und eine Steuerung ein. Der Speicher schließt eine Vielzahl von physischen Meta-Chips ein, die jeweils eine Vielzahl von Chips aufweisen, wobei jeder der physischen Meta-Chips eine Vielzahl von physischen Meta-Blöcken einschließt und wobei jeder der Chips mit einem Kanal gekoppelt ist und eine Vielzahl von Blöcken einschließt. Die Steuerung ist eingerichtet, einen logischen Meta-Chip auf die physischen Meta-Chips abzubilden und logische Meta-Blöcke des logischen Meta-Chips auf die physischen Meta-Blöcke abzubilden, wobei ein erster der logischen Meta-Blöcke einem der physischen Meta-Chips zugeordnet ist und ein zweiter der logischen Meta-Blöcke zwei oder mehr der physischen Meta-Chips zugeordnet ist. Die Steuerung ist auch eingerichtet, um den ersten der logischen Meta-Blöcke aus einem ersten der Blöcke und den zweiten der logischen Meta-Blöcke aus einem zweiten der Blöcke zu identifizieren.
  • Es versteht sich, dass andere Gesichtspunkte der Speichervorrichtung für den Fachmann aus der folgenden detaillierten Beschreibung leicht ersichtlich werden, wobei verschiedene Gesichtspunkte von Einrichtungen und Verfahren zur Veranschaulichung gezeigt und beschrieben werden. Wie zu erkennen ist, können diese Gesichtspunkte in anderen und unterschiedlichen Formen implementiert werden und sind ihre verschiedenen Details in verschiedenen anderen Hinsichten zu einer Modifikation fähig. Dementsprechend sind die Zeichnungen und die detaillierte Beschreibung als veranschaulichend und nicht als einschränkend zu betrachten.
  • Figurenliste
  • Verschiedene Gesichtspunkte der vorliegenden Erfindung werden nun in der detaillierten Beschreibung als Beispiel und nicht als Einschränkung unter Bezugnahme auf die beigefügten Zeichnungen dargestellt, wobei gilt:
    • 1 ist ein Blockdiagramm, das eine beispielhafte Ausführungsform einer Speichervorrichtung in Kommunikation mit einer Host-Vorrichtung veranschaulicht.
    • 2 ist ein Konzeptdiagramm, das ein Beispiel einer logisch-zu-physisch-Abbildungstabelle in einem nicht-flüchtigen Speicher der Speichervorrichtung von 1 veranschaulicht.
    • 3 ist ein Konzeptdiagramm, das ein Beispiel einer Anordnung von Speicherzellen in der Speichervorrichtung von 1 veranschaulicht.
    • 4 ist ein Konzeptdiagramm, das ein Beispiel einer Anordnung von Blöcken in der Speichervorrichtung von 1 veranschaulicht.
    • 5 ist ein grafisches Diagramm, das ein Beispiel eines Spannungsverteilungsdiagramms für Dreifach-Level-Zellen in der Speichervorrichtung von 1 veranschaulicht.
    • 6 ist ein Konzeptdiagramm, das ein Beispiel für mehrere NAND-Chips veranschaulicht, die mit einer Steuerung der Speichervorrichtung von 1 verbunden sind.
    • 7 ist ein Konzeptdiagramm, das ein Beispiel für logische und physische Meta-Chip-Abbildungstabellen in der Speichervorrichtung von 1 zeigt.
    • 8 ist ein Konzeptdiagramm, das ein Beispiel für logische und physische Meta-Block-Abbildungstabellen in der Speichervorrichtung von 1 zeigt.
    • 9 ist ein Konzeptdiagramm, das ein Beispiel einer Steuerung veranschaulicht, die einen logischen Meta-Chip auf einen einzelnen physischen Meta-Chip in der Speichervorrichtung von 1 abbildet.
    • 10 ist ein Konzeptdiagramm, das ein Beispiel von Blöcken in verschiedenen Chips eines einzelnen physischen Meta-Chips veranschaulicht, die einem einzelnen logischen Meta-Chip in der Speichervorrichtung von 1 zugeordnet sind.
    • 11 ist ein konzeptionelles Diagramm, das ein Beispiel von Blöcken in verschiedenen Chips von mehreren physischen Meta-Chips veranschaulicht, die einem einzelnen logischen Meta-Chip in der Speichervorrichtung von 1 zugeordnet sind.
    • 12 ist ein Konzeptdiagramm, das ein Beispiel einer Steuerung veranschaulicht, die einen logischen Meta-Chip auf mehrere physische Meta-Chips in der Speichervorrichtung von 1 abbildet.
    • 13 ist ein konzeptionelles Diagramm, das ein Beispiel logischer Meta-Blöcke eines einzelnen logischen Meta-Chips veranschaulicht, die mehreren physischen Meta-Chips in der Speichervorrichtung von 1 zugeordnet sind.
    • 14 ist ein Flussdiagramm, das ein Verfahren zum Abbilden logischer Meta-Blöcke eines einzelnen logischen Meta-Chips auf Blöcke in mehreren physischen Meta-Chips veranschaulicht, wie durch die Speichervorrichtung von 1 durchgeführt.
    • 15 ist ein Flussdiagramm, das ein Verfahren zum Identifizieren eines logischen Meta-Blocks eines einzelnen logischen Meta-Chips aus einem Block in einem von mehreren physischen Meta-Chips veranschaulicht, die dem einzelnen logischen Meta-Chip zugeordnet sind, wie durch die Speichervorrichtung von 1 durchgeführt.
    • 16 ist ein Flussdiagramm, das ein Verfahren zum Abbilden eines logischen Meta-Chips auf physische Meta-Chips und logische Meta-Blöcke des logischen Meta-Chips auf physische Meta-Blöcke der physischen Meta-Chips veranschaulicht, wie es von der Speichervorrichtung von 1 durchgeführt wird.
    • 17 ist ein Konzeptdiagramm, das ein Beispiel einer Steuerung veranschaulicht, die einen logischen Meta-Chip auf physische Meta-Chips und logische Meta-Blöcke des logischen Meta-Chips auf physische Meta-Blöcke der physischen Meta-Chips in der Speichervorrichtung von 1 abbildet.
  • DETAILLIERTE BESCHREIBUNG
  • Die nachstehend dargelegte detaillierte Beschreibung in Verbindung mit den beigefügten Zeichnungen ist als eine Beschreibung verschiedener beispielhafter Ausführungsformen der vorliegenden Offenbarung gedacht und soll nicht die einzigen Ausführungsformen darstellen, in denen die vorliegende Erfindung praktisch umgesetzt werden kann. Die detaillierte Beschreibung schließt spezifische Details ein, um ein gründliches Verständnis der vorliegenden Erfindung bereitzustellen. Jedoch ist es für einen Fachmann ersichtlich, dass die vorliegende Erfindung ohne diese spezifischen Details praktisch umgesetzt werden kann. In einigen Fällen sind hinlänglich bekannte Strukturen und Komponenten in Blockdiagrammform gezeigt, um zu vermeiden, dass die Konzepte der vorliegenden Erfindung unklar werden. Akronyme und andere beschreibende Terminologie können lediglich der Einfachheit und Klarheit halber verwendet werden und sollen den Schutzumfang der Erfindung nicht einschränken.
  • Die Wörter „beispielhaft“ und „Beispiel“ werden hierin in der Bedeutung von „als ein Beispiel oder Fall oder zur Veranschaulichung dienend“ verwendet. Jede hierin als „beispielhaft“ beschriebene beispielhafte Ausführungsform ist nicht zwangsläufig als bevorzugt oder vorteilhaft gegenüber anderen beispielhaften Ausführungsformen auszulegen. Gleichermaßen erfordert der Begriff „beispielhafte Ausführungsform“ einer Vorrichtung, eines Verfahrens oder eines Herstellungsartikels nicht, dass alle beispielhaften Ausführungsformen der Erfindung die beschriebene(n) Komponenten, Struktur, Merkmale, Funktionalität, Prozesse, Vorteile, Nutzen oder Betriebsmodi einschließen.
  • Unter dem Begriff „gekoppelt“ wird im Rahmen der vorliegenden Erfindung entweder eine direkte Verbindung zwischen zwei Komponenten oder gegebenenfalls eine indirekte Verbindung untereinander durch zwischengeschaltete oder dazwischen liegende Komponenten verstanden. Wenn dagegen eine Komponente als mit einer anderen Komponente „direkt gekoppelt“ bezeichnet wird, sind hingegen keine zwischengeschalteten Elemente vorhanden.
  • In der folgenden detaillierten Beschreibung werden verschiedene Gesichtspunkte einer Speichervorrichtung in Kommunikation mit einer Host-Vorrichtung dargestellt. Diese Gesichtspunkte sind für Flash-Speichervorrichtungen, wie SSDs und SD-Karten, gut geeignet. Jedoch wird der Fachmann erkennen, dass diese Gesichtspunkte auf alle Typen von Speichervorrichtungen, die zum Speichern von Daten in der Lage sind, ausgedehnt werden können. Entsprechend soll jede Bezugnahme auf eine bestimmte Einrichtung oder ein bestimmtes Verfahren nur die verschiedenen Gesichtspunkte der vorliegenden Erfindung veranschaulichen, wobei davon ausgegangen wird, dass diese Gesichtspunkte einen weiten Bereich von Anwendungen aufweisen können, ohne vom Schutzumfang und Geist der vorliegenden Offenbarung abzuweichen.
  • Eine Flash-Speichervorrichtung kann mehrere Kanäle einschließen, die jeweils mit mehreren Chips gekoppelt sind, wodurch ermöglicht wird, dass mehrere Blöcke des NAND-Speichers gleichzeitig gelesen oder geschrieben werden. Beim Lesen oder Schreiben von Host-Daten in diese Blöcke kann die Flash-Speichervorrichtung Firmware einschließen, die eine Übersetzung von logisch in physische Adressen durchführt. Zum Beispiel kann die Flash-Speichervorrichtung eine Host-Adresse, die den Daten zugeordnet ist, in eine logische NAND-Adresse übersetzen, die logische NAND-Adresse in eine physische NAND-Adresse umwandeln und dann Daten in dem Block, der der physischen NAND-Adresse zugeordnet ist, lesen oder schreiben. Diese Funktionalität kann in mehreren Schichten von Firmware implementiert sein, einschließlich zum Beispiel einer Flash-Übersetzungsschicht (FTL), die die logische Adressumsetzung durchführt, und einer physikalischen Speicherschicht (PS), die die physische Adressumsetzung durchführt.
  • Die Flash-Speichervorrichtung kann mehrere Chips für parallele Lese-und Schreibvorgänge verwalten, indem sie die Chips logisch in logische Meta-Chips gruppiert und die Chips physisch in physische Meta-Chips gruppiert. Ein logischer Meta-Chip ist eine logische Gruppierung von Chips, und ein physischer Meta-Chip ist eine physische Gruppierung von Chips, die parallel gelesen oder geschrieben werden können. Zum Beispiel kann ein logischer Meta-Chip durch eine einzelne Adresse angezeigt werden, die logischen Adressen zugeordnet ist, die verschiedenen Chips zugeordnet sind, und ein physischer Meta-Chip kann durch eine einzelne Adresse angezeigt werden, die physischen Adressen zugeordnet ist, die Chips zugeordnet sind, die mit verschiedenen Kanälen gekoppelt sind. In ähnlicher Weise kann die Flash-Speichervorrichtung mehrere Blöcke in verschiedenen Chips für parallele Lese-und Schreibvorgänge verwalten, indem sie die Blöcke logisch in logische Meta-Blöcke gruppiert und die Blöcke physisch in physische Meta-Blöcke gruppiert. Ein logischer Meta-Block ist eine logische Gruppierung von Blöcken, und ein physikalischer Meta-Block ist eine physische Gruppierung von Blöcken, die parallel gelesen oder geschrieben werden können. Zum Beispiel kann ein logischer Meta-Block durch eine einzelne Adresse angezeigt werden, die logischen Adressen zugeordnet ist, die verschiedenen Blöcken zugeordnet sind, und ein physischer Meta-Block kann durch eine einzelne Adresse angezeigt werden, die physischen Adressen zugeordnet ist, die Blöcken in Chips zugeordnet sind, die mit verschiedenen Kanälen gekoppelt sind.
  • Im Allgemeinen kann eine Flash-Speichervorrichtung einen einzelnen logischen Meta-Chip, der logische Meta-Blöcke einschließt, auf einen einzelnen physischen Meta-Chip, der physische Meta-Blöcke einschließt, abbilden. Wenn zum Beispiel eine Flash-Speichervorrichtung mehrere Kanäle einschließt, kann die Flash-Speichervorrichtung einen Chip auf jedem Kanal zusammengruppieren, um einen physischen Meta-Chip zu bilden, und diese Chips einer physischen Meta-Chip-Adresse zuordnen, da die Flash-Speichervorrichtung Daten an diese Chips gleichzeitig über ihre jeweiligen Kanäle senden oder Daten von diesen empfangen kann. Die Flash-Speichervorrichtung kann diese Chips auch zusammengruppieren, um einen logischen Meta-Chip zu bilden, der einer logischen Meta-Chip-Adresse zugeordnet ist, und die logische Meta-Chip-Adresse auf die physische Meta-Chip-Adresse abbilden, indem ein Eintrag in einer oder mehreren Abbildungstabellen erzeugt wird. In ähnlicher Weise kann die Flash-Speichervorrichtung einen Block in jeder Ebene eines Chips auf jedem Kanal zusammen gruppieren, um einen physischen Meta-Block zu bilden, und diese Blöcke einer physischen Meta-Blockadresse zuordnen, da die Flash-Speichervorrichtung ebenfalls Daten an diese Blöcke gleichzeitig über ihre jeweiligen Kanäle, Chips und Ebenen senden oder Daten von diesen empfangen kann. Die Flash-Speichervorrichtung kann auch diese Blöcke zusammengruppieren, um einen logischen Meta-Block zu bilden, der einer logischen Meta-Blockadresse zugeordnet ist, und die logische Meta-Blockadresse auf die physische Meta-Blockadresse abbilden, indem ein Eintrag in der einen oder den mehreren Abbildungstabellen erzeugt wird.
  • Ferner können Chips und Blöcke hinzugefügt werden, um die Speicherkapazität der Flash-Speichervorrichtung zu erhöhen. Zum Beispiel kann ein NAND-Chip, der mehrere Chips und zahlreiche Blöcke einschließt, zu einem oder mehreren Kanälen der Flash-Speichervorrichtung hinzugefügt werden, um die Kapazität zu erhöhen und möglicherweise gleichzeitigere Lese- oder Schreibvorgänge zu ermöglichen. In einem solchen Fall kann die Flash-Speichervorrichtung die hinzugefügten Chips in neue logische Meta-Chips und physische Meta-Chips gruppieren sowie die hinzugefügten Blöcke in neue logische Meta-Blöcke und physische Meta-Blöcke gruppieren. Darüber hinaus kann die Flash-Speichervorrichtung jeden neuen logischen Meta-Chip (einschließlich der logischen Meta-Blöcke) jeweils auf jeden neuen physischen Meta-Chip (einschließlich der physischen Meta-Blöcke) abbilden, sodass jeder einzelne logische Meta-Chip auf jeden einzelnen physischen Meta-Chip abgebildet wird.
  • Jedoch kann das Beibehalten der Eins-zu-Eins-Abbildung logischer Meta-Chips zu physischen Meta-Chips in einem solchen Fall zu einer zusätzlichen Komplexität der Firmware führen. Wenn zum Beispiel ein neuer NAND-Chip zu mehreren vorhandenen Kanälen der Flash-Speichervorrichtung hinzugefügt wird, kann die Flash-Speichervorrichtung typischerweise einen Chip in jedem neuen NAND-Chip zusammengruppieren, um einen neuen logischen Meta-Chip zu bilden, diesen logischen Meta-Chip einer neuen logischen Meta-Chip-Adresse zuordnen, die Chips zusammengruppieren, um auch einen physischen Meta-Chip zu bilden, dieses physischen Meta-Chips mit einer neuen physischen Meta-Chip-Adresse assoziieren und die neue logische Meta-Chip-Adresse auf die neue physische Meta-Chip-Adresse abbilden durch Erzeugen eines neuen Eintrags in einer oder mehreren Abbildungstabellen. Die Flash-Speichervorrichtung kann typischerweise auch einen Block in jeder Ebene des Chips in jedem neuen NAND-Chip zusammengruppieren, um einen neuen logischen Meta-Block zu bilden, diesen logischen Meta-Block einer neuen logischen Meta-Blockadresse zuordnen, die Blöcke miteinander gruppieren, um auch einen physischen Meta-Block zu bilden, diese physischen Meta-Blocks mit einer neuen physischen Meta-Blockadresse assoziieren und die neuen physischen Meta-Blockadresse auf die neue logische Meta-Blockadresse durch Erzeugen eines neuen Eintrags in der einen oder den mehreren Abbildungstabellen abbilden. Eine solche Erzeugung neuer logischer Meta-Chip-(und Block-) Adressen und Abbildungstabelleneinträge kann zu einer erhöhten Firmwarekomplexität führen. Alternativ, wenn die Flash-Speichervorrichtung einen Chip oder Block in jedem neuen NAND-Chip zu einem vorhandenen physischen Meta-Chip oder physischen Meta-Block gruppiert (z.B., wenn die neuen NAND-Chips zu neuen Kanälen hinzugefügt werden, oder um das Erzeugen neuer physischer Meta-Chips und somit neuer logischer Meta-Chips zu vermeiden), kann die Flash-Speichervorrichtung zusätzliche Exklusiv- oder- (XOR-) Paritätsprüfungen zur Fehlerkorrektur aufgrund der Vergrößerung des physischen Meta-Chips oder physischen Meta-Blocks durchführen. Dieser zusätzliche Datenschutz bei Lese- oder Schreibausfall kann ferner zu einer erhöhten Firmwarekomplexität führen. Darüber hinaus kann das Erhöhen der Größe vorhandener physischer Meta-Chips zu einem signifikant erhöhten Stromverbrauch führen oder durch thermische Überlegungen begrenzt werden.
  • Um die Verwaltung hinzugefügter Chips und Blöcke für eine erhöhte Speicherkapazität zu vereinfachen, kann die Flash-Speichervorrichtung dementsprechend logische Meta-Chips auf mehrere physische Meta-Chips gemäß einer Eins-zu-Vielen-Abbildung abbilden. Zum Beispiel kann die Flash-Speichervorrichtung nach dem Zusammengruppieren von Chips zu einem physischen Meta-Chip und dem Zuordnen dieses physischen Meta-Chips zu einer neuen physischen Meta-Chip-Adresse, wie vorstehend beschrieben, die neue physische Meta-Chip-Adresse auf eine vorhandene logische Meta-Chip-Adresse in der Abbildungstabelle abbilden. Darüber hinaus kann die Flash-Speichervorrichtung nach dem Zusammengruppieren von Blöcken zu einem physischen Meta-Block und dem Zuordnen dieses physischen Meta-Blocks zu einer neuen physischen Meta-Blockadresse, wie vorstehend beschrieben, die neue physische Meta-Blockadresse auf eine neue logische Meta-Blockadresse abbilden, die der vorhandenen logischen Meta-Chipadresse zugeordnet ist. Somit kann die Flash-Speichervorrichtung mehrere physische Meta-Chips demselben logischen Meta-Chip zuordnen, anstatt einen neuen logischen Meta-Chip für jeden physischen Meta-Chip zu erzeugen. In ähnlicher Weise kann die Flash-Speichervorrichtung mehrere physische Meta-Blöcke verschiedener physischer Meta-Chips logischen Meta-Blöcken in demselben logischen Meta-Chip zuordnen.
  • Auf diese Weise kann die Eins-zu-Viele-Zuordnung logischer Meta-Chips zu physischen Meta-Chips die Firmware-Komplexität im Gegensatz zu der oben beschriebenen Eins-zu-Eins-Abbildung reduzieren. Zum Beispiel kann eine solche Eins-zu-Vielen-Abbildung es der Flash-Speichervorrichtung ermöglichen, das Erzeugen neuer logischer Meta-Chip-Adressen und das individuelle Abbildung dieser Adressen zu jeweiligen physischen Meta-Chip-Adressen zu vermeiden. Darüber hinaus kann ein solcher Ansatz es der Flash-Speichervorrichtung ermöglichen, ihr Datenschutzschema zu vereinfachen, indem dieselbe Anzahl von XOR-Paritätsprüfungen in neuen physischen Meta-Chips wie in bestehenden physischen Meta-Chips beibehalten wird, da neue Chips in neue physische Meta-Chips gruppiert werden können, die die dieselbe Größe wie existierende physische Meta-Chips aufweisen, anstatt zu einem existierenden physischen Meta-Chips hinzugefügt zu werden (und dessen Größe zu erhöhen).
  • 1 zeigt ein beispielhaftes Blockdiagramm 100 einer Speichervorrichtung 102, die mit einer Host-Vorrichtung 104 (auch „Host“) gemäß einer beispielhaften Ausführungsform kommuniziert. Der Host 104 und die Speichervorrichtung 102 können ein System, wie ein Computersystem (z. B. Server, Desktop, Mobiltelefon/Laptop, Tablet, Smartphone usw.), bilden. Die Komponenten von 1 können physisch zusammen angeordnet sein oder nicht. In dieser Hinsicht kann der Host 104 entfernt von der Speichervorrichtung 102 angeordnet sein. Wenngleich 1 veranschaulicht, dass der Host 104 getrennt von der Speichervorrichtung 102 gezeigt ist, kann der Host 104 in anderen Ausführungsformen ganz oder teilweise in die Speichervorrichtung 102 integriert sein. Alternativ dazu kann der Host 104 in seiner Gesamtheit oder alternativ mit einiger Funktionalität in der Speichervorrichtung 102 über mehrere entfernte Einheiten verteilt sein.
  • Der Fachmann wird erkennen, dass andere beispielhafte Ausführungsformen mehr oder weniger als die in 1 gezeigten Elemente einschließen können und dass die offenbarten Prozesse in anderen Umgebungen implementiert werden können. Zum Beispiel können andere beispielhafte Ausführungsformen eine unterschiedliche Anzahl von Hosts, die mit der Speichervorrichtung 102 kommunizieren, oder mehrere Speichervorrichtungen 102, die mit dem/den Host(s) kommunizieren, einschließen.
  • Die Host-Vorrichtung 104 kann Daten in der Speichervorrichtung 102 speichern und/oder Daten von dieser abrufen. Die Host-Vorrichtung 104 kann eine beliebige Rechenvorrichtung einschließen, einschließlich zum Beispiel eines Computerservers, einer Network Attached Storage-Einheit (NAS-Einheit), eines Desktop-Computers, eines Notebook-Computers (z. B. eines Laptop-Computers), eines Tablet-Computers, einer mobilen Rechenvorrichtung, wie eines Smartphones, eines Fernsehers, einer Kamera, einer Anzeigevorrichtung, eines digitalen Medienwiedergabegeräts, einer Videospielkonsole, einer Videostreaming-Vorrichtung oder dergleichen. Die Host-Vorrichtung 104 kann mindestens einen Prozessor 101 und einen Host-Speicher 103 einschließen. Der mindestens eine Prozessor 101 kann eine beliebige Form von Hardware einschließen, die zum Verarbeiten von Daten in der Lage ist, und kann eine Universalverarbeitungseinheit (wie eine zentrale Verarbeitungseinheit (CPU)), eine dedizierte Hardware (wie eine anwendungsspezifische integrierte Schaltung (ASIC)), einen Digitalsignalprozessor (DSP), konfigurierbare Hardware (wie eine feldprogrammierbare Gatteranordnung, FPGA) oder eine beliebige andere Form von Verarbeitungseinheit, die durch Softwareanweisungen, Firmware oder dergleichen eingerichtet ist, einschließen. Der Host-Speicher 103 kann durch die Host-Vorrichtung 104 verwendet werden, um durch den Host verarbeitete Daten oder Anweisungen oder von der Speichervorrichtung 102 empfangene Daten zu speichern. In einigen Beispielen kann der Host-Speicher 103 nicht-flüchtigen Speicher, wie magnetische Speichervorrichtungen, optische Speichervorrichtungen, holografische Speichervorrichtungen, Flash-Speichervorrichtungen (z. B. NAND oder NOR), Phasenwechselspeichervorrichtungen (PCM-Vorrichtungen), resistive Direktzugriffsspeicher-Vorrichtungen (ReRAM-Vorrichtungen), magnetoresistive Direktzugriffsspeicher-Vorrichtungen (MRAM-Vorrichtungen), ferroelektrische Direktzugriffsspeicher-Vorrichtungen (F-RAM-Vorrichtungen) und einen beliebigen anderen Typ von nicht-flüchtigen Speichervorrichtungen, einschließen. In anderen Beispielen kann der Host-Speicher 103 flüchtigen Speicher, wie Direktzugriffsspeicher (RAM), dynamischen Direktzugriffsspeicher (DRAM), statischen RAM (SRAM) und synchronen dynamischen RAM (SDRAM (z. B. DDR1, DDR2, DDR3, DDR3L, LPDDR3, DDR4 und dergleichen) einschließen. Der Host-Speicher 103 kann auch sowohl nicht-flüchtigen Speicher als auch flüchtigen Speicher, egal ob miteinander integriert oder als diskrete Einheiten, einschließen.
  • Die Host-Schnittstelle 106 ist eingerichtet, um die Speichervorrichtung 102 mit dem Host 104 über einen Bus/ein Netzwerk 108 zu verbinden, und kann die Verbindung unter Verwendung von zum Beispiel Ethernet oder WiFi oder einem Bus-Standard, wie Serial Advanced Technology Attachment (SATA), PCI express (PCle), Small Computer System Interface (SCSI) oder Serial Attached SCSI (SAS) neben anderen möglichen Kandidaten, herstellen. Alternativ dazu kann die Host-Schnittstelle 106 drahtlos sein und kann die Speichervorrichtung 102 unter Verwendung von zum Beispiel einer Mobilfunkkommunikation (z. B. 5G NR, 4G LTE, 3G, 2G, GSM/UMTS, CDMA One/CDMA2000 usw.), drahtlosen Verteilungsverfahren durch Zugangspunkte (z. B. IEEE 802.11, WiFi, HiperLAN usw.), Infrarot (IR), Bluetooth, Zigbee oder einer anderen Technologie für ein drahtloses Weitverkehrsnetzwerk (WWAN), ein drahtloses lokales Netzwerk (WLAN), ein drahtloses persönliches Netzwerk (WPAN) oder vergleichbaren Technologien für ein Weitverkehrsnetzwerk, ein lokales Netzwerk und ein persönliches Netzwerk mit dem Host 104 verbinden.
  • Die Speichervorrichtung 102 schließt einen Speicher ein. In der beispielhaften Ausführungsform von 1 kann die Speichervorrichtung 102 einen nicht-flüchtigen Speicher (NVM) 110 zum dauerhaften Speichern von vom Host 104 empfangenen Daten enthalten. Der NVM 110 kann zum Beispiel integrierte Flash-Schaltungen, NAND-Speicher (z. B. Single-Level-Zellen-Speicher (SLC-Speicher), Multi-Level-Zellen-Speicher (MLC-Speicher), Triple-Level-Zellen-Speicher (TLC-Speicher), Quad-Level-Zellen-Speicher (QLC-Speicher), Penta-Level-Zellen-Speicher (PLC-Speicher) oder eine beliebige Kombination davon) oder NOR-Speicher einschließen. Der NVM 110 kann eine Vielzahl von Speicherorten 112 einschließen, die Systemdaten zum Betreiben der Speichervorrichtung 102 oder Benutzerdaten, die von dem Host zur Speicherung in der Speichervorrichtung 102 empfangen werden, speichern können. Zum Beispiel kann der NVM eine Cross-Point-Architektur, einschließlich einer 2-D-NAND-Anordnung von Speicherorten 112 mit n Zeilen und m Spalten, einschließen, wobei m und n gemäß der Größe des NVM vordefiniert sind. In der beispielhaften Ausführungsform von 1 kann jeder Speicherort 112 ein Chip 114 sein, der mehrere Ebenen einschließt, die jeweils mehrere Blöcke von mehreren Zellen 116 einschließen. Alternativ kann jeder Speicherort 112 eine Ebene sein, die mehrere Blöcke der Zellen 116 einschließt. Die Zellen 116 können zum Beispiel Single-Level-Zellen, Multi-Level-Zellen, Triple-Level-Zellen, Quad-Level-Zellen und/oder Penta-Level-Zellen sein. Andere Beispiele von Speicherorten 112 sind möglich; zum Beispiel kann jeder Speicherort ein Block oder eine Gruppe von Blöcken sein. Jeder Speicherort kann einen oder mehrere Blöcke in einer 3-D-NAND-Anordnung einschließen. Jeder Speicherort 112 kann einen oder mehrere logische Blöcke einschließen, die auf einen oder mehrere physische Blöcke abgebildet werden. Alternativ können der Speicher und jeder Speicherplatz auf andere dem Fachmann bekannte Weise implementiert werden.
  • Die Speichervorrichtung 102 schließt außerdem einen flüchtigen Speicher 118 ein, der zum Beispiel einen dynamischen Direktzugriffsspeicher (DRAM) oder einen statischen Direktzugriffsspeicher (SRAM) einschließen kann. Daten, die in einem flüchtigen Speicher 118 gespeichert sind, können Daten, die aus dem NVM 110 gelesen werden, oder Daten, die in den NVM 110 geschrieben werden sollen, einschließen. In dieser Hinsicht kann der flüchtige Speicher 118 einen Schreibpuffer oder einen Lesepuffer zum temporären Speichern von Daten einschließen. Während 1 den flüchtigen Speicher 118 als von einer Steuerung 123 der Speichervorrichtung 102 entfernt veranschaulicht, kann der flüchtige Speicher 118 in die Steuerung 123 integriert sein.
  • Der Speicher (z. B. der NVM 110) ist eingerichtet, um Daten 119, die von der Host-Vorrichtung 104 empfangen werden, zu speichern. Die Daten 119 können in den Zellen 116 eines beliebigen der Speicherorte 112 gespeichert sein. Als ein Beispiel veranschaulicht 1 die Daten 119, die an verschiedenen Speicherorten 112 gespeichert sind, obwohl die Daten an dem gleichen Speicherort gespeichert sein können. In einem anderen Beispiel können die Speicherorte 112 verschiedene Chips sein und die Daten in einem oder mehreren der verschiedenen Chips gespeichert sein.
  • Alle der Daten 119 können einer logischen Adresse zugeordnet sein. Zum Beispiel kann der NVM 110 eine logisch-zu-physisch-Abbildungstabelle (L2P-Abbildungstabelle) 120 für die Speichervorrichtung 102 speichern, die allen Daten 119 eine logische Adresse zuordnet. Die L2P-Abbildungstabelle 120 speichert die Abbildung von logischen Adressen, die für Daten spezifiziert sind, die von dem Host 104 geschrieben werden, auf physische Adressen in dem NVM 110, wobei der/die Ort(e) angegeben werden, in denen alle der Daten gespeichert sind. Diese Abbildung kann durch die Steuerung 123 der Speichervorrichtung durchgeführt werden. Die L2P-Abbildungstabelle kann eine Tabelle oder eine andere Datenstruktur sein, die eine Kennung einschließt, wie eine logische Blockadresse (LBA), die jedem Speicherort 112 in dem NVM, in dem Daten gespeichert sind, zugeordnet ist. Während 1 eine einzelne L2P-Abbildungstabelle 120 veranschaulicht, die an einem der Speicherorte 112 von NVM gespeichert ist, um eine unangemessene Verunklarung der Konzepte von 1 zu vermeiden, kann die L2P-Abbildungstabelle 120 tatsächlich mehrere Tabellen einschließen, die an einem oder mehreren Speicherorten von NVM gespeichert sind.
  • 2 ist ein Konzeptdiagramm 200 eines Beispiels einer L2P-Abbildungstabelle 205, die die Abbildung von Daten 202, die von einer Host-Vorrichtung empfangen werden, auf logische Adressen und physische Adressen in dem NVM 110 von 1 veranschaulicht. Die Daten 202 können den Daten 119 in 1 entsprechen, während die L2P-Abbildungstabelle 205 der L2P-Abbildungstabelle 120 in 1 entsprechen kann. In einer beispielhaften Ausführungsform können die Daten 202 in einer oder mehreren Seiten 204 gespeichert sein, z. B. Seiten 1 bis x, wobei x die Gesamtanzahl von Seiten von Daten ist, die in den NVM 110 geschrieben werden. Jede Seite 204 kann einem oder mehreren Einträgen 206 der L2P-Abbildungstabelle 205 zugeordnet sein, die eine logische Blockadresse (LBA) 208, eine physische Adresse 210, die den in den NVM geschriebenen Daten zugeordnet ist, und eine Länge 212 der Daten identifizieren. Die LBA 208 kann eine logische Adresse sein, die in einem Schreibbefehl für die von der Host-Vorrichtung empfangenen Daten spezifiziert ist. Die physische Adresse 210 kann den Block und die Verschiebung angeben, bei denen die Daten, die der LBA 208 zugeordnet sind, physisch geschrieben werden. Die Länge 212 kann eine Größe der geschriebenen Daten angeben (z. B. 4 KB oder eine andere Größe).
  • Unter erneuter Bezugnahme auf 1 speichert der flüchtige Speicher 118 außerdem einen Cache 122 für die Speichervorrichtung 102. Der Cache 122 schließt Einträge ein, die die Abbildung von logischen Adressen, die für Daten spezifiziert sind, die durch den Host 104 angefordert werden, auf physische Adressen in dem NVM 110 zeigen, wobei der/die Ort(e) angegeben werden, in denen die Daten gespeichert sind. Diese Abbildung kann durch die Steuerung 123 durchgeführt werden. Wenn die Steuerung 123 einen Lesebefehl oder einen Schreibbefehl für die Daten 119 empfängt, prüft die Steuerung den Cache 122 auf die logisch-zu-physisch-Abbildung aller Daten. Wenn eine Abbildung nicht vorhanden ist (es z. B. die erste Anforderung für die Daten ist), greift die Steuerung auf die L2P-Abbildungstabelle 120 zu und speichert die Abbildung in dem Cache 122. Wenn die Steuerung 123 den Lesebefehl oder Schreibbefehl ausführt, greift die Steuerung auf die Abbildung aus dem Cache zu und liest die Daten aus dem NVM 110 an der spezifizierten physischen Adresse oder schreibt sie in diesen. Der Cache kann in Form einer Tabelle oder einer anderen Datenstruktur gespeichert sein, die eine logische Adresse einschließt, die jedem Speicherort 112 in NVM zugeordnet ist, wo Daten gelesen werden.
  • Der NVM 110 schließt den Abtastverstärker 124 und Daten-Latches 126 ein, die mit jedem Speicherort 112 verbunden sind. Zum Beispiel kann der Speicherort 112 ein Block sein, der Zellen 116 auf mehreren Bitleitungen einschließt und der NVM 110 kann einen Abtastverstärker 124 auf jeder Bitleitung einschließen. Darüber hinaus können ein oder mehrere Daten-Latches 126 mit den Bitleitungen und/oder Abtastverstärkern verbunden sein. Bei den Daten-Latches kann es sich zum Beispiel um Schieberegister handeln. Wenn Daten aus den Zellen 116 des Speicherorts 112 gelesen werden, tasten die Abtastverstärker 124 die Daten durch Verstärken der Spannungen auf den Bitleitungen auf einen logischen Pegel (z. B. lesbar als eine „0“ oder eine „1“) ab und die abgetasteten Daten werden in den Daten-Latches 126 gespeichert. Die Daten werden dann von den Daten-Latches 126 an die Steuerung 123 übertragen, wonach die Daten in dem flüchtigen Speicher 118 gespeichert werden, bis sie an die Host-Vorrichtung 104 übertragen werden. Wenn Daten in die Zellen 116 des Speicherorts 112 geschrieben werden, speichert die Steuerung 123 die programmierten Daten in den Daten-Latches 126 und werden die Daten anschließend von den Daten-Latches 126 an die Zellen 116 übertragen.
  • Die Speichervorrichtung 102 schließt eine Steuerung 123 ein, die Schaltlogik, wie einen oder mehrere Prozessoren zum Ausführen von Anweisungen einschließt, und kann eine Mikrosteuerung, einen Digitalsignalprozessor (DSP), eine anwendungsspezifische integrierte Schaltung (ASIC), eine feldprogrammierbare Gatteranordnung (FPGA), festverdrahtete Logik, analoge Schaltlogik und/oder eine Kombination davon einschließen.
  • Die Steuerung 123 ist eingerichtet, um Daten zu empfangen, die von einer oder mehreren der Zellen 116 der verschiedenen Speicherorte 112 als Reaktion auf einen Lesebefehl übertragen werden. Zum Beispiel kann die Steuerung 123 die Daten 119 lesen, indem sie die Abtastverstärker 124 aktiviert, um die Daten aus den Zellen 116 in Daten-Latches 126 abzutasten, und die Steuerung 123 kann die Daten von den Daten-Latches 126 empfangen. Die Steuerung 123 ist außerdem eingerichtet, um als Reaktion auf einen Schreibbefehl Daten in eine oder mehrere der Zellen 116 zu programmieren. Zum Beispiel kann die Steuerung 123 die Daten 119 schreiben, indem sie Daten an die Daten-Latches 126 sendet, um in die Zellen 116 programmiert zu werden. Die Steuerung 123 ist ferner eingerichtet, um beim Lesen oder Schreiben von Daten in die Zellen 116 auf die L2P-Abbildungstabelle 120 in dem NVM 110 zuzugreifen. Zum Beispiel kann die Steuerung 123 logisch-zu-physisch-Adressabbildungen von dem NVM 110 als Reaktion auf Lese- oder Schreibbefehle von der Host-Vorrichtung 104 empfangen, die physischen Adressen identifizieren, die auf die logischen Adressen abgebildet sind, die in den Befehlen identifiziert sind, (z. B. die logischen Adressen in physische Adressen übersetzen) und auf Daten in den Zellen 116, die sich an den abgebildeten physischen Adressen befinden, zugreifen oder diese speichern.
  • Die Steuerung 123 und ihre Komponenten können mit eingebetteter Software implementiert sein, die die verschiedenen Funktionen der in dieser Offenbarung beschriebenen Steuerung durchführt. Alternativ dazu kann Software zum Implementieren jeder der zuvor erwähnten Funktionen und Komponenten in dem NVM 110 oder in einem Speicher außerhalb der Speichervorrichtung 102 oder der Host-Vorrichtung 104 gespeichert sein, und es kann durch die Steuerung 123 zur Ausführung durch den einen oder die mehreren Prozessoren der Steuerung 123 auf sie zugegriffen werden. Alternativ dazu können die Funktionen und Komponenten der Steuerung mit Hardware in der Steuerung 123 implementiert sein, oder sie können unter Verwendung einer Kombination der zuvor erwähnten Hardware und Software implementiert sein.
  • Im Betrieb speichert die Host-Vorrichtung 104 Daten in der Speichervorrichtung 102 durch Senden eines Schreibbefehls an die Speichervorrichtung 102, der eine oder mehrere logische Adressen (z. B. LBAs) sowie eine Länge der zu schreibenden Daten spezifiziert. Das Schnittstellenelement 106 empfängt den Schreibbefehl, und die Steuerung ordnet einen Speicherort 112 in dem NVM 110 der Speichervorrichtung 102 zum Speichern der Daten zu. Die Steuerung 123 speichert die L2P-Abbildung in dem NVM (und dem Cache 122), um eine logische Adresse, die den Daten zugeordnet ist, auf die physische Adresse des Speicherorts 112 abzubilden, der für die Daten zugeordnet ist. Die Steuerung speichert außerdem die Länge der L2P-abgebildeten Daten. Die Steuerung 123 speichert dann die Daten an dem Speicherort 112, indem sie sie an einen oder mehrere Daten-Latches 126 sendet, die mit dem zugeordneten Speicherort verbunden sind, von dem die Daten in die Zellen 116 programmiert werden.
  • Der Host 104 kann Daten von der Speichervorrichtung 102 abrufen, indem er einen Lesebefehl, der eine oder mehrere logische Adressen spezifiziert, die den Daten zugeordnet sind, die von der Speichervorrichtung 102 abgerufen werden sollen, sowie eine Länge der zu lesenden Daten sendet. Die Schnittstelle 106 empfängt den Lesebefehl, und die Steuerung 123 greift auf die L2P-Abbildung in dem Cache 122 oder ansonsten in dem NVM zu, um die logischen Adressen, die in dem Lesebefehl spezifiziert sind, in die physischen Adressen zu übersetzen, die den Ort der Daten angeben. Die Steuerung 123 liest dann die angeforderten Daten aus dem durch die physischen Adressen spezifizierten Speicherort 112, indem sie die Daten unter Verwendung der Abtastverstärker 124 abtastet und in Daten-Latches 126 speichert, bis die gelesenen Daten über die Host-Schnittstelle 106 an den Host 104 zurückgegeben werden.
  • 3 veranschaulicht ein Beispiel einer NAND-Speicheranordnung 300 von Zellen 302. Die Zellen 302 können den Zellen 116 im NVM 110 von 1 entsprechen. Mehrere Zellen 302 sind mit Wortleitungen 304 und Bitleitungen 306 gekoppelt. Zum Beispiel kann die Speicheranordnung 300 n Wortleitungen und m Bitleitungen innerhalb eines Blocks eines Chips 114 des NVM 110 einschließen, wobei n und m gemäß der Größe des Blocks vordefiniert sind. Jede Wortleitung und Bitleitung kann jeweils einer Zeilen- und Spaltenadresse zugeordnet sein, welche die Steuerung 123 verwenden kann, um bestimmte Wortleitungen und Bitleitungen auszuwählen (z. B. unter Verwendung eines Zeilen- und Spaltendecoders). Zum Beispiel können die Wortleitungen 0-n jeweils ihrer eigenen Zeilenadresse zugeordnet sein (z. B. kann die Wortleitung 0 der Wortleitungsadresse 0 entsprechen, die Wortleitung 1 kann der Wortleitungsadresse 1 entsprechen usw.), und die Bitleitungen 0-m können jeweils ihrer eigenen Spaltenadresse zugeordnet sein (z. B. kann die Bitleitung 0 der Bitleitungsadresse 0 entsprechen, die Bitleitung 1 kann der Bitleitungsadresse 1 entsprechen usw.). Auswahl-Gate-Source (SGS)-Zellen 308 und Auswahl-Gate-Drain (SGD)-Zellen 310 sind mit den Speicherzellen 302 auf jeder Bitleitung 306 gekoppelt. Die SGS-Zellen 308 und SGD-Zellen 310 verbinden die Speicherzellen 302 mit einer Sourceleitung 312 (z. B. Masse) bzw. Bitleitungen 306. Eine Kette 314 kann eine Gruppe von Zellen 302 (einschließlich SGS- und SGD-Zellen 308, 310) einschließen, die mit einer Bitleitung innerhalb eines Blocks gekoppelt sind, während eine Seite 316 eine Gruppe von Zellen 302 einschließen kann, die mit einer Wortleitung innerhalb des Blocks gekoppelt sind.
  • 4 veranschaulicht ein Beispiel einer NAND-Speicheranordnung 400 von Blöcken 402, die mehrere Ketten 404 einschließen. Blöcke 402 können Blöcken eines Chips 114 im NVM 110 von 1 entsprechen, und Ketten 404 können jeweils Kette 314 in 3 entsprechen. Wie in der Speicheranordnung 300 von 3 kann jede Kette 404 eine Gruppe von Speicherzellen einschließen, die jeweils mit einer Bitleitung 406 gekoppelt sind und einzeln mit jeweiligen Wortleitungen 408 gekoppelt sind. In ähnlicher Weise kann jede Kette eine SGS-Zelle 410 und eine SGD-Zelle 412 einschließen, welche die Speicherzellen in jeder Kette 404 jeweils mit einer Sourceleitung 414 und einer Bitleitung 406 verbinden.
  • Wenn die Steuerung 123 Daten von einer Seite 316 von Zellen 302 liest oder Daten in diese schreibt (d. h. auf einer Wortleitung 304, 408), kann die Steuerung einen Befehl senden, um eine Lesespannung oder Programmierspannung an die ausgewählte Wortleitung und eine Durchgangsspannung an die anderen Wortleitungen anzulegen. Der gelesene oder programmierte Zustand der Zelle (z. B. eine Logik ‚0‘ oder eine Logik̃'1' für SLCs) kann dann basierend auf einer Schwellenspannung der Zellen 302 bestimmt werden. Wenn zum Beispiel während eines SLC-Lesevorgangs die Schwellenspannung einer Zelle 302 kleiner als die Lesespannung ist (d. h. Strom als Reaktion auf die Lesespannung durch die Zelle fließt), kann die Steuerung 123 bestimmen, dass die Zelle eine Logik ‚1‘ speichert, während wenn die Schwellenspannung der Zelle 302 größer als die Lesespannung ist (d. h. kein Strom als Reaktion auf die Lesespannung durch die Zelle fließt), die Steuerung 123 bestimmen kann, dass die Zelle eine Logik ‚0‘ speichert. In ähnlicher Weise kann die Steuerung während eines SLC-Programmiervorgangs eine Logik ‚0‘ speichern, indem sie einen Befehl zum Anlegen der Programmierspannung an die Zelle 302 auf der Wortleitung 304, 408 sendet, bis die Zelle die Schwellenspannung erreicht, und bei einem Löschvorgang kann die Steuerung einen Befehl zum Anlegen einer Löschspannung an den Block 402 einschließlich der Zellen 302 (z. B. an ein Substrat der Zellen wie eine p-Wanne) senden, bis die Zellen wieder unter die Schwellenspannung absinken (zurück zu Logik ‚1‘).
  • Für Zellen, die mehrere Bits speichern (z.B. MLCs, TLCs usw.), kann jede Wortleitung 304, 408 mehrere Seiten 316 von Zellen 302 einschließen, und die Steuerung kann in ähnlicher Weise Befehle senden, um Lese- oder Programmierspannungen an die Wortleitungen anzulegen, um den Lese- oder Programmierzustand der Zellen basierend auf einer Schwellenspannung der Zellen zu bestimmen. Zum Beispiel kann im Fall von TLCs jede Wortleitung 304, 408 drei Seiten 316 einschließen, einschließlich einer unteren Seite (LP), einer mittleren Seite (MP) und einer oberen Seite (UP), die jeweils den verschiedenen Bits entsprechen, die in dem TLC gespeichert sind. In einem Beispiel kann beim Programmieren von TLCs zuerst die LP programmiert werden, gefolgt von der MP und dann der UP. Zum Beispiel kann eine Programmierspannung an die Zelle auf der Wortleitung 304, 408 angelegt werden, bis die Zelle eine erste Zwischenschwellenspannung erreicht, die einem niedrigstwertigen Bit (LSB) der Zelle entspricht. Als Nächstes kann die LP gelesen werden, um die erste Zwischenschwellenspannung zu bestimmen, und dann kann eine Programmierspannung an die Zelle auf der Wortleitung angelegt werden, bis die Zelle eine zweite Zwischenschwellenspannung erreicht, die einem nächsten Bit der Zelle (zwischen dem LSB und dem höchstwertigen Bit (MSB)) entspricht. Schließlich kann die MP gelesen werden, um die zweite Zwischenschwellenspannung zu bestimmen, und dann kann eine Programmierspannung an die Zelle auf der Wortleitung angelegt werden, bis die Zelle die endgültige Schwellenspannung erreicht, die dem MSB der Zelle entspricht. Alternativ können in anderen Beispielen die LP, MP und UP zusammen programmiert werden (z.B., in Vollsequenzprogrammierung oder Foggy-Fine-Programmierung), oder die LP und MP können zuerst programmiert werden, gefolgt von der UP (z.B., LM-Foggy-Fine-Programmierung). In ähnlicher Weise kann die Steuerung 123 beim Lesen von TLCs die LP lesen, um festzustellen, ob das LSB eine logische 0 oder 1 in Abhängigkeit von der Schwellenspannung der Zelle speichert, die MP, um festzustellen, ob das nächste Bit eine logische 0 oder 1 in Abhängigkeit von der Schwellenspannung der Zelle speichert, und die UP, um zu bestimmen, ob das letzte Bit eine logische 0 oder 1 in Abhängigkeit von der Schwellenspannung der Zelle speichert.
  • 5 veranschaulicht ein Beispiel eines Spannungsverteilungsdiagramms 500, das verschiedene NAND-Zustände für DC (z. B. Zellen 116, 302) veranschaulicht, die drei Datenbits speichern (z. B. Logik 000, 001, usw. bis Logik 111). Die TLCs können einen Löschzustand 502, der logisch ,111' entspricht, und mehrere Programmzustände 504 (z.B. AG), die anderen logischen Werten ,000-110' entsprechen, einschließen. Die Programmzustände 504 können durch unterschiedliche Schwellenspannungen 506 getrennt sein. Anfänglich können sich die Zellen 116, 302 im Löschzustand 502 befinden, z. B. nachdem der Steuerung 123 einen Block 402 einschließlich der Zellen gelöscht hat. Wenn die Steuerung 123 LPs, MPs und UPs wie oben beschrieben programmiert, können die Spannungen der Zellen 116, 302 erhöht werden, bis die Schwellenspannungen 506, die den zu speichernden Logikwerten entsprechen, erreicht sind, woraufhin die Zellen in ihre jeweiligen Programmzustände 504 übergehen. Während 5 acht NAND-Zustände für TLCs veranschaulicht, kann die Anzahl von Zuständen abhängig von der Datenmenge, die in jeder Zelle 116, 302 gespeichert ist, unterschiedlich sein. Zum Beispiel können SLCs zwei Zustände aufweisen (z. B. logisch 0 und logisch 1), MLCs können vier Zustände aufweisen (z. B. logisch 00, 01, 10, 11) und QLCs können sechzehn Zustände aufweisen (z. B. Löschen und A-N).
  • Wenn die Steuerung 123 versucht, Zellen 116, 302 einer ausgewählten Wortleitung 304, 408 in einen der Programmzustände 504 zu programmieren, kann die Steuerung eine inkrementelle Schrittimpulsprogrammierung (ISPP) über eine Anzahl von Programmierschleifen oder ISPP-Zyklen durchführen. Zum Beispiel kann eine Programmierspannung (z. B. eine hohe Spannung) an die ausgewählte Wortleitung 304, 408 angelegt werden, eine Durchgangsspannung (z. B. eine hohe Spannung, die niedriger als die Programmierspannung ist) kann an die anderen Wortleitungen 304, 408 angelegt werden, eine Bitleitungsprogrammierspannung (z.B. eine niedrige Spannung) kann an die Bitleitungen 306, 406 angelegt werden, die mit den ausgewählten Zellen verbunden sind, die auf der ausgewählten Wortleitung programmiert werden, und eine Bitleitungssperrspannung (z. B. eine hohe Spannung) kann an die Bitleitungen 306, 406 angelegt werden, die mit den anderen Zellen verbunden sind, die nicht auf der ausgewählten Wortleitung programmiert werden. Das Anlegen einer hohen Programmierspannung an die ausgewählte Wortleitung und einer niedrigen Spannung an die ausgewählten Bitleitungen ermöglicht es Elektronen, von dem Kanal in die Ladungseinfangschicht dieser ausgewählten Zellen zu tunneln, wodurch bewirkt wird, dass die Schwellenspannung der Zellen ansteigt. Andererseits verhindert das Anlegen einer hohen Spannung an nicht ausgewählte Bitleitungen, dass Elektronen aus dem Kanal in die Ladungseinfangschicht dieser nicht ausgewählten Zellen tunneln, wodurch verhindert wird, dass die Schwellenspannung dieser Zellen ansteigt. Somit können Bitleitungen, die mit Zellen gekoppelt sind, die in niedrigere Zustände programmiert sind, gesperrt werden, um zu verhindern, dass die Schwellenspannung dieser Zellen zunimmt, während andere Zellen in höhere Zustände programmiert sind. Zum Beispiel können bei TLCs zuerst die Bitleitungen von Zellen, die zuerst in den A-Zustand programmiert werden, gesperrt werden, gefolgt von den Bitleitungen verschiedener Zellen, die in den B-Zustand programmiert werden, gefolgt von jenen, die den C-Zustand erreichen, dann den D-Zustand usw., bis die verbleibenden Zellen auf der ausgewählten Wortleitung schließlich den G-Zustand erreichen und alle Zellen auf der ausgewählten Wortleitung programmiert worden sind.
  • Nachdem die Programmierspannung in einer Programmierschleife oder einem ISPP-Zyklus angelegt wurde, kann eine Programmierverifizierungsspannung (z. B. eine niedrige Spannung) an die Wortleitung 304, 408 angelegt werden, um zu bestimmen, ob die Schwellenspannung einer Zelle über eine jeweilige Schwellenspannung hinaus in einen beabsichtigten Programmierzustand angestiegen ist. Wenn keine der Zellen in einen beabsichtigten Programmierzustand übergegangen ist, wird ein anderer Programmierschleifen- oder ISPP-Zyklus durchgeführt, in dem eine höhere Programmierspannung angelegt werden kann, um die Schwellenspannung der Zellen weiter zu erhöhen. Anschließend kann erneut eine Programmierverifizierungsspannung angelegt werden, um zu bestimmen, ob die Schwellenspannung einer Zelle in einen beabsichtigten Programmierzustand übergegangen ist. Der vorstehende Prozess des inkrementellen Erhöhens der Programmierspannung und des Verifizierens des Spannungsschwellenwerts der ausgewählten Zellen kann über eine Anzahl von Programmierschleifen wiederholt werden. Wenn die Zellen in ihre jeweiligen Programmierzustände übergehen und die Gesamtzahl der Programmierschleifen eine vorbestimmte Schleifenzahl nicht überschreitet, kann die Steuerung bestimmen, dass die Zellen in ihre beabsichtigten Programmierzustände eingetreten sind und somit erfolgreich programmiert werden. Anderenfalls, wenn die Gesamtanzahl von Programmierschleifen die vorbestimmte Schleifenzahl überschreitet, bevor die Zellen in ihre jeweiligen Programmierzustände übergehen, kann die Steuerung bestimmen, dass ein Programmierfehler aufgetreten ist.
  • 6 veranschaulicht ein Beispiel 600 eines Speichers 602 einschließlich NAND-Chips 604, die über mehrere Kanäle 608 kommunikativ mit einer Steuerung 606 gekoppelt sind. Jeder NAND-Chip kann mehrere Chips 610 einschließen, und jeder Chip 610 kann mehrere Ebenen (nicht gezeigt) einschließen, die jeweils mehrere Blöcke 612 einschließen. Jeder Chip kann auch einer physischen Chip-Adresse zugeordnet sein, und jeder Block kann einer physischen Block-Adresse zugeordnet sein. Zum Beispiel kann in dem veranschaulichten Beispiel von 6 einer der NAND-Chips Chips 24-31 (Chips, die physischen Chip-Adressen 24-31 zugeordnet sind) einschließen, und einer der Blöcke von Chips 24 kann Blöcke 192000-199999 (Blöcke, die physischen Blockadressen 192000-199999 zugeordnet sind) einschließen. In anderen Beispielen können die Chips und Blöcke jedes NAND-Chips unterschiedliche physische Adressen und Bereiche aufweisen. Der Speicher 602 kann NVM 110 entsprechen, die Steuerung 606 kann dem Steuerung 123 von 1 entsprechen, die Chips 610 können den Chips 114 von 1 entsprechen und die Blöcke 612 können den Blöcken 402 von 4 entsprechen.
  • Jeder Kanal 608 kann ein Bus sein, der Daten (z.B., Daten 119) zwischen dem Steuerung 606 und einem oder mehreren der NAND-Chips trägt, und jeder Kanal kann parallel zu den anderen Kanälen sein. Somit kann die Steuerung 606 gleichzeitig Daten in den Chips 610 über mehrere Kanäle 608 lesen oder schreiben. Zum Beispiel kann die Steuerung 606 Daten in einem der Chips 610 lesen oder schreiben, die gleichzeitig mit jedem Kanal 608 gekoppelt sind (z.B., in dem Beispiel von 6 in vier Chips gleichzeitig). In ähnlicher Weise kann die Steuerung 606 gleichzeitig Daten über mehrere Ebenen lesen oder schreiben. Wenn zum Beispiel jeder Chip 610 zwei Ebenen einschließt, kann die Steuerung 606 Daten in einem der Blöcke 612 in jeder Ebene jedes vorstehend genannten Chips gleichzeitig lesen oder schreiben (z.B., in acht Blöcken, die im Beispiel von 6 zwei Ebenen pro Chip annehmen). Während das Beispiel von 6 vier Kanäle veranschaulicht, die zwischen der Steuerung 606 und dem Speicher 602 gekoppelt sind, kann in anderen Beispielen eine andere Anzahl von Kanälen zwischen der Steuerung und dem Speicher gekoppelt sein (z.B., 8 Kanäle, 10 Kanäle usw.).
  • Die Steuerung 123, 606 kann Chips (z.B., Chips 114, 610) logisch gruppieren, um logische Meta-Chips zu bilden, und die Chips physisch gruppieren, um physische Meta-Chips zu bilden. Ein logischer Meta-Chip ist eine logische Gruppierung von Chips, und ein physischer Meta-Chip ist eine physische Gruppierung von Chips, die parallel gelesen oder geschrieben werden können. Zum Beispiel kann ein logischer Meta-Chip durch eine einzelne Adresse (z.B., eine logische Meta-Chipadresse) angezeigt werden, die logischen Adressen zugeordnet ist, die verschiedenen Chips zugeordnet sind, und ein physischer Meta-Chip kann durch eine einzelne Adresse (z.B., eine physische Meta-Chipadresse) angezeigt werden, die physischen Adressen zugeordnet ist, die Chips zugeordnet sind, die mit verschiedenen Kanälen gekoppelt sind. In einem Beispiel übersetzt die Steuerung, wenn die Steuerung 123, 606 Daten in einen logischen Meta-Chip liest oder schreibt, der einer logischen Meta-Chipadresse zugeordnet ist, die logische Meta-Chipadresse in eine physische Meta-Chipadresse, und die Steuerung erfasst oder Daten in Zellen der Chips 114 programmiert, 610 in dem physischen Meta-Chip, der der identifizierten physischen Meta-Chipadresse zugeordnet ist. Da die Chips des physischen Meta-Chips außerdem mit verschiedenen Kanälen 608 gekoppelt sein können, kann die Steuerung Daten in mehreren Chips parallel über die verschiedenen Kanäle lesen oder schreiben.
  • 7 veranschaulicht ein Beispiel 700 von Abbildungstabellen 702, 704, 706, die verschiedene logische Meta-Chip-und physische Meta-Chip-Abbildungen einschließen. Zum Beispiel kann die Abbildungstabelle 702 Abbildungen logischer Meta-Chips, die jeweils einer logischen Meta-Chipadresse 708 zugeordnet sind, auf eine Vielzahl von Chips, die jeweils einer logischen Chipadresse 710 zugeordnet sind, einschließen. Die Abbildungstabelle 704 kann Abbildungen physischer Meta-Chips, die jeweils einer physischen Meta-Chipadresse 712 zugeordnet sind, auf eine Vielzahl von Chips, die jeweils einer physischen Chipadresse 714 zugeordnet sind, einschließen. Die Abbildungstabelle 706 kann Eins-zu-Eins-Abbildungen einzelner logischer Meta-Chips, die jeweils einer der logischen Meta-Chipadressen 708 zugeordnet sind, auf einzelne physische Meta-Chips, die jeweils einer der physischen Meta-Chipadressen 712 zugeordnet sind, einschließen. Die Chips in diesem Beispiel können zum Beispiel den Chips 114, 610 in 6 entsprechen. Obwohl 7 das Beispiel veranschaulicht, in dem die Steuerung drei verschiedene Abbildungstabellen verwaltet, die verschiedenen logischen und physischen Meta-Chip-Abbildungen angeben, kann in anderen Beispielen eine andere Anzahl von Abbildungstabellen verwaltet werden. Beispielsweise können die Abbildungstabellen 702, 704, 706 zu einer einzigen Abbildungstabelle kombiniert werden, zu zwei Abbildungstabellen kombiniert werden oder in mehr als drei Abbildungstabellen aufgeteilt werden. Darüber hinaus veranschaulicht das Beispiel von 7 zwar die Abbildungstabellen 702, 704, 706 getrennt von der L2P-Abbildungstabelle 120, 205 von 1 und 2 kann jede dieser Abbildungstabellen mit der L2P Abbildungstabelle kombiniert werden.
  • Die Steuerung kann verschiedene logische Meta-Chips bilden und jeden logischen Meta-Chip auf Chips mit unterschiedlichen logischen Adressen abbilden. Zum Beispiel kann, wie in der Abbildungstabelle 702 veranschaulicht, die Steuerung einen logischen Meta-Chip n, der vier logische Chips 0-3 (z.B., Chips, die logischen Adressen 0-3 zugeordnet sind) einschließt, und einen anderen logischen Meta-Chip n + 1, der vier logische Chips 4-7 (Chips, die logischen Adressen 4-7 zugeordnet sind) einschließt, bilden. Alternativ kann die Steuerung in anderen Beispielen eine unterschiedliche Anzahl von Chips in jedem logischen Meta-Chip einschließen oder unterschiedliche logische Chipadressen den logischen Meta-Chips zuordnen. In ähnlicher Weise kann die Steuerung verschiedene physische Meta-Chips bilden und jeden physischen Meta-Chip auf Chips auf verschiedenen Kanälen (z.B., Kanäle 608) und mit verschiedenen physischen Adressen abbilden. Zum Beispiel kann, wie in der Abbildungstabelle 704 veranschaulicht, die Steuerung einen physischen Meta-Chip m bilden, der vier physische Chips 0, 8, 16 und 24 (z.B., Chips, die physischen Adressen 0, 8, 16 und 24 zugeordnet sind) und einen anderen physischen Meta-Chip m + 1, der vier physische Chips 32, 40, 48, 56 (z.B., Chips, die physischen Adressen 32, 40, 48 und 56 zugeordnet sind) einschließt. Zum Beispiel kann der physische Chip 24, der in den physischen Meta-Chip m gruppiert ist, dem Chip 24 auf einem der Kanäle 608 in 6 entsprechen, während die anderen Chips innerhalb des physischen Meta-Chips m jeweils mit den anderen Kanälen gekoppelt sein können. Alternativ kann die Steuerung in anderen Beispielen eine unterschiedliche Anzahl von Chips in jedem physischen Meta-Chip einschließen oder unterschiedliche physische Chipadressen den physischen Meta-Chips zuordnen.
  • Nach dem Bilden der logischen Meta-Chips und physischen Meta-Chips kann die Steuerung jeden einzelnen logischen Meta-Chip jedem einzelnen physischen Meta-Chip gemäß einer Eins-zu-Eins-Abbildung abbilden. Zum Beispiel kann, wie in der Abbildungstabelle 706 veranschaulicht, die Steuerung den logischen Meta-Chip n auf den physischen Meta-Chip m abbilden, und die Steuerung kann den logischen Meta-Chip n + 1 separat auf den physischen Meta-Chip m + 1 abbilden. Die Abbildungen in den Abbildungstabellen 702, 704, 706 ermöglichen es der Steuerung, die Chips zu identifizieren, in denen gleichzeitig Daten als Reaktion auf einen Host-Befehl gelesen oder geschrieben werden sollen. Wenn zum Beispiel die Steuerung einen Host-Befehl zum Lesen oder Schreiben von Daten in einem oder mehreren Blöcken logischer Chips 0-3 empfängt, kann die Steuerung den logischen Meta-Chip n aus der Abbildungstabelle 702 identifizieren, den logischen Meta-Chip n in den physischen Meta-Chip m in der Abbildungstabelle 706 übersetzen, die physischen Chips 0, 8, 16 und 24 in der Abbildungstabelle 704 identifizieren und Daten in den Blöcken in diesen physischen Chips lesen oder schreiben. Alternativ kann die Steuerung die logischen und physischen Meta-Chips in anderen Beispielen unterschiedlich abbilden, wie beispielsweise in einer einzigen Abbildungstabelle, die die Abbildungstabellen 702, 704, 706 mit L2P-Abbildungstabelle 120, 205 kombiniert, oder in anderen Abbildungstabellen, die eine oder mehrere dieser Tabellen kombinieren.
  • In ähnlicher Weise kann die Steuerung 123, 606 Blöcke (z.B., Blöcke 402, 612) logisch gruppieren, um logische Meta-Blöcke zu bilden, und die Blöcke physisch gruppieren, um physische Meta-Blöcke zu bilden. Ein logischer Meta-Block ist eine logische Gruppierung von Blöcken, und ein physikalischer Meta-Block ist eine physische Gruppierung von Blöcken, die parallel gelesen oder geschrieben werden können. Zum Beispiel kann ein logischer Meta-Block durch eine einzelne Adresse (z.B., eine logische Meta-Blockadresse) angezeigt werden, die logischen Adressen zugeordnet ist, die verschiedenen Blöcken zugeordnet sind, und ein physischer Meta-Block kann durch eine einzelne Adresse (z.B., eine physische Meta-Blockadresse) angezeigt werden, die physischen Adressen zugeordnet ist, die Blöcken in Chips zugeordnet sind, die mit verschiedenen Kanälen gekoppelt sind. In einem Beispiel übersetzt die Steuerung, wenn die Steuerung 123, 606 Daten in einen logischen Meta-Block liest oder schreibt, der einer logischen Meta-Blockadresse zugeordnet ist, die logische Meta-Blockadresse in eine physische Meta-Blockadresse, und die Steuerung erfasst oder programmiert Daten in Zellen der Blöcke 402, 612 in dem physischen Meta-Block, der der identifizierten physischen Meta-Blockadresse zugeordnet ist. Da sich die Blöcke des physischen Meta-Blocks darüber hinaus nicht nur innerhalb von Chips befinden können, die mit verschiedenen Kanälen 608 gekoppelt sind, sondern auch innerhalb verschiedener Ebenen, kann die Steuerung Daten in mehreren Blöcken parallel über die verschiedenen Kanäle und Ebenen lesen oder schreiben.
  • 8 veranschaulicht ein Beispiel 800 von Abbildungstabellen 802, 804, 806, die verschiedene logische Meta-Block-und physische Meta-Blockabbildungen einschließen. Zum Beispiel kann die Abbildungstabelle 802 Abbildungen logischer Meta-Blöcke, die jeweils einer logischen Meta-Blockadresse 808 zugeordnet sind, auf eine Vielzahl von Blöcken einschließen, die jeweils einer logischen Blockadresse 810 zugeordnet sind (z.B., logische Adressen 208 oder LBAs). Die Abbildungstabelle 804 kann Abbildungen physischer Meta-Blöcke, die jeweils einer physischen Meta-Blockadresse 812 zugeordnet sind, auf eine Vielzahl von Blöcken einschließen, die jeweils einer physischen Blockadresse 814 zugeordnet sind (z.B., physische Adressen 210 oder PBAs). Die Abbildungstabelle 806 kann Abbildungen logischer Meta-Blöcke, die jeweils einer der logischen Meta-Blockadressen 808 zugeordnet sind, auf physische Meta-Blöcke, die jeweils einer der physischen Meta-Blockadressen 812 zugeordnet sind, einschließen. Die Blöcke in diesem Beispiel können zum Beispiel den Blöcken 402, 612 in 4 und 6 dargestellt. Obwohl 8 das Beispiel veranschaulicht, in dem die Steuerung drei verschiedene Abbildungstabellen verwaltet, die verschiedenen logischen und physischen Meta-Blockabbildungen angeben, kann in anderen Beispielen eine andere Anzahl von Abbildungstabellen verwaltet werden. Beispielsweise können die Abbildungstabellen 802, 804, 806 zu einer einzigen Abbildungstabelle kombiniert werden, zu zwei Abbildungstabellen kombiniert werden oder in mehr als drei Abbildungstabellen aufgeteilt werden. Darüber hinaus veranschaulicht das Beispiel von 8 die Abbildungstabellen 802, 804, 806 getrennt von der L2P-Abbildungstabelle 120, 205 von 1 und 2 kann jede dieser Abbildungstabellen mit der L2P Abbildungstabelle kombiniert werden. Zusätzlich kann jede der Abbildungstabellen 802, 804, 806 mit jeder der Abbildungstabellen 702, 704, 706 in 7 kombiniert werden.
  • Die Steuerung kann verschiedene logische Meta-Blöcke bilden und jeden logischen Meta-Block Blöcken mit unterschiedlichen logischen Adressen abbilden. Zum Beispiel kann, wie in der Abbildungstabelle 802 veranschaulicht, die Steuerung einen logischen Meta-Block x, der vier logische Blöcke 0-3 (z.B., Blöcke, die logischen Adressen 0-3 zugeordnet sind) einschließt, und einen anderen logischen Meta-Block x + 1, der vier logische Blöcke 4-7 (z.B., Blöcke, die logischen Adressen 4-7 zugeordnet sind) einschließt, bilden. Alternativ kann die Steuerung in anderen Beispielen eine unterschiedliche Anzahl von Blöcken in jedem logischen Meta-Block einschließen oder unterschiedliche logische Blockadressen den logischen Meta-Blöcken zuordnen. In ähnlicher Weise kann die Steuerung verschiedene physische Meta-Blöcke bilden und jeden physischen Meta-Block Blöcken in verschiedenen Ebenen von Chips auf verschiedenen Kanälen (z.B., Kanäle 608) abbilden, die verschiedene physische Adressen aufweisen. Zum Beispiel kann, wie in der Abbildungstabelle 804 veranschaulicht, die Steuerung einen physischen Meta-Block y bilden, der vier physische Blöcke 0, 64000, 128000, 192000 (z.B., Blöcke, die physischen Adressen 0, 64000, 128000 und 192000) und einen anderen physikalischen Meta-Block y + 1, der vier physische Blöcke 256000, 320000, 384000, 448000 (z.B., Blöcke, die physikalischen Adressen 256000, 320000, 384000, 448000 zugeordnet sind) enthält. Zum Beispiel kann der physische Block 192000, der in den physischen Meta-Block y gruppiert ist, dem Block 192000 in einer Ebene des Chips 24 auf einem der Kanäle 608 in 6 entsprechen, während die anderen Blöcke innerhalb des physischen Meta-Blocks y jeweils mit anderen Ebenen, Chips oder Kanälen gekoppelt sein können. Alternativ kann die Steuerung in anderen Beispielen eine unterschiedliche Anzahl von Blöcken in jedem physischen Meta-Block einschließen oder in anderen Beispielen unterschiedliche physische Blockadressen den physischen Meta-Blöcken zuordnen.
  • Nach dem Bilden der logischen Meta-Blöcke und physischen Meta-Blöcke kann die Steuerung logische Meta-Blöcke physischen Meta-Blöcken abbilden. Zum Beispiel kann, wie in der Abbildungstabelle 806 veranschaulicht, die Steuerung den logischen Meta-Block x auf den physischen Meta-Block y abbilden, und die Steuerung kann den logischen Meta-Block x + 1 auf den physischen Meta-Block y + 1 abbilden. Die Abbildungen in den Abbildungstabellen 802, 804, 806 ermöglichen es der Steuerung, die Blöcke zu identifizieren, in denen gleichzeitig Daten als Reaktion auf einen Host-Befehl gelesen oder geschrieben werden sollen. Wenn die Steuerung beispielsweise einen Host-Befehl zum Lesen oder Schreiben von Daten in Blöcken empfängt, die den LBAs 0-3 zugeordnet sind, kann die Steuerung den logischen Meta-Block x aus der Abbildungstabelle 802 identifizieren, den logischen Meta-Block x in den physikalischen Meta-Block y in der Abbildungstabelle 806 zu übersetzen, PBAs 0, 64000, 128000 und 192000 in der Abbildungstabelle 804 zu identifizieren und Daten in den Blöcken an diesen identifizierten physikalischen Adressen zu lesen oder zu schreiben. Alternativ kann die Steuerung die logischen und physischen Meta-Blöcke in anderen Beispielen unterschiedlich abbilden, wie beispielsweise in einer einzigen Abbildungstabelle, die Abbildungstabellen 802, 804, 806 mit L2P-Abbildungstabelle 120, 205 kombiniert, in einer einzigen Abbildungstabelle, die Tabellen 802, 804, 806 mit Abbildungstabellen 702, 704, 706 kombiniert, oder in anderen Abbildungstabellen, die eine oder mehrere dieser Tabellen kombinieren.
  • 9 veranschaulicht ein Beispiel 900 einer Steuerung 902 (z.B., Steuerung 123, 606), der Daten in logische und physische Meta-Chips und Meta-Blöcke nach einer Eins-zu-Eins-Abbildung zwischen logischen und physischen Meta-Chips liest oder schreibt. In einem Beispiel kann die Steuerung 902 von einer Hostvorrichtung 904 (z.B., Hostvorrichtung 104) einen Befehl empfangen, der eine Hostadresse zum Lesen oder Schreiben von Daten in den Speicher einschließt. Zum Beispiel kann die Hostadresse eine oder mehrere logische Adressen von Blöcken (z.B., Blöcke 402, 612) in einem oder mehreren Chips (z.B., Chips 114, 610) einschließen, in denen Daten gelesen oder geschrieben werden sollen.
  • Beim Empfangen der Host-Adresse kann die Steuerung 902 die Host-Adresse in eine logische NAND-Adresse übersetzen (z.B., in einer Flash-Übersetzungsschicht der Steuerung). Zum Beispiel kann die Steuerung eine oder mehrere logische Meta-Blockadressen (z.B., logische Meta-Blockadresse 808) und eine oder mehrere logische Meta-Chipadressen (z.B., logische Meta-Chipadresse 708) identifizieren, die der Hostadresse zugeordnet sind. Jede identifizierte logische Meta-Chipadresse kann einem logischen Meta-Chip 906 zugeordnet sein, und jede identifizierte logische Meta-Blockadresse kann einem logischen Meta-Block 908 zugeordnet sein. Die Steuerung kann die Adressen der logischen Meta-Chips und logischen Meta-Blöcke aus einer oder mehreren Abbildungstabellen (z.B., L2P Abbildungstabelle 120, 205, Abbildungstabellen 702, 802) identifizieren.
  • Nach dem Identifizieren der logischen NAND-Adresse kann die Steuerung 902 die Adresse in eine physische NAND-Adresse umwandeln (z.B. in einer physischen Speicherschicht der Steuerung). Zum Beispiel kann die Steuerung eine einzelne physische Meta-Blockadresse (z.B., physische Meta-Blockadresse 812) und eine einzelne physische Meta-Chipadresse (z.B., physische Meta-Chipadresse 712) identifizieren, die der logischen NAND-Adresse zugeordnet sind. Die identifizierte physische Meta-Chipadresse kann einem physischen Meta-Chip 910 zugeordnet sein, und die identifizierte physische Meta-Blockadresse kann einem physischen Meta-Block 912 zugeordnet sein. Die Steuerung kann die Adresse des physischen Meta-Chips und des physischen Meta-Blocks aus einer oder mehreren Abbildungstabellen (z.B., L2P Abbildungstabelle 120, 205, Abbildungstabellen 706, 806) identifizieren.
  • Die Steuerung kann dann die physische NAND-Adresse, einschließlich der physischen Blockadressen, die dem identifizierten physischen Meta-Block zugeordnet sind, und der physischen Chip-Adressen, die dem identifizierten physischen Meta-Chip zugeordnet sind, aus dem physischen Meta-Chip und der Meta-Blockadresse identifizieren. Jede identifizierte physische Chip-Adresse kann einem physischen Chip 914 (z.B., Chip 114, 610) zugeordnet sein, und jede identifizierte physische Blockadresse kann einem physischen Block 916 (z.B., Block 402, 612) zugeordnet sein. Die Steuerung kann die Adressen der physischen Chips und Blöcke aus einer oder mehreren Abbildungstabellen (z.B., L2P Abbildungstabelle 120, 205, Abbildungstabellen 704, 804) identifizieren. Nach dem Identifizieren der physischen NAND-Adresse kann die Steuerung Daten in den Blöcken 916 der Chips 914 als Reaktion auf den Befehl von der Hostvorrichtung 904 entsprechend lesen oder schreiben.
  • Im Allgemeinen bildet die Steuerung 123, 606, 902 einen einzelnen logischen Meta-Chip (z.B., logischer Meta-Chip 906) auf einen einzelnen physischen Meta-Chip (z.B., physischer Meta-Chip 910) ab. Zum Beispiel kann, wie in der Abbildungstabelle 706 von 7 veranschaulicht, die Steuerung den logischen Meta-Chip n auf den physischen Meta-Chip m, den logischen Meta-Chip n + 1 auf den physischen Meta-Chip m + 1 usw. gemäß einer Eins-zu-Eins-Abbildung von logischen auf physische Meta-Chips abbilden. Da jedoch zusätzliche Chips und Blöcke (z.B., in NAND-Chips 604) zur Speichervorrichtung 102 hinzugefügt werden, um die Speicherkapazität zu erhöhen, kann eine solche Eins-zu-Eins-Abbildung zu einer zusätzlichen Firmware-Komplexität bei der logischen Abbildung und dem Datenschutz führen. Zum Beispiel kann in den Beispielen, die in 7 und 9, wenn neue Chips 918 zum Speicher hinzugefügt werden, um die Speicherkapazität zu erhöhen, kann die Steuerung 902 eine Vielzahl von Abbildungsschritten durchführen, um diese neuen Chips einem neuen logischen und physischen Meta-Chip zuzuordnen. Zum Beispiel kann die Steuerung einen neuen logischen Meta-Chip mit neuen Chips 918 bilden, einen neuen Eintrag in die Abbildungstabelle 702 hinzufügen, die den neuen logischen Meta-Chip mit einer neuen logischen Meta-Chip-Adresse verknüpft, einen neuen physischen Meta-Chip mit neuen Chips 918 bilden, einen neuen Eintrag in die Abbildungstabelle 704 hinzufügen, die den neuen physischen Meta-Chip mit einer neuen physischen Meta-Chip-Adresse verknüpft, und einen neuen Eintrag in die Abbildungstabelle 706 hinzufügen, die die neue logische Meta-Chip-Adresse mit der neuen physischen Meta-Chip-Adresse verknüpft. Wenn die Steuerung alternativ die neuen Chips 918 zu dem vorhandenen physischen Meta-Chip 910 hinzufügt, anstatt einen neuen physischen Meta-Chip zu erzeugen, kann ein solcher Ansatz in ähnlicher Weise die Firmwarekomplexität beim Implementieren einer Fehlerkorrektur erhöhen. Wenn zum Beispiel ein Fehler in einem der Blöcke 916 auftritt, kann die Steuerung 902 zusätzliche XOR-Paritätsprüfungen durchführen, um die Daten als Ergebnis der Vergrößerung des physischen Meta-Chips 910 wiederherzustellen.
  • Außerdem kann die Steuerung beim Abbilden eines logischen Meta-Chips auf einen physischen Meta-Chip gemäß einer Eins-zu-Eins-Abbildung, wie vorstehend beschrieben, eine solche Abbildung nur durchführen, wenn eine gleiche Anzahl von Blöcken zum Speichern von Hostdaten über alle Chips des physischen Meta-Chips existiert. Zum Beispiel kann in dem Beispiel von 9 die Steuerung 902 den physischen Meta-Chip 910 bilden und diesen physischen Meta-Chip auf den logischen Meta-Chip 906 abbilden, wenn alle Chips 914 in dem physischen Meta-Chip 910 die gleiche Anzahl von Blöcken 916 einschließen. Eine solche Einschränkung kann die Anzahl logischer und physischer Meta-Chips, die gebildet werden können, sowie die Anzahl logischer und physischer Meta-Blöcke begrenzen.
  • Zum Beispiel veranschaulicht 10 ein Beispiel 1000 eines logischen Meta-Chips 1002, der auf einen physischen Meta-Chip 1004 einschließlich mehrerer Chips 1006 abgebildet ist. Zum Beispiel können die Chips 1006 physische Chipadressen 0, 8, 16 und 24 einschließen, die den physischen Chipadressen 714 innerhalb der Abbildungstabelle 704 von 7 entsprechen. Jeder der Chips 1006 schließt mehrere Blöcke (z.B., Blöcke 402, 612) ein, einschließlich Benutzerdatenblöcken, internen Blöcken und schlechten Blöcken. Benutzerdatenblöcke beziehen sich auf Blöcke, in denen die Steuerung Host-Daten speichern kann. Interne Blöcke beziehen sich auf Blöcke, in denen die Steuerung System- oder Steuerinformationen für die Speichervorrichtung speichern kann (z.B., Abbildungstabellen). Fehlerhafte Blöcke schließen Blöcke ein, von denen erkannt wird, dass sie mindestens eine Schwellenanzahl von Lese-, Programmier- oder Löschfehlern während des Herstellertests oder während der Laufzeit oder Lebensdauer der Speichervorrichtung 102 aufweisen.
  • Wie in dem Beispiel von 10 veranschaulicht, schließt jeder der Chips 1006 des physischen Meta-Chips 1004 eine gleiche Anzahl von Benutzerdatenblöcken ein. Zum Beispiel kann jeder der Chips tausend Blöcke zum Speichern von Hostdaten (oder eine andere gemeinsame Anzahl von Blöcken) einschließen. Infolgedessen kann die Steuerung die Chips 1006 in den physischen Meta-Chip 1004 gruppieren und den physischen Meta-Chip auf den logischen Meta-Chip 1002 abbilden, wie oben beschrieben. Wenn jedoch einer der Chips 1006 anschließend nicht die gleiche Anzahl von Benutzerdatenblöcken enthält (z.B., wenn einer der Benutzerdatenblöcke in einem der Chips später ein schlechter Block wird), kann die Steuerung die Chips nicht mehr in den gleichen physischen Meta-Chip gruppieren. Ebenso kann die Steuerung möglicherweise nicht mehr in der Lage sein, physische Meta-Blöcke aus allen Blöcken in diesen Chips zu bilden. Infolgedessen kann die Steuerung den physischen Meta-Chip 1004, den logischen Meta-Chip 1002 und alle logischen und physischen Meta-Blöcke, die diesen Chips 1006 zugeordnet sind, entformen. Die Steuerung kann auch die Abbildungstabellen als Reaktion auf ungeformte logische und physische Meta-Chips (z.B., Abbildungstabellen 702, 704, 706) und ungeformte logische und physische Meta-Blöcke (z.B., Abbildungstabellen 802, 804, 806) aktualisieren, was zu einer weiteren Firmware-Komplexität zusätzlich zu der führt, die durch hinzugefügte Chips und Blöcke auferlegt wird.
  • Dementsprechend kann die Steuerung 123, 606, 902 logische Meta-Chips 906, 1002 auf mehrere physische Meta-Chips 910, 1004 abbilden, um die Steuerungsverwaltung hinzugefügter Chips und Blöcke zu vereinfachen. Anstatt zum Beispiel einen einzelnen logischen Meta-Chip auf einen einzelnen physischen Meta-Chip gemäß einer Eins-zu-Eins-Abbildung, wie vorstehend beschrieben, abzubilden, kann die Steuerung den einzelnen logischen Meta-Chip auf mehrere physische Meta-Chips gemäß einer Eine-zu-Vielen-Abbildung abbilden. Bezugnehmend auf 7 kann die Steuerung zum Beispiel den logischen Meta-Chip n beiden physischen Meta-Chips m und m + 1 in der Abbildungstabelle 706 abbilden (anstatt nur dem physischen Meta-Chip m), und die Steuerung kann den logischen Meta-Chip n + 1 zusätzlichen physischen Meta-Chips abbilden (nicht gezeigt). Auf diese Weise kann die Firmwarekomplexität im Vergleich zu dem oben beschriebenen Eins-zu-Eins-Abbildungsansatz reduziert werden. Zum Beispiel, bezogen auf 7 und 9, wenn neue Chips 918 in einem neuen physischen Meta-Chip hinzugefügt werden, der mit einer neuen physischen Meta-Chip-Adresse verbunden ist, kann die Steuerung einfach die Abbildungstabellen 704 und 706 aktualisieren, um den neuen physischen Meta-Chip zu bilden und die neue physische Meta-Chip-Adresse mit einer bestehenden logischen Meta-Chip-Adresse zu verbinden. Im Gegensatz dazu kann die Steuerung das Aktualisieren der Abbildungstabelle 702 unterlassen, da die Steuerung möglicherweise keinen neuen logischen Meta-Chip erzeugt, wodurch die Firmwarekomplexität beim Verwalten der Abbildungen reduziert wird. Darüber hinaus kann die Steuerung neue physische Meta-Blöcke in dem neuen physischen Meta-Chip mit der gleichen Anzahl von Blöcken wie andere physische Meta-Blöcke bilden, wodurch die gleiche Anzahl von XOR-Paritätsprüfungen pro physischem Meta-Block aufrechterhalten und Firmwarekomplexität weiter gespart wird.
  • Die Eins-zu-Vielen-Abbildung von logischen Meta-Chips auf physische Meta-Chips kann auch mehr Flexibilität hinsichtlich der Anzahl von Benutzerdatenblöcken bereitstellen, die in jedem Chip verfügbar sein können, um einen physischen Meta-Chips zu bilden. Wenn zum Beispiel ein logischer Meta-Chip auf physische Meta-Chips gemäß einer Eins-zu-Viele-Abbildung, wie oben beschrieben, abgebildet wird, kann die Steuerung eine solche Abbildung durchführen, selbst wenn eine ungleiche Anzahl von Blöcken zum Speichern von Host-Daten über alle Chips des physischen Meta-Chips existiert, solange die Summen der Anzahl von Blöcken über entsprechende Chips (Chips, die mit demselben Kanal gekoppelt sind) über physische Meta-Chips gleich sind. Ein Beispiel für diese Summierungsbedingung wird im Folgenden mit Bezug auf 11 dargestellt und beschrieben. Infolgedessen können mehr logische und physische Meta-Chips sowie logische und physische Meta-Blöcke gebildet werden, im Gegensatz dazu, wenn der Eins-zu-Eins-Abbildungsansatz angewendet wird.
  • Zum Beispiel veranschaulicht 11 ein Beispiel 1100 eines logischen Meta-Chips 1102, der auf mehrere physische Meta-Chips 1104 abgebildet ist, die jeweils mehrere Chips 1106 einschließen. Zum Beispiel können die Chips 1106 physische Chipadressen 0, 8, 16, 24, 32, 40, 48, 56 einschließen, die den physischen Chipadressen 714 innerhalb der Abbildungstabelle 704 von 7 entsprechen. Darüber hinaus wird jedes Paar von Chips, die eine ähnliche Position in ihrem jeweiligen physischen Meta-Chip einnehmen (z.B., Chips 0 und 32, Chips 8 und 40, Chips 16 und 48 und Chips 24 und 56 in diesem Beispiel) in dieser Offenbarung als entsprechende Chips bezeichnet. Zum Beispiel können die Chips 0 und 32 einander entsprechen, da sie beide mit demselben Kanal gekoppelt sind, die Chips 8 und 40 können einander entsprechen, da sie beide mit demselben Kanal gekoppelt sind usw. Jeder der Chips 1106 schließt mehrere Blöcke (z.B., Blöcke 402, 612) ein, einschließlich Benutzerdatenblöcken, internen Blöcken und schlechten Blöcken.
  • Wie in dem Beispiel von 11 veranschaulicht, kann jeder der Chips 1106 von physischen Meta-Chips 1104 eine unterschiedliche Anzahl von Benutzerdatenblöcken einschließen. Zum Beispiel können einige der Chips (z.B., Chips 0, 24, 40 und 48) 1000-Blöcke zum Speichern von Host-Daten (oder einer anderen Anzahl von Blöcken) einschließen, während andere der Chips (z.B., Chips 8, 16, 32 und 56) 1100-Blöcke zum Speichern von Host-Daten (oder einer anderen Anzahl von Blöcken) einschließen können. Außerdem sind die Summen der Anzahl von Blöcken in entsprechenden Chips über die physikalischen Meta-Blöcke gleich. Beispielsweise die Summe der Benutzerdatenblöcke in entsprechenden Chips 0 und 32 (z.B., 2100=1000 + 1100), die Summe der Benutzerdatenblöcke in entsprechenden Chips 8 und 40 (z.B., 2100=1100 + 1000), die Summe der Benutzerdatenblöcke in entsprechenden Chips 16 und 48 (z.B., 2100=1100 + 1000) und die Summe der Benutzerdatenblöcke in entsprechenden Chips 24 und 56 (z.B., 2100=1000 + 1100) alle den gleichen Wert haben. Infolgedessen kann die Steuerung die Chips 1106 ungeachtet ihrer ungleichen Anzahl von Benutzerdatenblöcken in physische Meta-Chips 1104 gruppieren, vorausgesetzt, dass ihre Summen die gleichen sind wie oben beschrieben, und die Steuerung kann die physischen Meta-Chips auf den logischen Meta-Chips 1102 abbilden.
  • Außerdem kann die Steuerung jedes Mal, wenn die Steuerung gleichzeitig Daten in einen logischen Meta-Chip liest oder schreibt, der mehreren physischen Meta-Chips zugeordnet ist, Daten in nur einen einzigen physischen Meta-Chip lesen oder schreiben. Wenn zum Beispiel unter Bezugnahme auf 7 der logische Meta-Chip n physischen Meta-Chips m und m + 1 zugeordnet wird, wie vorstehend beschrieben, und wenn die Steuerung einen Befehl zum Lesen oder Schreiben von Daten in den logischen Meta-Chip n empfängt, kann die Steuerung gleichzeitig Daten entweder in den physischen Meta-Chip m oder den physischen Meta-Chip m + 1 (aber nicht beide) lesen oder schreiben. Wenn zum Beispiel unter Bezugnahme auf das veranschaulichte Beispiel von 7 die Steuerung einen Befehl zum Lesen oder Schreiben von Daten in logischen Chips 0-3 empfängt, kann die Steuerung entweder gleichzeitig Daten in physischen Chips 0, 8, 16, 24 oder gleichzeitig in physischen Chips 32, 40, 48 und 56 lesen oder schreiben, aber nicht gleichzeitig in beiden Sätzen physischer Chips. In ähnlicher Weise kann die Steuerung jedes Mal, wenn sie gleichzeitig Daten in einen logischen Meta-Block liest oder schreibt, der einem physischen Meta-Block zugeordnet ist, Daten in nur einen einzigen physischen Meta-Chip lesen oder schreiben, der diesen physischen Meta-Block einschließt. Bezugnehmend auf 6-8, wenn die Steuerung einen Befehl zum Lesen oder Schreiben von Daten in dem logischen Meta-Block x oder dem logischen Meta-Block x + 1 (z.B., in Blöcken 612 über die Chips 610 des logischen Meta-Chips n) empfängt, kann die Steuerung entweder Daten in dem physischen Meta-Block y oder in dem physischen Meta-Block y + 1 (z.B., in Blöcken 612 über die Chips 610 des physischen Meta-Chips m bzw. des physischen Meta-Chips m + 1) lesen oder schreiben. Somit können unterschiedliche logische Meta-Blöcke desselben logischen Meta-Chips unterschiedlichen physischen Meta-Blöcken mehrerer physischer Meta-Chips zugeordnet sein.
  • 12 veranschaulicht ein Beispiel 1200 einer Steuerung 1202 (z.B., Steuerung 123, 606, 902), die Daten in logische und physische Meta-Chips und Meta-Blöcke nach einer Eins-zu-Vielen-Abbildung zwischen logischen und physischen Meta-Chips liest oder schreibt. In einem Beispiel kann die Steuerung einen Befehl von einer Hostvorrichtung 1204 (z.B., Hostvorrichtung 104, 904) empfangen, der eine Hostadresse zum Lesen oder Schreiben von Daten in den Speicher einschließt. Zum Beispiel kann die Hostadresse eine oder mehrere logische Adressen von Blöcken (z.B., Blöcke 402, 612) in einem oder mehreren Chips (z.B., Chips 114, 610) einschließen, in denen Daten gelesen oder geschrieben werden sollen.
  • Beim Empfangen der Host-Adresse kann die Steuerung 1202 die Host-Adresse in eine logische NAND-Adresse übersetzen. Zum Beispiel kann die Steuerung eine oder mehrere logische Meta-Blockadressen (z.B., logische Meta-Blockadresse 808) und eine oder mehrere logische Meta-Chipadressen (z.B., logische Meta-Chipadresse 708) identifizieren, die der Hostadresse zugeordnet sind. Jede identifizierte logische Meta-Chipadresse kann einem logischen Meta-Chip 1206 zugeordnet sein, und jede identifizierte logische Meta-Blockadresse kann einem logischen Meta-Block 1208 zugeordnet sein. Die Steuerung kann die Adressen der logischen Meta-Chips und logischen Meta-Blöcke aus einer oder mehreren Abbildungstabellen (z.B., L2P Abbildungstabelle 120, 205, Abbildungstabellen 702, 802) identifizieren.
  • Nach dem Identifizieren der logischen NAND-Adresse kann die Steuerung 1202 die Adresse in eine physische NAND-Adresse umwandeln. Zum Beispiel kann die Steuerung mehrere physische Meta-Blockadressen (z.B., physische Meta-Blockadressen 812) und mehrere physische Meta-Chipadressen (z.B., physische Meta-Chipadressen 712) identifizieren, die der logischen NAND-Adresse zugeordnet sind. Jede identifizierte physische Meta-Chipadresse kann einem physischen Meta-Chip 1210 zugeordnet sein, und jede identifizierte physische Meta-Blockadresse kann einem physischen Meta-Block 1212 zugeordnet sein. Die Steuerung kann die Adressen der physischen Meta-Chips und physischen Meta-Blöcke aus einer oder mehreren Abbildungstabellen (z.B., L2P Abbildungstabelle 120, 205, Abbildungstabellen 706, 806) identifizieren.
  • Die Steuerung kann dann die physische NAND-Adresse, einschließlich der physischen Blockadressen, die den identifizierten physischen Meta-Blöcken zugeordnet sind, und der physischen Chipadressen, die den identifizierten physischen Meta-Chips zugeordnet sind, aus dem physischen Meta-Chip und den Meta-Blockadressen identifizieren. Jede identifizierte physische Chip-Adresse kann einem physischen Chip 1214 (z.B., Chip 114, 610, 914) zugeordnet sein, und jede identifizierte physische Blockadresse kann einem physischen Block (z.B., Block 402, 612, 916) zugeordnet sein. Die Steuerung kann die Adressen der physischen Chips und Blöcke aus einer oder mehreren Abbildungstabellen (z.B., L2P Abbildungstabelle 120, 205, Abbildungstabellen 704, 804) identifizieren. Nach dem Identifizieren der physischen NAND-Adresse kann die Steuerung Daten in den Blöcken der Chips 1214 als Reaktion auf den Befehl von der Hostvorrichtung 1204 entsprechend lesen oder schreiben.
  • Wenn logische Meta-Blöcke 1208 des logischen Meta-Chips 1206 auf physische Meta-Blöcke 1212 physischer Meta-Chips 1210 abgebildet werden, kann die Steuerung 1202 abwechselnd zwischen physischen Meta-Chips 1210 umschalten. Bezugnehmend auf 12 kann beispielsweise die Steuerung 1202 zunächst einen logischen Meta-Block des logischen Meta-Chips 1206 auf einen der physischen Meta-Blöcke 1212 in einem ersten der physischen Meta-Chips 1210 abbilden, wie durch Abbilden von ,1' im Beispiel von 12 veranschaulicht. Bezugnehmend auf 7 und 8 kann die Steuerung den logischen Meta-Block x in dem logischen Meta-Chip n auf den physischen Meta-Block y in dem physischen Meta-Chip m abbilden, indem sie entsprechende Einträge in einer oder mehreren der Abbildungstabellen erzeugt. Als Nächstes kann die Steuerung 1202 einen zweiten logischen Meta-Block des logischen Meta-Chips 1206 auf einen der physischen Meta-Blöcke 1212 in einem zweiten der physischen Meta-Chips 1210 abbilden, wie durch Abbilden von 2' im Beispiel von 12 veranschaulicht. Bezugnehmend auf 7 und 8 kann die Steuerung den logischen Meta-Block x + 1 in dem logischen Meta-Chip n auf den physischen Meta-Block y + 1 in dem physischen Meta-Chip m + 1 abbilden, indem sie entsprechende Einträge in einer oder mehreren der Abbildungstabellen erzeugt. Dann kann die Steuerung 1202 einen dritten logischen Meta-Block des logischen Meta-Chips 1206 auf einen anderen der physikalischen Meta-Blöcke 1212 zurück im ersten der physikalischen Meta-Chips 1210 abbilden, wie durch die Abbildung ,3' im Beispiel von 12 dargestellt. Bezugnehmend auf 7 und 8 kann die Steuerung den logischen Meta-Block x + 2 in dem logischen Meta-Chip n auf den physischen Meta-Block y + 2 in dem physischen Meta-Chip m abbilden, indem sie entsprechende Einträge in einer oder mehreren der Abbildungstabellen erzeugt. Danach kann die Steuerung 1202 einen vierten logischen Meta-Block des logischen Meta-Chips 1206 wieder auf einen anderen der physischen Meta-Blöcke 1212 in dem zweiten der physischen Meta-Chips 1210 abbilden, wie durch Abbilden von ,4' in dem Beispiel von 12 veranschaulicht. Bezugnehmend auf 7 und 8 kann die Steuerung den logischen Meta-Block x + 3 in dem logischen Meta-Chip n auf den physischen Meta-Block y+ 3 in dem physischen Meta-Chip m + 1 abbilden, indem sie entsprechende Einträge in einer oder mehreren der Abbildungstabellen erzeugt. Die Steuerung 1202 kann in ähnlicher Weise fortfahren, weitere logische Meta-Blöcke in dem logischen Meta-Chip 1206 weiteren physischen Meta-Blöcken 1212 in den physischen Meta-Chips 1210 abzubilden, indem sie zwischen den physischen Meta-Chips wie oben beschrieben wechselt oder umschaltet.
  • Darüber hinaus können, während das Beispiel von 12 zwei physische Meta-Chips veranschaulicht, die auf den logischen Meta-Chip 1206 abgebildet sind, in anderen Beispielen mehr als zwei physische Meta-Chips auf denselben logischen Meta-Chip abgebildet sein. In einem solchen Fall kann die Steuerung ähnlich logische Meta-Blöcke auf physische Meta-Blöcke in alternierenden physischen Meta-Chips abbilden, wie oben beschrieben. Wenn zum Beispiel drei physische Meta-Chips auf den gleichen logischen Meta-Chip abgebildet werden, kann die Steuerung einen logischen Meta-Block zunächst in dem ersten der physischen Meta-Chips auf einen physischen Meta-Block abbilden, dann auf den zweiten der physischen Meta-Chips, dann auf den dritten der physischen Meta-Chips, dann wieder zurück auf den ersten der physischen Meta-Chips, dann wieder auf den zweiten der physischen Meta-Chips, dann wieder auf den dritten der physischen Meta-Chips und so weiter in abwechselnder Weise.
  • Somit kann die Steuerung 1202 logische Meta-Blöcke 1208 des logischen Meta-Chips 1206 auf physische Meta-Blöcke 1212 abbilden, während zwischen physischen Meta-Chips 1210 umgeschaltet wird. Sobald jedoch alle physischen Blöcke eines Chips in einem physischen Meta-Chip logischen Meta-Blöcken abgebildet sind, identifiziert die Steuerung möglicherweise nicht mehr verfügbare Blöcke in diesem Chip zur weiteren Abbildung zu logischen Meta-Blöcken. Ein solcher Umstand kann als Ergebnis der Eins-zu-Vielen-Abbildung von logischen zu physischen Meta-Chips auftreten, da Chips innerhalb jedes physischen Meta-Chips ungleiche Anzahlen von Benutzerdatenblöcken einschließen können, wie oben in Bezug auf 11 beschrieben. In einem solchen Fall kann, wenn die Steuerung zu einem physischen Meta-Chip zurückkehrt, der einen Chip ohne verfügbare physische Blöcke aufweist (während zwischen physischen Meta-Chips gewechselt wird), die Steuerung einen verfügbaren Block in einem entsprechenden Chip eines anderen physischen Meta-Chips zum Abbilden auf einen logischen Meta-Block auswählen. Auf diese Weise kann die Steuerung ferner logische Meta-Blöcke eines logischen Meta-Chips auf alle verfügbaren physischen Blöcke in den physischen Meta-Chips abbilden, bis alle logischen Meta-Blöcke abgebildet wurden. Dadurch kann auch bei ungleicher Anzahl von Benutzerdatenblöcken eine gleiche Anzahl von logischen Meta-Blöcken 1208 im logischen Meta-Chip 1206 und physikalischen Meta-Blöcken 1212 über physische Meta-Chips 1210 hinweg gebildet werden.
  • Bezugnehmend auf das Beispiel von 11 kann die Steuerung beispielsweise zunächst einen Benutzerdatenblock in den Chips 0, 8, 16 und 24 auf einen ersten logischen Meta-Block, dann einen Benutzerdatenblock in den Chips 32, 40, 48 und 56 auf einen zweiten logischen Meta-Block, einen anderen Benutzerdatenblock in den Chips 0, 8, 16 und 24 auf einen dritten logischen Meta-Block und so weiter abwechselnd abbilden. Infolgedessen kann die Steuerung alle Benutzerdatenblöcke in den Chips 0 und 24 abbilden, bevor sie alle Benutzerdatenblöcke in den Chips 8 und 16 abbildet. In ähnlicher Weise kann die Steuerung alle Benutzerdatenblöcke in den Chips 40 und 48 abbilden, bevor sie alle Benutzerdatenblöcke in den Chips 32 und 56 abbildet. In einem solchen Fall kann, wenn die Steuerung zum Abbilden von Benutzerdatenblöcken in den Chips 8 und 16 zu einem logischen Meta-Block zurückkehrt, die Steuerung Benutzerdatenblöcke von entsprechenden Chips 32 und 56 in der Abbildung einschließen. Wenn die Steuerung zum Abbilden von Benutzerdatenblöcken in den Chips 32 und 56 zu einem logischen Meta-Block zurückkehrt, kann die Steuerung in ähnlicher Weise Benutzerdatenblöcke von entsprechenden Chips 8 und 16 in der Abbildung einschließen. Somit kann die Steuerung auch während des Umschaltens zwischen physischen Meta-Chips mit ungleichen Anzahlen von Blöcken pro Chip fortfahren, logische Meta-Blöcke eines logischen Meta-Chips allen verfügbaren physischen Blöcken in den physischen Meta-Chips abzubilden, bis alle logischen Meta-Blöcke zugeordnet sind. Infolgedessen können immer noch eine gleiche Anzahl logischer Meta-Blöcke in dem logischen Meta-Chip 1102 und physische Meta-Blöcke über physische Meta-Chips 1104 hinweg gebildet werden.
  • 13 veranschaulicht ein Beispiel 1300, bei dem logische Meta-Blöcke eines logischen Meta-Chips 1302 auf physische Blöcke 1304 in Chips 1306 physischer Meta-Chips 1308 abwechselnd abgebildet werden. Zum Beispiel können die logischen Meta-Blöcke logischen Meta-Blöcken 1208 entsprechen, der logische Meta-Chip 1302 kann dem logischen Meta-Chip 1206 entsprechen, die Chips 1306 können den Chips 1214 entsprechen und die physischen Meta-Chips 1308 können den physischen Meta-Chips 1210 in 12 entsprechen. Wie in dem Beispiel von 13 veranschaulicht, kann die Steuerung anfänglich den logischen Meta-Block 0 physischen Blöcken 1304 über die Chips 1306 des physischen Meta-Chips 0 abbilden und dann den logischen Meta-Block 1 physischen Blöcken 1304 über die Chips 1306 des physischen Meta-Chips 1 abbilden. Wenn die Steuerung danach zu dem physischen Meta-Chip 0 für die logische Meta-Blockabbildung zurückkehrt, kann die Steuerung bestimmen, dass einem der Chips 1306 verfügbare physische Blöcke 1310 für eine weitere Meta-Blockabbildung fehlen. Infolgedessen kann die Steuerung den logischen Meta-Block 2 sowohl auf den physischen Block 1312 in dem entsprechenden Chip 1314 des physischen Meta-Chips 1 als auch auf die physischen Blöcke 1304 in den anderen Chips des physischen Meta-Chips 0 wie zuvor abbilden. Die Steuerung kann dann zu dem physischen Meta-Chip 1 zurückkehren, um den logischen Meta-Block 3 wie zuvor beschrieben abzubilden, und ähnlich für weitere logische Meta-Blöcke fortfahren, bis alle physischen Blöcke 1304 abgebildet wurden.
  • 14 veranschaulicht ein beispielhaftes Flussdiagramm 1400 eines Verfahrens zum Abbilden logischer Meta-Blöcke auf physische Meta-Blöcke über physische Meta-Chips hinweg. Zum Beispiel kann das Verfahren in einer Speichervorrichtung 102, wie der in 1 veranschaulichten, ausgeführt werden. Jeder der Schritte im Flussdiagramm kann mit der unten beschriebenen Steuerung (z.B. Steuerung 123, 606, 902, 1202), mit einer Komponente oder einem Modul der Steuerung oder mit einem anderen geeigneten Mittel gesteuert werden.
  • Wie durch Block 1402 dargestellt, kann die Steuerung einen nächsten physischen Meta-Chip X für einen nächsten logischen Meta-Block auswählen. Bezugnehmend auf 12 und 13 kann die Steuerung 1202 den physischen Meta-Chip 0 auswählen, um den logischen Meta-Block 0 physischen Blöcken 1304 über die Chips 1306 in dem physischen Meta-Chip 0 abzubilden. Als Nächstes kann die Steuerung, wie durch Block 1404 dargestellt, einen Block eines physischen Chips des physischen Meta-Chips X für den logischen Meta-Block finden. Bezugnehmend auf 7, 8, 12 und 13, kann die Steuerung 1202 eine oder mehrere der Abbildungstabellen 702, 704, 706, 802, 804, 806 prüfen, um zu bestimmen, ob einer der physischen Blöcke 1304 in einem der Chips 1306 in dem physischen Meta-Chip 0 verfügbar ist, um auf den logischen Meta-Block 0 abgebildet zu werden (z.B., er ist noch nicht auf einen logischen Meta-Block abgebildet). Wenn, wie durch Block 1406 dargestellt, die Steuerung bestimmt, dass der physische Block in dem physischen Meta-Chip X verfügbar ist, um auf den logischen Meta-Block abgebildet zu werden, dann wählt, wie durch Block 1408 dargestellt, die Steuerung diesen Block des physischen Meta-Chips X aus, um auf den logischen Meta-Block abgebildet zu werden. Bezugnehmend auf 12 und 13, kann die Steuerung 1202 einen Abbildungseintrag zu einer oder mehreren der Abbildungstabellen 704, 706, 804, 806 hinzufügen, der den physischen Block 1304 in einem der Chips 1306 im physischen Meta-Chips 0 dem logischen Meta-Block 0 zuordnet.
  • Alternativ bestimmt die Steuerung, wenn sie bei Block 1406 zurückkehrt, dass der physische Block nicht verfügbar ist, um auf den logischen Meta-Block abgebildet zu werden, dann findet die Steuerung, wie durch Block 1410 dargestellt, einen Block von einem entsprechenden Chip eines nächsten physischen Meta-Chips Y, um auf den logischen Meta-Block abgebildet zu werden. Bezugnehmend auf 12 und 13, wenn die Steuerung 1202 bestimmt, dass dem Chip 1306 verfügbare physische Blöcke 1310 zum Abbilden auf logischen Meta-Block 0 fehlen, kann die Steuerung eine oder mehrere der Abbildungstabellen 702, 704, 706, 802, 804, 806 überprüfen, um zu bestimmen, ob ein anderer der physischen Blöcke 1304 in dem entsprechenden Chip 1314 des physischen Meta-Chips 1 verfügbar ist, um auf den logischen Meta-Block 0 abgebildet zu werden (z.B., er ist noch nicht auf einen logischen Meta-Block abgebildet). In einem solchen Fall wählt die Steuerung den Block des physischen Meta-Chips Y aus, um ihn auf den logischen Meta-Block abzubilden. Bezugnehmend auf 12 und 13, die Steuerung 1202 kann einen Abbildungseintrag zu einer oder mehreren der Abbildungstabellen 704, 706, 804, 806 hinzufügen, der den physischen Block 1304 in dem entsprechenden Chip 1314 in dem physischen Meta-Chip 1 dem logischen Meta-Block 0 zuordnet.
  • Danach, wenn, wie durch Block 1412 dargestellt, die Steuerung bestimmt, dass noch nicht genug Blöcke auf den logischen Meta-Block abgebildet sind (z.B. erfordert jeder logische Meta-Block eine Anzahl von Blöcken, die gleich der Anzahl von Kanälen ist, und diese Anzahl von Blöcken wurde noch nicht abgebildet), dann fährt, wie durch Block 1414 dargestellt, die Steuerung fort, einen anderen physischen Block in einem anderen physischen Chip des physischen Meta-Chips X für diesen logischen Meta-Block zu finden. Bezugnehmend auf 12 und 13, nachdem die Steuerung einen der physikalischen Blöcke 1304 in einem der Chips 1306 des physikalischen Meta-Chips 0 (oder in dem entsprechenden Chip 1314 des physikalischen Meta-Chips 1) auf den logischen Meta-Block 0 abgebildet hat, kann die Steuerung bestimmen, dass nicht alle vier Blöcke (oder eine andere Anzahl) auf den logischen Meta-Block 0 abgebildet wurden, und so kann die Steuerung nach einem physischen Block in einem anderen der Chips 1306 des physischen Meta-Chips 0 suchen, um auf den logischen Meta-Block 0 abzubilden. Die Steuerung kann dann den vorstehend genannten Prozess wiederholen, um das Abbilden eines Blocks jedes Chips in dem physischen Meta-Chip X auf diesen logischen Meta-Block fortzusetzen. Bezugnehmend auf 12 und 13 kann die Steuerung fortfahren, einen physischen Block 1304 in jedem der Chips 1306 des physischen Meta-Chips 0 auf den logischen Meta-Block 0 abzubilden, bis alle vier physischen Blöcke abgebildet wurden und der logische Meta-Block 0 vollständig gebildet wurde.
  • Dementsprechend kann die Steuerung 123, 606, 1202 nach dem Abbilden logischer Meta-Blöcke 1208 zu physischen Meta-Blöcken 1212 fortfahren, Daten gleichzeitig in den physischen Blöcken 1304 über die Chips 1306 zu lesen oder zu schreiben, wie oben beschrieben. Zum Beispiel kann die Steuerung beim Lesen oder Schreiben von Daten in den physischen Blöcken 1304 Daten jeweils nur in einen der physischen Meta-Chips 1210, 1308 lesen oder schreiben. Zusätzlich kann die Steuerung logische Meta-Blöcke 1208 aus den abgebildeten physischen Blöcken identifizieren, zum Beispiel für Fehlermanagement oder andere Zwecke. Wenn zum Beispiel ein Lese- oder Schreibfehler in einem der physischen Blöcke 1304 auftritt oder wenn der physische Block nach einer Schwellenwertanzahl von Lese- oder Schreibfehlern ein schlechter Block wird, kann die Steuerung eine oder mehrere der Abbildungstabellen 702, 704, 706, 802, 804, 806 überprüfen, um den logischen Meta-Block 1208 und den logischen Meta-Chip 1206, die der physischen Adresse dieses fehlerhaften Block zugeordnet sind, zu identifizieren. Die Steuerung kann dann die Abbildungstabellen modifizieren, um die Zuordnung des fehlerhaften Blocks zu entfernen oder zu ersetzen, das Fehlerereignis einschließlich des logischen Meta-Blocks und des logischen Meta-Chips an die Hostvorrichtung zu melden oder andere Aktionen als Reaktion auf die Identifizierung durchzuführen. Wenn darüber hinaus die Anzahl der physischen Blöcke 1304 über die Chips 1214, 1306 der physischen Meta-Chips 1210, 1308 ungleich ist, wie in 11 veranschaulicht, kann die Steuerung 123, 606, 1202 neben dem Prüfen der Abbildungstabellen zusätzliche Schritte durchführen, um beispielsweise einen logischen Meta-Block zu identifizieren, wie nachstehend in Bezug auf 15 beschrieben.
  • 15 veranschaulicht ein beispielhaftes Flussdiagramm 1500 eines Verfahrens zum Identifizieren eines logischen Meta-Blocks eines logischen Meta-Chips aus einem physischen Block eines von mehreren physischen Meta-Chips, die dem logischen Meta-Chip zugeordnet sind. Zum Beispiel kann das Verfahren in einer Speichervorrichtung 102, wie der in 1 veranschaulichten, ausgeführt werden. Jeder der Schritte im Flussdiagramm kann mit der unten beschriebenen Steuerung (z.B. Steuerung 123, 606, 902, 1202), mit einer Komponente oder einem Modul der Steuerung oder mit einem anderen geeigneten Mittel gesteuert werden.
  • Wie durch Block 1502 dargestellt, kann die Steuerung einen physischen Block eines Chips eines physischen Meta-Chips auswählen, aus dem der logische Meta-Block zu identifizieren ist. Bezugnehmend auf 12 und 13, die Steuerung 1202 kann bestimmen, dass ein Lese- oder Schreibfehler in einem der physischen Blöcke 1304 eines der physischen Meta-Chips 1210, 1308 aufgetreten ist, oder dass der physische Block 1304 nach einer Schwellenwertanzahl von Lese- oder Schreibfehlern zu einem schlechten Block geworden ist, woraufhin die Steuerung denjenigen Block auswählen kann, aus dem ein zugehöriger logischer Meta-Block für Fehlermanagement oder andere Zwecke zu identifizieren ist.
  • Als Nächstes kann, wie durch Block 1504 dargestellt, die Steuerung prüfen, ob der physische Block, der von einem Chip eines physischen Meta-Chips identifiziert werden soll, einen entsprechenden physischen Block in einem entsprechenden Chip eines anderen physischen Meta-Chips einschließt. Bezugnehmend auf 11 und 12, wenn der Chip 0 1000 verfügbare Blöcke (z.B., Blöcke, die den Kennungen 1-1000 zugeordnet sind) einschließt und der Chip 32 1100 verfügbare Blöcke (z.B., Blöcke, die den Kennungen 1-1100 zugeordnet sind) einschließt, kann die Steuerung 1202 bestimmen, dass alle Benutzerdatenblöcke in Chip 0 und die ersten 1000 Benutzerdatenblöcke in Chip 32 diese Bedingung erfüllen (aber nicht die letzten 100 Benutzerdatenblöcke in Chip 32), da beide Chips 1000 verfügbare physische Blöcke einschließen. Das heißt, beide physischen Meta-Chips schließen in diesem Beispiel Blockkennungen 1-1000 auf dem Kanal ein, der mit den Chips 0 und 32 gekoppelt ist, während nur ein physischer Meta-Chips Blockkennungen 1001-1100 auf dem Kanal einschließt, der mit den Chips 0 und 32 gekoppelt ist.
  • Wenn die Steuerung bestimmt, dass der physische Block diese Bedingung erfüllt, dann kann, wie durch Block 1506 dargestellt, die Steuerung den logischen Meta-Block aus dem physischen Block identifizieren. Bezugnehmend auf das Beispiel von 11 kann die Steuerung beispielsweise einen logischen Meta-Block aus einem beliebigen der Benutzerdatenblöcke in dem Chip 0 oder einem beliebigen der ersten 1000 Benutzerdatenblöcke in dem Chip 32 identifizieren, indem sie die folgende Beispielformel anwendet, um die logische Meta-Blockadresse zu bestimmen, die der physischen Adresse des Benutzerdatenblocks zugeordnet ist, wobei LMB die logische Meta-Blockadresse ist, N die Anzahl physischer Meta-Chips ist und BlockID die Blockkennung oder physische Adresse des Benutzerdatenblocks ist: L M B = B l o c k I D N + ( N 1 ) .
    Figure DE102021116033A1_0001
  • Somit können logische Meta-Blöcke identifiziert werden, ohne auf Abbildungstabellen oder andere langwierige Informationen, die im Speicher gespeichert sind, angewiesen zu sein. Beispielsweise wird von einem Beispielfall ausgegangen, bei dem ein logischer Meta-Chip 2 physische Meta-Chips aufweist (ein 1. Meta-Chip und 2. Meta-Chip), ein Kanal mit zwei Chips gekoppelt ist (ein 1. Chip gehört zum 1. Meta-Chip und ein 2. Chip gehört zum 2. Meta-Chip), und dass auf diesem Kanal der 1. Chip 1000 Blöcke mit Kennungen/Adressen von Block#1 bis Block#1000 und der 2. Chip 1100 Blöcke mit Kennungen/Adressen von Block#1 bis Block#1100 aufweist. Zusammen mit anderen Chips in einem anderen Kanal können insgesamt 2100 (d. h. 1000 + 1100) logische Meta-Blöcke von logischem Meta-Block #1 bis #2100 erstellt werden. Außerdem wird in diesem Beispielfall angenommen, dass die Steuerung versucht, den logischen Meta-Block zu identifizieren, der der BLOCK-ID 500 im 1. Chip zugeordnet ist. Um zu identifizieren, welcher logische Meta-Block Block #500 des 1. Chips dieses Kanals zugeordnet ist, kann die Steuerung dementsprechend bestimmen, dass der 1. Chip des 1. Meta-Chips und der 2. Chip des 2. Meta-Chips in diesem Kanal beide Block mit BLOCK-ID=500 aufweisen. Daher kann die Steuerung den 1. Meta-Chip und den 2. Meta-Chip als 2 Meta-Chips oder 2 Chips in diesem Kanal zusammenfassen, und die Steuerung kann den logischen Meta-Block aus der vorstehend genannten Formel berechnen (unter der Annahme von blockID = 500 und N = 2), um LMB #1000 zu identifizieren.
  • Wenn jedoch die Steuerung in Block 1504 bestimmt, dass der physische Block diese Bedingung nicht erfüllt, dann kann, wie durch Block 1508 dargestellt, die Steuerung die Gruppe physischer Meta-Chips neu definieren, sodass die physische Blockkennung in allen physischen Meta-Chips der Gruppe gefunden werden kann. Darüber hinaus kann die Steuerung eine andere Formel anwenden, um die logische Meta-Blockadresse zu bestimmen, die der physischen Adresse des Benutzerdatenblocks zugeordnet ist, wie beispielsweise die folgende Beispielformel, wobei LMB die logische Meta-Blockadresse ist, N die Anzahl physischer Meta-Chips ist, L die letzte BLOCK-ID ist, die alle physischen Meta-Chips einschließen, BlockID die Blockkennung oder physische Adresse des Benutzerdatenblocks ist und P die Anzahl physischer Meta-Chips in der neu definierten Gruppe (die Anzahl physischer Meta-Chips einschließlich BlockID) ist: L M B = L N + ( B l o c k I D L ) P + ( P 1 ) ,
    Figure DE102021116033A1_0002
  • Beispielsweise wird von einem Beispielfall ausgegangen, bei dem ein logischer Meta-Chip 2 physische Meta-Chips aufweist (ein 1. Meta-Chip und 2. Meta-Chip), ein Kanal mit zwei Chips gekoppelt ist (ein 1. Chip gehört zum 1. Meta-Chip und ein 2. Chip gehört zum 2. Meta-Chip), und dass auf diesem Kanal der 1. Chip 1000 Blöcke mit Kennungen/Adressen von Block#1 bis Block#1000 und der 2. Chip 1100 Blöcke mit Kennungen/Adressen von Block#1 bis Block#1100 aufweist. Zusammen mit anderen Chips in einem anderen Kanal können insgesamt 2100 (d. h. 1000 + 1100) logische Meta-Blöcke von logischem Meta-Block #1 bis #2100 erstellt werden. Außerdem wird in diesem Beispielfall angenommen, dass die Steuerung versucht, den logischen Meta-Block zu identifizieren, der der BLOCK-ID 1003 im 2. Chip zugeordnet ist. Um zu identifizieren, welcher logische Meta-Block Block #1003 des 2. Chips dieses Kanals zugeordnet ist, kann die Steuerung dementsprechend bestimmen, dass der 1. Chip des 1. Meta-Chips in diesem Kanal keinen Block mit BLOCK-ID = 1003 aufweist. Daher schließt die Steuerung möglicherweise nicht den 1. Meta-Chip in der Gruppe physischer Meta-Chips ein, wodurch nur der 2. Meta-Chip in der Gruppe verbleibt (was zu P = 1 führt). Infolgedessen kann die Steuerung den logischen Meta-Block aus der vorstehend genannten Formel berechnen (unter der Annahme von L = 1000, blocklD = 1003, N = 2 und P = 1), um LMB #2003 zu identifizieren.
  • Obwohl die vorstehend genannte Beschreibung spezifische Formeln zum Identifizieren eines logischen Meta-Blocks aus einem physischen Block beschreibt, sind die Formeln nicht darauf beschränkt. Zum Beispiel kann die Steuerung logische Meta-Blockadressen in Abhängigkeit von physikalischen Blockadressen auf andere Weise berechnen. Obwohl sich die vorstehend genannten Beispiele insbesondere auf den Fall beziehen, in dem zwei physische Meta-Chips auf einen logischen Meta-Block abgebildet werden, kann die Steuerung darüber hinaus in ähnlicher Weise logische Meta-Blöcke eines logischen Meta-Chips berechnen, die auf mehr als zwei physische Meta-Chips abgebildet werden. Wenn zum Beispiel ein logischer Meta-Chip drei physischen Meta-Chips zugeordnet wird, kann die Steuerung die folgende Beispielformel anwenden, um die logische Meta-Blockadresse zu bestimmen, die der physischen Adresse des Benutzerdatenblocks zugeordnet ist, wobei LMB die logische Meta-Blockadresse ist, N die Anzahl physischer Meta-Chips ist, L und K letzte Block-IDs sind, die verschiedene physische Meta-Chips einschließen, BlockID die Blockkennung oder physische Adresse des Benutzerdatenblocks ist und P und Q verschiedene Anzahlen physischer Meta-Chips in neudefinierten Gruppen sind: L M B = L N + ( K L ) P + ( B l o c k I D K ) Q + ( Q 1 ) .
    Figure DE102021116033A1_0003
  • Nehmen wir einen Beispielfall an, in dem ein logischer Meta-Chip 3 physische Meta-Chips hat (einen 1. Meta-Chip, einen 2. Meta-Chip und einen 3. Meta-Chip), ein Kanal mit drei Chips gekoppelt ist (ein 1. Chip gehört zum 1. Meta-Chip, ein 2. Chip gehört zum 2. Meta-Chip, und ein 3. Chip gehört zum 3. Meta-Chip,) und dass auf diesem Kanal der 1. Chip 1000-Blöcke mit Kennungen/Adressen von Block#1 bis Block#1000 hat, der 2. Chip 1300-Blöcke mit Kennungen/Adressen von Block#1 bis Block#1300 hat und der 3. Chip 1200-Blöcke mit Kennungen/Adressen von Block #1 bis Block #1200 hat. Zusammen mit anderen Chips in einem anderen Kanal können insgesamt 3500 logische Meta-Blöcke von logischem Meta-Block #1 bis #3500 erstellt werden. Außerdem wird in diesem Beispielfall angenommen, dass die Steuerung versucht, den logischen Meta-Block zu identifizieren, der der BLOCK-ID 1300 im 2. Chip zugeordnet ist. Um zu identifizieren, welcher logische Meta-Block Block# 1300 des 2. Chips dieses Kanals zugeordnet ist, kann die Steuerung dementsprechend bestimmen, dass von Block-IDs #1 bis 1000 alle drei physischen Meta-Chips Blöcke mit diesen IDs auf demselben Kanal aufweisen (d. h. L = 1000 und N = 3). Der Steuerung kann auch bestimmen, dass von Block-IDs #1001 bis #1200 nur der 2. und 3. Meta-Chip Blöcke mit diesen IDs auf demselben Kanal aufweisen (d. h. K = 1200 und P = 2). Die Steuerung kann ferner bestimmen, dass von Block-IDs #1201 bis 1300 nur der 2. Meta-Chip Blöcke mit diesen IDs in diesem Kanal aufweist (Q = 1). Daher kann die Steuerung den logischen Meta-Block aus der oben genannten Formel berechnen (unter der Annahme von L=1000, K = 1200, blocklD = 1300, N = 3, P = 2 und Q = 1), um LMB #3500 zu identifizieren.
  • 16 veranschaulicht ein beispielhaftes Flussdiagramm 1600 eines Verfahrens zum Abbilden eines logischen Meta-Chips, der logische Meta-Blöcke einschließt, auf mehrere physische Meta-Chips, die jeweils physische Meta-Blöcke einschließen. Zum Beispiel kann das Verfahren in einer Speichervorrichtung 102, wie der in 1 veranschaulichten, ausgeführt werden. Jeder der Schritte im Flussdiagramm kann mit dem unten beschriebenen Steuerung (z.B. Steuerung 123), mit einer Komponente oder einem Modul der Steuerung oder mit anderen geeigneten Mitteln gesteuert werden.
  • Wie durch Block 1602 dargestellt, kann ein Speicher der Speichervorrichtung eine erste Vielzahl von Chips, die in einem ersten physischen Meta-Chip gruppiert sind, und eine zweite Vielzahl von Chips, die in einem zweiten physischen Meta-Chip gruppiert sind, einschließen, und die Steuerung kann einen logischen Meta-Chip auf den ersten physischen Meta-Chip und auf den zweiten physischen Meta-Chip abbilden. Bezugnehmend auf 1, 6-8 und 11-13, kann ein Speicher 602 (z.B., NVM 110) der Speichervorrichtung 102 eine erste Vielzahl von Chips (z.B., Chips 610, 1106, 1214, 1306) einschließen, die in einem ersten physischen Meta-Chip (z.B., physischer Meta-Chip 1104, 1210, 1308, physischer Meta-Chip 0 oder physischer Meta-Chip m) gruppiert sind, und eine zweite Vielzahl von Chips (z.B., Chips 610, 1106, 1214, 1306), die in einem zweiten physischen Meta-Chip (z.B., physischer Meta-Chip 1104, 1210, 1308, physischer Meta-Chip 1 oder physischer Meta-Chip m + 1) gruppiert sind. Der Steuerung 123, 606, 1202 kann einen logischen Meta-Chip (z.B., logischer Meta-Chip 1102, 1206, 1302, logischer Meta-Chip n) auf den ersten physischen Meta-Chip und auf den zweiten physischen Meta-Chip abbilden. Bezugnehmend auf 7 kann die Steuerung zum Beispiel den logischen Meta-Chip n beiden physischen Meta-Chips m und m + 1 in der Abbildungstabelle 706 zuordnen.
  • In einem Beispiel kann die erste Vielzahl von Chips einen ersten Chip (z.B., Chip 0 in 11) und einen zweiten Chip (z.B., Chip 8 in 11) aufweisen, und die zweite Vielzahl von Chips kann einen dritten Chip (z.B., Chip 32 in 11) und einen vierten Chip (z.B., Chip 40 in 11) aufweisen. Der erste Chip kann eine erste Vielzahl von Blöcken (z.B., Blöcke 612, Benutzerdatenblöcke in 11, physische Blöcke 1304) einschließen, und der zweite Chip kann eine zweite Vielzahl von Blöcken (z.B., Blöcke 612, Benutzerdatenblöcke in 11, physische Blöcke 1304) einschließen, wobei eine Anzahl der ersten Vielzahl von Blöcken (z.B., 1000 Benutzerdatenblöcke in Chip 0) kleiner ist als eine Anzahl der zweiten Vielzahl von Blöcken (z.B., 1100 Benutzerdatenblöcke in Chip 8). Der dritte Chip kann auch eine dritte Vielzahl von Blöcken (z.B., Blöcke 612, Benutzerdatenblöcke in 11, physische Blöcke 1304) einschließen und der vierte Chip kann eine vierte Vielzahl von Blöcken (z.B., Blöcke 612, Benutzerdatenblöcke in 11, physische Blöcke 1304) einschließen, wobei eine Anzahl der dritten Vielzahl von Blöcken (z.B., 1100 Benutzerdatenblöcke in dem Chip 32) größer ist als eine Anzahl der vierten Vielzahl von Blöcken (z.B., 1000 Benutzerdatenblöcke in dem Chip 40). Außerdem ist eine Summe der Anzahl der ersten Vielzahl von Blöcken und der Anzahl der dritten Vielzahl von Blöcken (z.B., 2100 = 1000 + 1100 Benutzerdatenblöcke zwischen den Chips 0 und 32) gleich einer Summe der Anzahl der zweiten Vielzahl von Blöcken und der Anzahl der vierten Vielzahl von Blöcken (z.B., 2100 = 1100 + 1000 Benutzerdatenblöcke zwischen den Chips 8 und 40).
  • Beim Lesen und Schreiben von Daten in den logischen Meta-Chip kann die Steuerung Daten jeweils nur in den ersten physischen Meta-Chip oder den zweiten physischen Meta-Chip lesen und schreiben. Wenn zum Beispiel unter Bezugnahme auf 7 der logische Meta-Chip n physischen Meta-Chips m und m + 1 zugeordnet wird, wie vorstehend beschrieben, und wenn die Steuerung einen Befehl zum Lesen oder Schreiben von Daten in den logischen Meta-Chip n empfängt, kann die Steuerung gleichzeitig Daten entweder in den physischen Meta-Chip m oder den physischen Meta-Chip m + 1 (aber nicht beide) lesen oder schreiben. Wenn zum Beispiel unter Bezugnahme auf das veranschaulichte Beispiel von 7 die Steuerung einen Befehl zum Lesen oder Schreiben von Daten in logischen Chips 0-3 empfängt, kann die Steuerung entweder gleichzeitig Daten in physischen Chips 0, 8, 16, 24 oder gleichzeitig in physischen Chips 32, 40, 48 und 56 lesen oder schreiben, aber nicht gleichzeitig in beiden Sätzen physischer Chips.
  • Wie durch Block 1604 dargestellt, kann der Speicher eine Vielzahl von physischen Meta-Chips einschließen, die jeweils eine Vielzahl von physischen Meta-Blöcken einschließen, und die Steuerung kann logische Meta-Blöcke des logischen Meta-Chips auf die physischen Meta-Blöcke abbilden. Zum Beispiel kann die Steuerung einen ersten logischen Meta-Block des logischen Meta-Chips auf einen ersten physischen Meta-Block des ersten physischen Meta-Chips und einen zweiten logischen Meta-Block des logischen Meta-Chips auf einen zweiten physischen Meta-Block des zweiten physischen Meta-Chips abbilden. Eine Anzahl der logischen Meta-Blöcke kann dieselbe sein wie eine Anzahl der physischen Meta-Blöcke. Bezugnehmend auf 1, 6-8 und 11-13, kann der Speicher 602 (z.B., NVM 110) eine Vielzahl von physischen Meta-Chips (z.B., physische Meta-Chips 1104, 1210, 1308) einschließen, die jeweils eine Vielzahl von physischen Meta-Blöcken (z.B., physische Meta-Blöcke 1212) einschließen, und die Steuerung 123, 606, 1202 kann logische Meta-Blöcke 1208 des logischen Meta-Chips (z.B., logischer Meta-Chip 1102, 1206, 1302) auf die physischen Meta-Blöcke 1212 abbilden. Bezugnehmend auf 12 und 13, kann die Steuerung den logischen Meta-Block 0 des logischen Meta-Chips 1302 auf einen der physischen Meta-Blöcke 1212 in dem physischen Meta-Chip 0 abbilden, und die Steuerung kann den logischen Meta-Block 1 des logischen Meta-Chips 1302 auf einen der physischen Meta-Blöcke 1212 in dem physischen Meta-Chip 1 abbilden. Bezugnehmend auf 7 und 8 kann die Steuerung den logischen Meta-Block x in dem logischen Meta-Chip n dem physischen Meta-Block y in dem physischen Meta-Chip m in Abbildungstabellen 704, 706, 804, 806 zuordnen, und die Steuerung kann den logischen Meta-Block x + 1 in dem logischen Meta-Chip n dem physischen Meta-Block y + 1 in dem physischen Meta-Chip m + 1 in Abbildungstabellen 704, 706, 804, 806 zuordnen. Somit kann die Anzahl logischer Meta-Blöcke gleich der Anzahl physischer Meta-Blöcke sein (z.B., jeder logische Meta-Block kann einem anderen physischen Meta-Block in der Abbildungstabelle 806 zugeordnet sein).
  • In einem Beispiel kann die Steuerung einen ersten der logischen Meta-Blöcke (z.B., logischer Meta-Block x) einem ersten der physischen Meta-Chips (z.B., physischer Meta-Chip m) zuordnen und einen zweiten der logischen Meta-Blöcke (z.B., logischer Meta-Block x + 1) einem zweiten der physischen Meta-Chips (z.B., physischer Meta-Chip m + 1) zuordnen. Bezugnehmend auf 7 und 8 kann die Steuerung den logischen Meta-Block x dem physischen Meta-Chip m zuordnen und den logischen Meta-Block x + 1 in ähnlicher Weise dem physischen Meta-Chip m + 1 zuordnen, indem sie einen oder mehrere Abbildungseinträge in einer oder mehreren der Abbildungstabellen 702, 704, 706, 802, 804, 806 erzeugt, die die logischen Meta-Blöcke mit entsprechenden physischen Meta-Blöcken in den jeweiligen physischen Meta-Chips verbinden. In einem anderen Beispiel kann die Steuerung einen ersten der logischen Meta-Blöcke (z.B., logischer Meta-Block x) auf eine erste Vielzahl von Blöcken (z.B., Blöcke 612, Benutzerdatenblöcke in 11, physische Blöcke 1304) in einem ersten der physischen Meta-Chips (z.B., physischer Meta-Chip m) abbilden und einen zweiten der logischen Meta-Blöcke (z.B., logischer Meta-Block x + 1) auf eine zweite Vielzahl von Blöcken (z.B., Blöcke 612, Benutzerdatenblöcke in 11, physische Blöcke 1304) in einem zweiten der physischen Meta-Chips (z.B., physischer Meta-Chip m + 1) abbilden. Bezugnehmend auf 7 und 8, kann die Steuerung den Blöcken in einem physischen Meta-Block des physischen Meta-Chips m den logischen Meta-Block x zuordnen und den Blöcken in einem physischen Meta-Block des physischen Meta-Chips m + 1 in ähnlicher Weise den logischen Meta-Block x + 1 zuordnen, indem ein oder mehrere Abbildungseinträge in einer oder mehreren der Abbildungstabellen 702, 704, 706, 802, 804, 806 erzeugt werden, die die logischen Meta-Blöcke mit entsprechenden Blöcken physischer Meta-Blöcke in den jeweiligen physischen Meta-Chips verbinden.
  • In einem Beispiel kann die Steuerung einen oder mehrere der logischen Meta-Blöcke einem der physischen Meta-Chips zuordnen und anschließend bestimmen, dass einem Chip in dem einen der physischen Meta-Chips Kapazität zur Zuordnung zusätzlicher logischer Meta-Blöcke fehlt. Bezugnehmend auf 12, 13 und 14, wie zum Beispiel bei Block 1406 beschrieben, kann die Steuerung 1202 nach dem Zuordnen des logischen Meta-Blocks 0 des logischen Meta-Chips 1302 zu dem physischen Meta-Chip 0 bestimmen, dass einem der Chips 1306 in dem physischen Meta-Chip 0 verfügbare physische Blöcke 1310 für eine weitere Meta-Blockabbildung fehlen. Daher kann die Steuerung einen anderen oder mehrere der logischen Meta-Blöcke einem anderen der physischen Meta-Chips zuordnen, als Reaktion auf das Bestimmen, dass dem Chip die Kapazität für die Zuordnung der zusätzlichen logischen Meta-Blöcke fehlt. Bezugnehmend auf 12, 13 und 14, wie zum Beispiel in Block 1410 beschrieben, kann die Steuerung 1202 den logischen Meta-Block 2 des logischen Meta-Chips 1302 mit dem physischen Meta-Chip 1 (z.B., über Block 1312 des entsprechenden Chips 1314) als Reaktion auf das Bestimmen des Fehlens verfügbarer physischer Blöcke 1310 in dem vorstehend genannten Chip zuordnen. In einem anderen Beispiel kann die Steuerung einen der logischen Meta-Blöcke einem der physischen Meta-Chips zuordnen, als Reaktion auf das Bestimmen, dass einem der Chips in einem anderen der physischen Meta-Chips Kapazität für die Zuordnung zusätzlicher logischer Meta-Blöcke fehlt. Bezugnehmend auf 12, 13 und 14, wie zum Beispiel bei den Blöcken 1406 und 1410 beschrieben, kann die Steuerung 1202 den logischen Meta-Block 2 des logischen Meta-Chips 1302 dem physischen Meta-Chip 1 zuordnen, als Reaktion auf das Bestimmen, dass einem der Chips 1306 in dem physischen Meta-Chip 0 verfügbare physische Blöcke 1310 zum Zuordnen zu dem logischen Meta-Block 2 fehlen.
  • Zusätzlich kann die Steuerung einen der logischen Meta-Blöcke aus einem physischen Block in einem der physischen Meta-Chips identifizieren, zum Beispiel wie vorstehend in Bezug auf 15 beschrieben. In einem Beispiel kann eine Anzahl physischer Blöcke eines Chips in dem einen der physischen Meta-Chips kleiner oder gleich einer Anzahl physischer Blöcke eines anderen Chips in einem anderen der physischen Meta-Chips sein. Zum Beispiel, wie vorstehend in Bezug auf 11, 12 und 15 beschrieben, wenn der betreffende physische Block im Chip 0 ist, kann die Steuerung 1202 bestimmen, dass eine Anzahl von Benutzerdatenblöcken (z.B., 1000-Blöcken) des Chips 0 in einem der physischen Meta-Chips 1104 kleiner oder gleich einer Anzahl von Benutzerdatenblöcken (z.B., 1100-Blöcken) des Chips 32 in einem anderen der physischen Meta-Chips 1104 ist. In einem solchen Fall kann die Steuerung den logischen Meta-Block 1208, der diesem Benutzerdatenblock zugeordnet ist, wie vorstehend in Bezug auf Block 1506 beschrieben (z.B. aus einer oder mehreren der Abbildungstabellen 702, 704, 706, 802, 804, 806) identifizieren. In einem anderen Beispiel kann eine Anzahl physischer Blöcke eines Chips in dem einen der physischen Meta-Chips größer sein als eine Anzahl physischer Blöcke eines anderen Chips in einem anderen der physischen Meta-Chips, und die Steuerung kann den einen der physischen Meta-Chips vor dem Identifizieren des einen der logischen Meta-Blöcke neu gruppieren. Zum Beispiel, wie vorstehend in Bezug auf 11, 12 und 15 beschrieben, wenn sich der betreffende physische Block in dem Chip 32 befindet, kann die Steuerung 1202 bestimmen, dass eine Anzahl von Benutzerdatenblöcken (z.B., 1100-Blöcke) des Chips 32 in einem der physischen Meta-Chips 1104 größer ist als eine Anzahl von Benutzerdatenblöcken (z.B., 1000-Blöcke) des Chips 0 in einem anderen der physischen Meta-Chips 1104. In einem solchen Fall kann die Steuerung den physischen Meta-Chip vor dem Identifizieren des logischen Meta-Blocks 1208, der diesem Benutzerdatenblock zugeordnet ist, neu gruppieren, wie vorstehend in Bezug auf Block 1508 beschrieben. Zum Beispiel kann die Steuerung beim Umgruppieren des einen der physischen Meta-Chips den physischen Block von dem einen der physischen Meta-Chips entfernen (z.B., durch Entfernen des Chips 32 von dem vorhandenen physischen Meta-Chip 1104) und den physischen Blocks zu einem zusätzlichen der physischen Meta-Chips (z.B. durch Zuordnen des Chips 32 einschließlich des Blocks zu einem neuen physischen Meta-Chip, der auf den logischen Meta-Chip 1102 abgebildet ist) hinzufügen.
  • 17 ist ein konzeptionelles Diagramm, das ein Beispiel 1700 einer Steuerung 1702 veranschaulicht, die mit einem Speicher 1704 in einer Speichervorrichtung gekoppelt ist. Zum Beispiel kann die Steuerung 1702 der Steuerung 123, 606, 902, 1202 entsprechen, und der Speicher 1704 kann dem Speicher 602 oder dem NVM 110 der Speichervorrichtung 102 in 1 entsprechen. Die Steuerung kann in Software, Hardware oder einer Kombination aus Hardware und Software implementiert sein. In einer beispielhaften Ausführungsform ist die Steuerung mit mehreren Softwaremodulen implementiert, die auf einem oder mehreren Prozessoren ausgeführt werden, aber wie Fachleute erkennen werden, kann die Steuerung auf unterschiedliche Weise implementiert werden. Der Fachmann wird leicht verstehen, wie die Steuerung am besten basierend auf den bestimmten Konstruktionsparametern des Systems zu implementieren ist.
  • Die Steuerung 1702 kann ein Abbildungsmodul 1706 einschließen, das ein Mittel zum Abbilden eines logischen Meta-Chips zu dem ersten physischen Meta-Chip und dem zweiten physischen Meta-Chip bereitstellen kann. Zum Beispiel kann das Abbildungsmodul 1706 einen der vorstehend genannten Prozesse durchführen, wie in 14, 15 oder 16 beschrieben. In einer Konfiguration kann das Abbildungsmodul eingerichtet sein, logische Meta-Blöcke eines logischen Meta-Chips auf physische Meta-Blöcke einer Vielzahl physischer Meta-Chips, z.B., abzubilden, wie in Verbindung mit 1604. beschrieben. In einer Konfiguration kann das Abbildungsmodul eingerichtet sein, einen ersten logischen Meta-Block eines logischen Meta-Chips einem ersten der physischen Meta-Chips zuzuordnen und einen zweiten logischen Meta-Block des logischen Meta-Chips einem zweiten der physischen Meta-Chips zuzuordnen.
  • In einem 1. Beispiel schließt der Speicher eine Vielzahl von physischen Meta-Chips ein, wobei jeder physische Meta-Chip eine Vielzahl von Chips einschließt, wobei jeder der Chips in einem gleichen der physischen Meta-Chips mit einem anderen Kanal gekoppelt ist und wobei zwei oder mehr der Chips in dem gleichen der physischen Meta-Chips eine andere Anzahl von Blöcken einschließen; und die Steuerung ist eingerichtet, um einen logischen Meta-Chip auf die physischen Meta-Chips abzubilden, wobei eine Gesamtzahl von Blöcken in den Chips, die mit einem der Kanäle gekoppelt sind, dieselbe ist wie eine Gesamtzahl von Blöcken in den Chips, die mit einem anderen der Kanäle gekoppelt sind. Beispielsweise kann der Speicher 602 (z.B., NVM 110), unter Bezugnahme auf die vorstehend genannten Figuren, physische Meta-Chips 1104, 1210, 1308 einschließen, wobei jeder physische Meta-Chip Chips 610, 1106, 1214, 1306 einschließt, wobei jeder der Chips in einem gleichen der physischen Meta-Chips mit einem anderen Kanal gekoppelt ist (z.B., Chips 0, 8, 16 und 24 in 11 sind jeweils mit einem anderen Kanal 608 gekoppelt und in ähnlicher Weise sind die Chips 32, 40, 48 und 56 in 11 jeweils mit einem anderen Kanal 608 gekoppelt), und wobei zwei oder mehr der Chips in demselben der physischen Meta-Chips eine andere Anzahl von Blöcken einschließen (z.B., die Chips 0 und 8 in 11 schließen eine andere Anzahl von Benutzerdatenblöcken ein, wie beispielsweise 1000-bzw. 1100-Blöcke). Die Steuerung 123, 606, 1202 bildet logische Meta-Chips 1102, 1206, 1302 auf die physischen Meta-Chips (z.B., wie oben in Bezug auf 7 beschrieben) ab, wobei eine Gesamtzahl von Blöcken in den Chips, die mit einem der Kanäle gekoppelt sind, die gleiche ist wie eine Gesamtzahl von Blöcken in den Chips, die mit einem anderen der Kanäle gekoppelt sind (z.B., Chips 0 und 32 in 11 sind mit einem gleichen Kanal 608 gekoppelt und schließen jeweils 1000 und 1100 Benutzerdatenblöcke ein, die Chips 8 und 40 sind mit einem gleichen Kanal gekoppelt und schließen jeweils 1100- und 1000-Benutzerdatenblöcke ein, und die Gesamtzahl von Benutzerdatenblöcken in den Chips 0 und 32 [2100-Blöcke] ist die gleiche wie die Gesamtzahl von Benutzerdatenblöcken in den Chips 8 und 40 [2100-Blöcke]).
  • In einem 2. Beispiel ist die Steuerung ferner eingerichtet, um beim Lesen und Schreiben von Daten in den logischen Meta-Chip die Daten jeweils nur in einen der physischen Meta-Chips zu lesen und zu schreiben. Zum Beispiel liest und schreibt in Bezug auf die obengenannten Figuren, die Steuerung 123, 606, 1202 beim Lesen und Schreiben von Daten 119 in den logischen Meta-Chips 1102, 1206, 1302 Daten 119 jeweils nur in einen der physischen Meta-Chips 1104, 1210, 1308.
  • In einem 3. Beispiel ist die Steuerung ferner eingerichtet, um einen i-ten logischen Meta-Block des logischen Meta-Chips auf einen j-ten physischen Meta-Block in einem (((i-1) mod n)+1)-ten der physischen Meta-Chips abzubilden, wobei n eine Anzahl der physischen Meta-Chips ist, wobei i = j = 1 anfänglich, wobei i nach jeder Abbildung um 1 inkrementiert wird und wobei j um 1 inkrementiert wird, wenn ((i-1) mod n) = 0. Diese Abbildung kann zum Beispiel durch logisch-physische Meta-Blockabbildungen 1, 2, 3 und 4 im Beispiel von 12 veranschaulicht werden, wobei logische Meta-Blöcke 1208 physischen Meta-Blöcken 1212 in alternierenden physischen Meta-Chips 1210 zugeordnet werden. Beispielsweise bildet die Steuerung 123, 606, 1202 unter Bezugnahme auf die vorstehend genannten Figuren mit n = 2 anfänglich einen ersten logischen Meta-Block (i = 1) auf einen ersten physischen Meta-Block 1212 (j=1) in einem ersten physischen Meta-Chip ((((i-1) mod n)+1) = 0 mod 2+ 1 = 1) ab. Dies entspricht der Abbildung ,1' in 12. Als Nächstes inkrementiert die Steuerung i und bildet einen zweiten logischen Meta-Block (i = 2) auf einen ersten physischen Meta-Block 1212 (j = 1) in einem zweiten physischen Meta-Chip ((((i-1) mod n)+1) = 1 mod 2 + 1 = 2) ab. Dies entspricht der Abbildung ,2' in 12. Danach inkrementiert die Steuerung i, woraus sich ((i-1) mod n) = 0 ergibt, und dadurch inkrementiert die Steuerung j. Als Nächstes bildet die Steuerung einen dritten logischen Meta-Block (i = 3) auf einen zweiten physischen Meta-Block (j = 2) in dem ersten physischen Meta-Chip ((((i-1) mod n)+1) = 2 mod 2 + 1 = 1) ab. Dies entspricht der Abbildung ,3' in 12. Dann inkrementiert die Steuerung i und bildet einen vierten logischen Meta-Block (I = 4) auf den zweiten physischen Meta-Block in dem zweiten physischen Meta-Chip ab ((((i-1) mod n)+1) = 3 mod 2 + 1 = 2). Dies entspricht der Abbildung ,4' in 12. Die Steuerung kann fortfahren, den Rest der logischen Meta-Blöcke abwechselnd auf physische Meta-Blöcke abzubilden, wie oben beschrieben. Während sich das vorstehend genannte Beispiel speziell auf Fälle bezieht, in denen ein einzelner logischer Meta-Chip auf zwei physische Meta-Chips abgebildet wird (n = 2), kann die vorstehend genannte Formel in ähnlicher Weise in Fällen gelten, in denen mehr als zwei physische Meta-Chips auf einen einzelnen logischen Meta-Chip abgebildet werden (z.B., n > 2).
  • In einem 4. Beispiel ist die Steuerung eingerichtet, als Reaktion auf das Bestimmen, dass einem der Chips in dem (((i-1) mod n)+1)-ten der physischen Meta-Chips verfügbare Blöcke zum Abbilden auf den i-ten logischen Meta-Block fehlen, den i-ten logischen Meta-Block auf einen Block in einem anderen der Chips abzubilden, der mit demselben Kanal gekoppelt ist wie der eine der Chips, dem die verfügbaren Blöcke fehlen. Bezugnehmend auf 12 und 13, da die Steuerung 1202 logische Meta-Blöcke auf physische Meta-Blöcke abbildet, wie unmittelbar oben beschrieben, kann die Steuerung 1202 bestimmen, dass dem Chip 1306 in dem physischen Meta-Chip 0 verfügbare Blöcke 1310 fehlen, die auf den logischen Meta-Block 2 abzubilden sind. Als Reaktion auf diese Bestimmung kann die Steuerung den logischen Meta-Block 2 auf Block 1312 im Chip 1314 des physischen Meta-Chips 1 abbilden, da Chips 1306, 1314 mit demselben Kanal gekoppelt sind. Zum Beispiel kann der Chip 1306 dem Chip 0 entsprechen und der Chip 1314 kann dem Chip 1314 in 11 entsprechen.
  • In einem 5. Beispiel ist die Steuerung ferner eingerichtet, um einen logischen Meta-Block des logischen Meta-Chips aus einem Block in einem der physischen Meta-Chips zu identifizieren, wobei der logische Meta-Block basierend auf einer Blockkennung des Blocks identifiziert wird. Bezugnehmend auf 11-13 kann die Steuerung 1202 den logischen Meta-Block 0 aus einem Benutzerdatenblock in dem Chip 0 mit der BLOCK-ID 1 identifizieren, da der logische Meta-Block 0 dem ersten Benutzerdatenblock des Chip 0 zugeordnet ist, wie durch Abbilden ,1' in 12 veranschaulicht, In ähnlicher Weise kann die Steuerung den logischen Meta-Block 3 aus einem Benutzerdatenblock in dem Chip 32 mit BLOCK-ID 2 identifizieren, da der logische Meta-Block 3 dem 2. Benutzerdatenblock des Chip 32 zugeordnet ist, wie durch Abbilden'3' in 12 veranschaulicht. Verschiedene Beispiele (z.B., Formeln), wie die Steuerung eine solche Kennung durchführen kann, sind vorstehend in Bezug auf 15 beschrieben.
  • In einem 6. Beispiel schließt der Speicher eine Vielzahl von physischen Meta-Chips ein, die jeweils eine Vielzahl von physischen Meta-Blöcken einschließen; und die Steuerung ist eingerichtet, um logische Meta-Blöcke eines logischen Meta-Chips auf die physischen Meta-Blöcke abzubilden, wobei einer der logischen Meta-Blöcke Blöcken in zwei oder mehr der physischen Meta-Chips zugeordnet ist. Zum Beispiel schließt der Speicher 602 (z.B., NVM 110) unter Bezugnahme auf die vorstehend genannten Figuren physische Meta-Chips 1104, 1210, 1308 ein, die jeweils physische Meta-Blöcke 1212 einschließen, und die Steuerung 123, 606, 1202 bildet logische Meta-Blöcke 1208 des logischen Meta-Chips 1102, 1206, 1302 auf die physischen Meta-Blöcke (z.B., wie oben in Bezug auf 8 beschrieben) ab, wobei einer der logischen Meta-Blöcke Blöcken in zwei oder mehr der physischen Meta-Chips zugeordnet ist (z.B., logischer Meta-Block 2 in 13 ist Blöcken 1304, 1312 in beiden physischen Meta-Chips 0 und 1 zugeordnet).
  • In einem 7. Beispiel ist die Steuerung ferner eingerichtet, um beim Lesen und Schreiben von Daten in die logischen Meta-Blöcke die Daten jeweils nur in einen der physischen Meta-Chips zu lesen und zu schreiben. Zum Beispiel liest und schreibt in Bezug auf die obengenannten Figuren, die Steuerung 123, 606, 1202 beim Lesen und Schreiben von Daten 119 in logischen Meta-Blöcken 1208 Daten 119 in jeweils nur einen der physischen Meta-Chips 1104, 1210, 1308.
  • In einem 8. Beispiel ist die Steuerung ferner eingerichtet, um einen i-ten logischen Meta-Block des logischen Meta-Chips auf einen j-ten physischen Meta-Block in einem (((i-1) mod n)+1)-ten der physischen Meta-Chips abzubilden, wobei n eine Anzahl der physischen Meta-Chips ist, wobei i = j = 1 anfänglich, wobei i als Reaktion auf jede Abbildung um 1 inkrementiert wird, wobei j als Reaktion auf ((i-1) mod n) = 0 um 1 inkrementiert wird. Einzelheiten dieser Abbildung sind oben beispielsweise anhand des 3. Beispiels und der oben genannten Figuren beschrieben.
  • In einem 9. Beispiel ist die Steuerung eingerichtet, um den einen der logischen Meta-Blöcke Blöcken in den zwei oder mehr der physischen Meta-Chips als Reaktion auf das Bestimmen zuzuordnen, dass einem der Chips in dem (((i-1) mod n)+1)-ten der physischen Meta-Chips verfügbare Blöcke fehlen, um sie auf den i-ten logischen Meta-Block abzubilden. Einzelheiten dieser Zuordnung sind oben beispielsweise anhand des 4. Beispiels und der vorgenannten Figuren beschrieben.
  • In einem 10. Beispiel ist der eine der logischen Meta-Blöcke einem der Blöcke in einem anderen der Chips zugeordnet, der mit demselben Kanal gekoppelt ist wie der eine der Chips, dem die verfügbaren Blöcke fehlen. Einzelheiten dieser Zuordnung sind oben beispielsweise anhand des 4. Beispiels und der vorgenannten Figuren beschrieben.
  • In einem 11. Beispiel ist die Steuerung ferner eingerichtet, um den einen der logischen Meta-Blöcke des logischen Meta-Chips aus einem Block in einem der physischen Meta-Chips zu identifizieren, wobei der logische Meta-Block basierend auf einer Blockkennung des Blocks in einer Gruppe der physischen Meta-Chips identifiziert wird. Einzelheiten dieser Identifizierung sind vorstehend zum Beispiel in Bezug auf das 5. Beispiel und die vorstehend genannten Figuren einschließlich 15. beschrieben. Wenn zum Beispiel angenommen wird, dass die Chips 0 und 32 in 11 jeweils Blockkennungen 1-1000 einschließen (z.B. jeder Chip schließt mindestens 1000 Benutzerdatenblöcke ein), kann die Steuerung 1202 einen beliebigen der logischen Meta-Blöcke 1-2000 aus einer entsprechenden BLOCK-ID in einer Gruppe physischer Meta-Chips einschließlich physischer Meta-Chips 1104 identifizieren.
  • In einem 12. Beispiel schließt der Speicher eine Vielzahl von physischen Meta-Chips ein, die jeweils eine Vielzahl von Chips aufweisen, wobei jeder der physischen Meta-Chips eine Vielzahl von physischen Meta-Blöcken einschließt und wobei jeder der Chips mit einem Kanal gekoppelt ist und eine Vielzahl von Blöcken einschließt. Die Steuerung ist eingerichtet, um einen logischen Meta-Chip auf die physischen Meta-Chips abzubilden, um logische Meta-Blöcke des logischen Meta-Chips auf die physischen Meta-Blöcke abzubilden, wobei ein erster der logischen Meta-Blöcke einem der physischen Meta-Chips zugeordnet ist und ein zweiter der logischen Meta-Blöcke zwei oder mehr der physischen Meta-Chips zugeordnet ist, und den ersten der logischen Meta-Blöcke aus einem ersten der Blöcke und den zweiten der logischen Meta-Blöcke aus einem zweiten der Blöcke zu identifizieren. Zum Beispiel schließt der Speicher 602 (z.B., NVM) unter Bezugnahme auf die vorstehend genannten Figuren physische Meta-Chips 1104, 1210, 1308 ein, die jeweils Chips 1106, 1214, 1306 aufweisen, wobei jeder der physischen Meta-Chips physische Meta-Blöcke 1212 einschließt und wobei jeder der Chips mit einem Kanal 608 gekoppelt ist und Blöcke 916, 1304 einschließt. Die Steuerung 123, 606, 1202 bildet einen logischen Meta-Chip 1102, 1206, 1302 auf physische Meta-Chips 1104, 1210, 1308 (z.B., wie oben in Bezug auf 7 beschrieben) ab, bildet logische Meta-Blöcke 1208 des logischen Meta-Chips auf physische Meta-Blöcke 1212 (z.B., wie oben in Bezug auf 8 beschrieben) ab. Ein erster der logischen Meta-Blöcke 1208 ist einem der physikalischen Meta-Chips zugeordnet (z.B., bezugnehmend auf 13, logischer Meta-Block 0 ist nur dem physikalischen Meta-Chip 0 zugeordnet, logischer Meta-Block 1 ist nur dem physikalischen Meta-Chip 1 zugeordnet, usw.) und ein zweiter der logischen Meta-Blöcke ist zwei oder mehr der physischen Meta-Chips zugeordnet (z.B., unter Bezugnahme auf 13, logischer Meta-Block 2 ist beiden physischen Meta-Chips 0 und 1 zugeordnet). Die Steuerung identifiziert auch den ersten der logischen Meta-Blöcke (z.B., logischer Meta-Block 0 in 13) aus einem ersten der Blöcke (z.B., Block 1304) und den zweiten der logischen Meta-Blöcke aus einem zweiten der Blöcke (z.B., Block 1312), wie vorstehend in Bezug auf das 5. und 11. Beispiel und 15 beschrieben.
  • In einem 13. Beispiel ist die Steuerung eingerichtet, um den ersten der logischen Meta-Blöcke basierend auf einer Blockkennung des ersten der Blöcke in einer ersten Gruppe der physischen Meta-Chips zu identifizieren, und den zweiten der logischen Meta-Blöcke basierend auf einer Blockkennung des zweiten der Blöcke in einer zweiten Gruppe der physischen Meta-Chips zu identifizieren, wobei sich die zweite Gruppe von der ersten Gruppe unterscheidet. Bezugnehmend auf 11-13 und wie oben in Bezug auf 15 beschrieben, kann die Steuerung 1202 den logischen Meta-Block 1000 aus einem Benutzerdatenblock mit BLOCK-ID 500 im Chip 32 einer ersten Gruppe von physischen Meta-Chips, einschließlich physischer Meta-Chips 0 und 1, während die Steuerung den logischen Meta-Block 2003 aus einem Benutzerdatenblock mit BLOCK-ID 1003 in dem Chip 32 einer zweiten Gruppe physischer Meta-Chips, die nur den physischen Meta-Chip 1 einschließt, identifizieren.
  • In einem 14. Beispiel schließt jeder der physischen Meta-Chips in der ersten Gruppe einen Chip ein, der mit einem gleichen Kanal gekoppelt ist, und die Steuerung ist eingerichtet, um den ersten der logischen Meta-Blöcke aus dem ersten der Blöcke als Reaktion auf das Bestimmen zu identifizieren, dass jeder der Chips, die mit dem gleichen Kanal gekoppelt sind, einen Block einschließt, der einer gleichen Blockkennung wie der erste der Blöcke zugeordnet ist. Bezugnehmend auf das 13. Beispiel sowie 11-13 und wie oben in Bezug auf 15 beschrieben, sind die Chips 0 und 32 in den physischen Meta-Chips 0 und 1 (die erste Gruppe physischer Meta-Chips) jeweils mit demselben Kanal 608 gekoppelt, und die Steuerung 1202 kann den logischen Meta-Block 1000 aus dem Benutzerdatenblock mit der BLOCK-ID 500 in dem Chip 32 als Reaktion auf das Bestimmen, dass die Chips 0 und 32 jeweils einen Benutzerdatenblock mit der BLOCK-ID 500 einschließen, identifizieren. Zum Beispiel kann die Steuerung die oben in Bezug auf 15 beschriebene erste Formel (oder eine andere Formel) anwenden, um den logischen Meta-Block als Reaktion auf die Bestimmung zu berechnen.
  • In einem 15. Beispiel schließt jeder der physischen Meta-Chips einen Chip ein, der mit einem gleichen Kanal gekoppelt ist, und die Steuerung ist eingerichtet, um den zweiten der logischen Meta-Blöcke aus dem zweiten der Blöcke als Reaktion auf das Bestimmen, dass einem der Chips, die mit dem gleichen Kanal gekoppelt sind, ein Block fehlt, der mit der Blockkennung des zweiten der Blöcke assoziiert ist, zu identifizieren. Bezugnehmend auf das 13. Beispiel sowie 11-13 und wie oben in Bezug auf 15 beschrieben, sind die Chips 0 und 32 in physischen Meta-Chips 0 und 1 jeweils mit demselben Kanal 608 gekoppelt, und die Steuerung 1202 kann den logischen Meta-Block 2003 aus dem Benutzerdatenblock mit BLOCK-ID 1003 in dem Chip 32 als Reaktion auf das Bestimmen identifizieren, dass dem Chip 0 ein Benutzerdatenblock mit BLOCK-ID 1003 fehlt (da Chip 0 nur 1000 Benutzerdatenblöcke einschließt, während Chip 32 in diesem Beispiel 1100 Benutzerdatenblöcke einschließt). Zum Beispiel kann die Steuerung die oben in Bezug auf 15 beschriebene zweite Formel (oder eine andere Formel) anwenden, um den logischen Meta-Block als Reaktion auf die Bestimmung zu berechnen.
  • In einem 16. Beispiel schließt die zweite Gruppe eine geringere Anzahl physischer Meta-Chips ein als die erste Gruppe. Beispielsweise ist unter Bezugnahme auf die 13., 14. und 15. Beispiele ist die zweite Gruppe physischer Meta-Chips (z.B., physischer Meta-Chips 1) kleiner als die erste Gruppe physischer Meta-Chips (z.B., physischer Meta-Chips 0 und 1).
  • In einem 17. Beispiel ist die Steuerung ferner eingerichtet, um einen i-ten logischen Meta-Block des logischen Meta-Chips auf einen j-ten physischen Meta-Block in einem (((i-1) mod n)+1)-ten der physischen Meta-Chips abzubilden, wobei n eine Anzahl der physischen Meta-Chips ist, wobei i = j = 1 anfänglich, wobei i nach jeder Abbildung um 1 inkrementiert wird und wobei j um 1 inkrementiert wird, wenn ((i-1) mod n) = 0. Einzelheiten dieser Abbildung sind vorstehend beispielsweise unter Bezugnahme auf das 3. und 8. Beispiel und die vorstehend genannten Figuren beschrieben.
  • In einem 18. Beispiel ist die Steuerung ferner eingerichtet, um beim Lesen und Schreiben von Daten in den logischen Meta-Chip die Daten jeweils nur in einen der physischen Meta-Chips zu lesen und zu schreiben. Zum Beispiel liest und schreibt in Bezug auf die obengenannten Figuren, die Steuerung 123, 606, 1202 beim Lesen und Schreiben von Daten 119 im logischen Meta-Chip 1102, 1206, 1302 Daten 119 jeweils nur in einen der physischen Meta-Chips 1104, 1210, 1308.
  • In einem 19. Beispiel schließen zwei oder mehr der Chips in einem gleichen der physischen Meta-Chips eine unterschiedliche Anzahl von Blöcken ein. Zum Beispiel können, wie vorstehend in Bezug auf das 1. Beispiel und die vorstehend genannten Figuren beschrieben, die Chips 0 und 8 in demselben physischen Meta-Chip von 11 unterschiedliche Anzahlen von Benutzerdatenblöcken einschließen, wie beispielsweise 1000- bzw. 1100-Blöcke.
  • In einem 20. Beispiel ist eine Gesamtzahl von Blöcken in den Chips, die mit einem der Kanäle gekoppelt sind, dieselbe wie eine Gesamtzahl von Blöcken in den Chips, die mit einem anderen der Kanäle gekoppelt sind. Zum Beispiel sind, wie vorstehend in Bezug auf das 19. Beispiel und die vorstehend genannten Figuren beschrieben, die Chips 0 und 32 in 11 mit einem gleichen Kanal 608 gekoppelt und schließen jeweils 1000- und 1100-Benutzerdatenblöcke ein, Chips 8 und 40 sind mit einem gleichen Kanal gekoppelt und schließen jeweils 1100- und 1000-Benutzerdatenblöcke ein, und die Gesamtzahl von Benutzerdatenblöcken in den Chips 0 und 32 (2100-Blöcke) ist die gleiche wie die Gesamtzahl von Benutzerdatenblöcken in den Chips 8 und 40 (2100-Blöcke).
  • Dementsprechend reduziert die in der vorliegenden Offenbarung beschriebene Steuerung die Firmware-Komplexität beim Verwalten logischer und physischer Meta-Chips und Meta-Blöcke, wenn neue Chips und Blöcke zur Speichervorrichtung hinzugefügt werden, um die Speicherkapazität zu erhöhen. Anstatt zum Beispiel einen einzelnen logischen Meta-Chip auf einen einzelnen physischen Meta-Chip gemäß einer Eins-zu-Eins-Abbildung abzubilden, kann die Steuerung einen einzelnen logischen Meta-Chip auf mehrere physische Meta-Chips gemäß einer Eins-zu-Vielen-Abbildung abbilden. Auf diese Weise kann sich auch die Ertragsrate der Speichervorrichtung verbessern.
  • Die verschiedenen Gesichtspunkte dieser Offenbarung werden bereitgestellt, um es einem Fachmann zu ermöglichen, die vorliegende Erfindung praktisch umzusetzen. Verschiedene Modifikationen an beispielhaften Ausführungsformen, die in dieser Offenbarung dargestellt werden, werden für den Fachmann leicht ersichtlich sein, und die hierin offenbarten Konzepte können auf andere magnetische Speichervorrichtungen ausgedehnt werden. Daher sollen die Ansprüche nicht auf die verschiedenen Gesichtspunkte dieser Offenbarung beschränkt sein, sondern es soll ihnen der volle Schutzumfang in Übereinstimmung mit der Formulierung der Ansprüche gewährt werden. Alle strukturellen und funktionalen Äquivalente zu den verschiedenen Komponenten der beispielhaften Ausführungsformen, die in dieser Offenbarung beschrieben sind und die einem Fachmann bekannt sind oder später bekannt werden, werden hiermit ausdrücklich durch Bezugnahme aufgenommen und sollen durch die Ansprüche eingeschlossen sein. Darüber hinaus soll nichts hierin Offenbartes der Öffentlichkeit gewidmet sein, ungeachtet dessen, ob eine solche Offenbarung in den Ansprüchen ausdrücklich erwähnt wird. Kein Anspruchselement ist gemäß den Bestimmungen von 35 U.S.C. § 112(f) in den Vereinigten Staaten oder eines analogen Gesetzes oder Rechtsgrundsatzes in einer anderen Region zu verstehen, sofern das Element nicht explizit unter Verwendung des Ausdrucks „Mittel für“ oder im Falle eines Verfahrensanspruchs unter Verwendung des Ausdrucks „Schritt für“ erwähnt wird.

Claims (20)

  1. Speichervorrichtung, aufweisend: einen Speicher, der eine Vielzahl von physischen Meta-Chips einschließt, wobei jeder physische Meta-Chip eine Vielzahl von Chips einschließt, wobei jeder der Chips in einem gleichen der physischen Meta-Chips mit einem anderen Kanal gekoppelt ist, und wobei zwei oder mehr der Chips in dem gleichen der physischen Meta-Chips eine andere Anzahl von Blöcken einschließen; und eine Steuerung, die eingerichtet ist, um einen logischen Meta-Chip auf die physischen Meta-Chips abzubilden, wobei eine Gesamtanzahl von Blöcken in den Chips, die mit einem der Kanäle gekoppelt sind, dieselbe ist wie eine Gesamtanzahl von Blöcken in den Chips, die mit einem anderen der Kanäle gekoppelt sind.
  2. Speichervorrichtung gemäß Anspruch 1, wobei die Steuerung ferner eingerichtet ist, beim Lesen und Schreiben von Daten in den logischen Meta-Chip die Daten jeweils nur in einen der physischen Meta-Chips zu lesen und zu schreiben.
  3. Speichervorrichtung gemäß Anspruch 1, wobei die Steuerung ferner eingerichtet ist, einen i-ten logischen Meta-Block des logischen Meta-Chips auf einen j-ten physischen Meta-Block in einem (((i-1) mod n)+1)-ten der physischen Meta-Chips abzubilden, wobei n eine Anzahl der physischen Meta-Chips ist, wobei i = j = 1 anfänglich, wobei i nach jeder Abbildung um 1 inkrementiert wird, und wobei j um 1 inkrementiert wird, wenn ((i-1) mod n) = 0.
  4. Speichervorrichtung gemäß Anspruch 3, wobei die Steuerung eingerichtet ist, als Reaktion auf das Bestimmen, dass einem der Chips in dem (((i-1) mod n)+1)-ten der physischen Meta-Chips verfügbare Blöcke fehlen, die auf den i-ten logischen Meta-Block abgebildet werden sollen, um den i-ten logischen Meta-Block auf einen Block in einem anderen der Chips abzubilden, der mit demselben Kanal gekoppelt ist wie der eine der Chips, dem die verfügbaren Blöcke fehlen.
  5. Speichervorrichtung gemäß Anspruch 1, wobei die Steuerung ferner eingerichtet ist, einen logischen Meta-Block des logischen Meta-Chips aus einem Block in einem der physischen Meta-Chips zu identifizieren, wobei der logische Meta-Block basierend auf einer Blockkennung des Blocks identifiziert wird.
  6. Speichervorrichtung, aufweisend: einen Speicher, der eine Vielzahl von physischen Meta-Chips einschließt, die jeweils eine Vielzahl von physischen Meta-Blöcken einschließen; und eine Steuerung, die eingerichtet ist, um logische Meta-Blöcke eines logischen Meta-Chips auf die physischen Meta-Blöcke abzubilden, wobei einer der logischen Meta-Blöcke Blöcken in zwei oder mehr der physischen Meta-Chips zugeordnet ist.
  7. Speichervorrichtung gemäß Anspruch 6, wobei die Steuerung ferner eingerichtet ist, beim Lesen und Schreiben von Daten in die logischen Meta-Blöcke die Daten jeweils nur in einen der physischen Meta-Chips zu lesen und zu schreiben.
  8. Speichervorrichtung gemäß Anspruch 6, wobei die Steuerung ferner eingerichtet ist, einen i-ten logischen Meta-Block des logischen Meta-Chips auf einen j-ten physischen Meta-Block in einem (((i-1) mod n)+1)-ten der physischen Meta-Chips abzubilden, wobei n eine Anzahl der physischen Meta-Chips ist, wobei i = j = 1 anfänglich, wobei i als Reaktion auf jede Abbildung um 1 inkrementiert wird, wobei j als Reaktion auf ((i-1) mod n) = 0 um 1 inkrementiert wird.
  9. Speichervorrichtung gemäß Anspruch 8, wobei die Steuerung eingerichtet ist, den einen der logischen Meta-Blöcke Blöcken in den zwei oder mehr der physischen Meta-Chips als Reaktion auf das Bestimmen zuzuordnen, dass einem der Chips in dem (((i-1) mod n)+1)-ten der physischen Meta-Chips verfügbare Blöcke fehlen, die auf den i-ten logischen Meta-Block abgebildet werden sollen.
  10. Speichervorrichtung gemäß Anspruch 9, wobei der eine der logischen Meta-Blöcke einem der Blöcke in einem anderen der Chips zugeordnet ist, der mit demselben Kanal gekoppelt ist wie der eine der Chips, dem die verfügbaren Blöcke fehlen.
  11. Speichervorrichtung gemäß Anspruch 6, wobei die Steuerung ferner eingerichtet ist, den einen der logischen Meta-Blöcke des logischen Meta-Chips aus einem Block in einem der physischen Meta-Chips zu identifizieren, wobei der logische Meta-Block basierend auf einer Blockkennung des Blocks in einer Gruppe der physischen Meta-Chips identifiziert wird.
  12. Speichervorrichtung, aufweisend: einen Speicher, der eine Vielzahl von physischen Meta-Chips einschließt, die jeweils eine Vielzahl von Chips aufweisen, wobei jeder der physischen Meta-Chips eine Vielzahl von physischen Meta-Blöcken einschließt und wobei jeder der Chips mit einem Kanal gekoppelt ist und eine Vielzahl von Blöcken einschließt; und eine Steuerung, die eingerichtet ist, um einen logischen Meta-Chip auf die physischen Meta-Chips abzubilden, um logische Meta-Blöcke des logischen Meta-Chips auf die physischen Meta-Blöcke abzubilden, wobei ein erster der logischen Meta-Blöcke einem der physischen Meta-Chips zugeordnet ist und ein zweiter der logischen Meta-Blöcke zweien oder mehr der physischen Meta-Chips zugeordnet ist, und um den ersten der logischen Meta-Blöcke aus einem ersten der Blöcke und den zweiten der logischen Meta-Blöcke aus einem zweiten der Blöcke zu identifizieren.
  13. Speichervorrichtung gemäß Anspruch 12, wobei die Steuerung eingerichtet ist, den ersten der logischen Meta-Blöcke basierend auf einer Blockkennung des ersten der Blöcke in einer ersten Gruppe der physischen Meta-Chips zu identifizieren, und den zweiten der logischen Meta-Blöcke basierend auf einer Blockkennung des zweiten der Blöcke in einer zweiten Gruppe der physischen Meta-Chips zu identifizieren, wobei sich die zweite Gruppe von der ersten Gruppe unterscheidet.
  14. Speichervorrichtung gemäß Anspruch 13, wobei jeder der physischen Meta-Chips in der ersten Gruppe einen Chip beinhaltet, der mit einem gleichen Kanal gekoppelt ist, und wobei die Steuerung eingerichtet ist, um den ersten der logischen Meta-Blöcke aus dem ersten der Blöcke als Reaktion auf das Bestimmen zu identifizieren, dass jeder der Chips, die mit demselben Kanal gekoppelt sind, einen Block enthält, der einer selben Blockkennung wie der erste der Blöcke zugeordnet ist.
  15. Speichervorrichtung gemäß Anspruch 13, wobei jeder der physischen Meta-Chips einen Chip beinhaltet, der mit einem gleichen Kanal gekoppelt ist, und wobei die Steuerung eingerichtet ist, den zweiten der logischen Meta-Blöcke aus dem zweiten der Blöcke als Reaktion auf das Bestimmen, dass einem der Chips, die mit dem gleichen Kanal gekoppelt sind, ein Block fehlt, der mit der Blockkennung des zweiten der Blöcke assoziiert ist, zu identifizieren.
  16. Speichervorrichtung gemäß Anspruch 13, wobei die zweite Gruppe eine geringere Anzahl von physischen Meta-Chips als die erste Gruppe beinhaltet.
  17. Speichervorrichtung gemäß Anspruch 12, wobei die Steuerung ferner eingerichtet ist, einen i-ten logischen Meta-Block des logischen Meta-Chips auf einen j-ten physischen Meta-Block in einem (((i-1) mod n)+1)-ten der physischen Meta-Chips abzubilden, wobei n eine Anzahl der physischen Meta-Chips ist, wobei i = j = 1 anfänglich, wobei i nach jeder Abbildung um 1 inkrementiert wird, und wobei j um 1 inkrementiert wird, wenn ((i-1) mod n) = 0.
  18. Speichervorrichtung gemäß Anspruch 12, wobei die Steuerung ferner eingerichtet ist, beim Lesen und Schreiben von Daten in den logischen Meta-Chip die Daten jeweils nur in einen der physischen Meta-Chips zu lesen und zu schreiben.
  19. Speichervorrichtung gemäß Anspruch 12, wobei zwei oder mehr der Chips in einem gleichen der physischen Meta-Chips eine unterschiedliche Anzahl von Blöcken beinhalten.
  20. Speichervorrichtung gemäß Anspruch 19, wobei eine Gesamtzahl von Blöcken in den Chips, die mit einem der Kanäle gekoppelt sind, dieselbe ist wie eine Gesamtzahl von Blöcken in den Chips, die mit einem anderen der Kanäle gekoppelt sind.
DE102021116033.2A 2021-03-11 2021-06-21 Vereinfachte verwaltung von chips und blöcken mit hoher kapazität Pending DE102021116033A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/199,135 US11561713B2 (en) 2021-03-11 2021-03-11 Simplified high capacity die and block management
US17/199,135 2021-03-11

Publications (1)

Publication Number Publication Date
DE102021116033A1 true DE102021116033A1 (de) 2022-09-15

Family

ID=83005067

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021116033.2A Pending DE102021116033A1 (de) 2021-03-11 2021-06-21 Vereinfachte verwaltung von chips und blöcken mit hoher kapazität

Country Status (3)

Country Link
US (1) US11561713B2 (de)
CN (1) CN115080466B (de)
DE (1) DE102021116033A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220133003A (ko) * 2021-03-24 2022-10-04 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572311B1 (en) * 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
TWI479491B (zh) * 2011-07-05 2015-04-01 Phison Electronics Corp 記憶體控制方法、記憶體控制器與記憶體儲存裝置
US20140173178A1 (en) * 2012-12-19 2014-06-19 Apple Inc. Joint Logical and Physical Address Remapping in Non-volatile Memory
US9323662B2 (en) 2012-12-31 2016-04-26 SanDisk Technologies, Inc. Flash memory using virtual physical addresses
KR101854020B1 (ko) * 2012-12-31 2018-05-02 샌디스크 테크놀로지스 엘엘씨 비휘발성 메모리에서 비동기 다이 동작을 위한 방법 및 시스템
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9582201B2 (en) * 2014-09-26 2017-02-28 Western Digital Technologies, Inc. Multi-tier scheme for logical storage management
US9846541B2 (en) * 2014-12-11 2017-12-19 Toshiba Memory Corporation Memory system for controlling perforamce by adjusting amount of parallel operations
US9632705B2 (en) * 2014-12-17 2017-04-25 Sandisk Technologies Llc System and method for adaptive memory layers in a memory device
US10073627B2 (en) 2015-01-13 2018-09-11 Sandisk Technologies Llc Addressing, interleave, wear leveling, and initialization schemes for different chip enables and memory arrays of different types
US9626312B2 (en) 2015-07-17 2017-04-18 Sandisk Technologies Llc Storage region mapping for a data storage device
US9990304B2 (en) * 2015-11-13 2018-06-05 Samsung Electronics Co., Ltd Multimode storage management system
US9983829B2 (en) * 2016-01-13 2018-05-29 Sandisk Technologies Llc Physical addressing schemes for non-volatile memory systems employing multi-die interleave schemes
US10540274B2 (en) * 2016-03-29 2020-01-21 Micron Technology, Inc. Memory devices including dynamic superblocks, and related methods and electronic systems
JP2018073312A (ja) * 2016-11-04 2018-05-10 東芝メモリ株式会社 メモリシステムおよび制御方法
JP6765322B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
US11294594B2 (en) * 2017-08-07 2022-04-05 Kioxia Corporation SSD architecture supporting low latency operation
JP7074454B2 (ja) * 2017-10-30 2022-05-24 キオクシア株式会社 計算機システムおよび制御方法
US10635599B2 (en) * 2018-07-26 2020-04-28 Sandisk Technologies Llc Memory controller assisted address mapping
KR20200025184A (ko) * 2018-08-29 2020-03-10 에스케이하이닉스 주식회사 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그 동작 방법
US11561870B2 (en) * 2020-03-30 2023-01-24 Kioxia Corporation SSD with compressed superblock mapping table
US11698754B2 (en) * 2020-10-05 2023-07-11 Seagate Technology Llc Coalescing read commands by location from a host queue

Also Published As

Publication number Publication date
CN115080466A (zh) 2022-09-20
US11561713B2 (en) 2023-01-24
CN115080466B (zh) 2024-06-21
US20220291836A1 (en) 2022-09-15

Similar Documents

Publication Publication Date Title
DE102018106154A1 (de) Faltungsoperationen in datenspeichersystemen mit einzeladressenaktualisierungen
DE112015004536T5 (de) Hardware-Automatisierung für Speicherverwaltung
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
DE102018105750A1 (de) System und Verfahren für Hybrid-Push-Pull-Datenmanagement in einem nichtflüchtigen Datenspeicher
DE112020000184T5 (de) In zonen unterteilte namensräume in festkörperlaufwerken
DE112016004760T5 (de) System und Verfahren für direktes Schreiben auf einen MLC-Speicher
DE112019005369T5 (de) Verfahren zum umschalten zwischen herkömmlicher ssd und open-channel-ssd ohne datenverlust
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE112018004256T5 (de) Redundanzcodierstreifen basierend auf internen adressen von speichervorrichtungen
DE102008005338B4 (de) Integrierter Schaltkreis mit einer Speicherzellenanordnung und Verfahren zum Lesen eines Speicherzellenzustands unter Verwendung einer Mehrzahl von Teil-Leseoperationen
DE102021115374A1 (de) Abschwächung des in zonen unterteilten namensraums unter verwendung des unterblock-modus
DE112018005505T5 (de) Verfahren und vorrichtung zur spezifikation von lese-spannungsversetzungen für einen lesebefehl
DE102010037290A1 (de) Speichersysteme und Verfahren zur Erfassung einer Verteilung von instabilen Speicherzellen
DE102021114457A1 (de) Abwicklung von lesen in vorrichtungen mit in zonen unterteiltem namensraum
DE112018004252T5 (de) Redundanzcodierstreifen auf der basis eines koordinierten internen adressschemas über mehrere vorrichtungen
DE102021115373A1 (de) Identifizierte zonen für zonen mit optimaler paritätsteilung
DE112015005102T5 (de) Systeme und verfahren zum erzeugen von einem hostbefehl zugeordneten hinweisinformationen
DE112017005955T5 (de) Speichersystem und verfahren zur schlanken speicherzuweisung
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE112019000161T5 (de) Speicher-cache-verwaltung
DE102008033518A1 (de) Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement
DE102011075023A1 (de) Indexierter Registerzugriff für einen Speicherbaustein
DE102022101607A1 (de) Verwaltung der hostspeicherpufferzuweisung
DE102020115970B3 (de) Befehlsoptimierung durch intelligente schwellwertdetektion
DE102018105277A1 (de) Auf Hamming-Abstand basierende Binärdarstellungen von Zahlen

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE

R012 Request for examination validly filed
R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE