DE102023134057A1 - Adressabbildungen für direktzugriffsoperationen - Google Patents

Adressabbildungen für direktzugriffsoperationen Download PDF

Info

Publication number
DE102023134057A1
DE102023134057A1 DE102023134057.3A DE102023134057A DE102023134057A1 DE 102023134057 A1 DE102023134057 A1 DE 102023134057A1 DE 102023134057 A DE102023134057 A DE 102023134057A DE 102023134057 A1 DE102023134057 A1 DE 102023134057A1
Authority
DE
Germany
Prior art keywords
buffer
memory cells
volatile memory
address
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
DE102023134057.3A
Other languages
English (en)
Inventor
Wenjun Wu
Huachen Li
Xiaolai Zhu
Ling Shi
Qingyuan Wang
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.)
Micron Technology Inc
Original Assignee
Micron Technology 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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of DE102023134057A1 publication Critical patent/DE102023134057A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/1009Address translation using page tables, e.g. page table structures
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Es werden Verfahren, Systeme und Vorrichtungen für Adressabbildungen für Direktzugriffsoperationen beschrieben. Ein Abschnitt einer L2P-Tabelle kann bei Empfangen eines Schreibbefehls (z. B. eines Direktschreibbefehls) geladen werden (z. B. in einen Puffer). In einigen Fällen können ein oder mehrere Einträge (z. B. eine oder mehrere Abbildungen), die in dem Abschnitt der L2P-Tabelle beinhaltet sind, basierend auf dem Schreibbefehl aktualisiert werden. Der Abschnitt der L2P-Tabelle kann bei nachfolgenden Zugriffsoperationen, wie etwa Direktleseoperationen, in dem Puffer beibehalten werden. Die nachfolgenden Zugriffsoperationen können den Abschnitt der L2P-Tabelle dazu nutzen, auf eine Speichervorrichtung zuzugreifen.

Description

  • QUERVERWEIS
  • Die vorliegende Patentanmeldung beansprucht die Priorität der vorläufigen US-Patentanmeldung Nr. 63/433,266 von Wu et al. mit dem Titel „ADDRESS MAPPINGS FOR RANDOM ACCESS OPERATIONS“, eingereicht am 16. Dezember 2022, die dem Rechtsnachfolger hiervon übertragen wurde und in diese Schrift ausdrücklich durch Bezugnahme in ihrer Gesamtheit aufgenommen ist.
  • GEBIET DER TECHNIK
  • Das Folgende betrifft ein oder mehrere Systeme für Speicher, einschließlich Adressabbildungen für Direktzugriffsoperationen.
  • HINTERGRUND
  • Speichervorrichtungen werden häufig verwendet, um Informationen in verschiedenen elektronischen Vorrichtungen, wie etwa Computern, drahtlosen Kommunikationsvorrichtungen, Kameras, digitalen Anzeigen und dergleichen, zu speichern. Informationen werden durch Programmieren von Speicherzellen innerhalb einer Speichervorrichtung auf verschiedene Zustände gespeichert. Zum Beispiel können binäre Speicherzellen in einen von zwei unterstützten Zuständen programmiert werden, die oft einer logischen 1 oder einer logischen 0 entsprechen. In einigen Beispielen kann eine einzelne Speicherzelle mehr als zwei mögliche Zustände unterstützen, von denen jeder durch die Speicherzelle gespeichert werden kann. Um auf durch eine Speichervorrichtung gespeicherte Informationen zuzugreifen, kann eine Komponente den Zustand einer oder mehrerer Speicherzellen innerhalb der Speichervorrichtung lesen (z. B. erfassen, detektieren, abrufen, identifizieren, bestimmen, auswerten). Um Informationen zu speichern, kann eine Komponente eine oder mehrere Speicherzellen innerhalb der Speichervorrichtung in entsprechende Zustände schreiben (z. B. programmieren, festlegen, zuweisen).
  • Es gibt verschiedene Arten von Speichervorrichtungen, beinhaltend magnetische Festplatten, Direktzugriffsspeicher (random access memory - RAM), Nur-Lese-Speicher (read-only memory - ROM), dynamischer RAM (dynamic random-access memory - DRAM), synchroner dynamischer RAM (SDRAM), statischer RAM (SRAM), ferroelektrischer RAM (FeRAM), magnetoresistiver RAM (MRAM), resistiver RAM (RRAM), Flash-Speicher, Phasenwechsel-Speicher (phase change memory - PCM), dreidimensionaler Kreuzpunktspeicher (3D cross point), Nicht-Oder(not-or - NOR)- und Nicht-Und(not-and - NAND)-Speichervorrichtungen und andere. Speichervorrichtungen können unter dem Gesichtspunkt flüchtiger Konfigurationen oder nichtflüchtiger Konfigurationen beschrieben werden. Flüchtige Speicherzellen (z. B. DRAM) können im Laufe der Zeit ihre programmierten Zustände verlieren, es sei denn, sie werden regelmäßig durch eine externe Leistungsquelle aufgefrischt. Nichtflüchtige Speicherzellen (z. B. NAND) können ihre programmierten Zustände über einen längeren Zeitraum beibehalten, selbst wenn keine externe Leistungsquelle vorhanden ist.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
    • 1 veranschaulicht ein Beispiel eines Systems, das Adressabbildungen für Direktzugriffsoperationen gemäß in dieser Schrift offenbarten Beispielen unterstützt.
    • 2 veranschaulicht ein Beispiel eines Systems, das Adressabbildungen für Direktzugriffsoperationen gemäß in dieser Schrift offenbarten Beispielen unterstützt.
    • 3 veranschaulicht ein Beispiel eines Systems, das Adressabbildungen für Direktzugriffsoperationen gemäß in dieser Schrift offenbarten Beispielen unterstützt.
    • 4 veranschaulicht ein Beispiel eines Speichersystems, das Adressabbildungen für Direktzugriffsoperationen gemäß in dieser Schrift offenbarten Beispielen unterstützt.
    • 5 veranschaulicht ein Blockdiagramm eines Speichersystems, das Adressabbildungen für Direktzugriffsoperationen gemäß in dieser Schrift offenbarten Beispielen unterstützt.
    • 6 zeigt ein Ablaufdiagramm, das ein Verfahren oder mehrere Verfahren veranschaulicht, die Adressabbildungen für Direktzugriffsoperationen gemäß in dieser Schrift offenbarten Beispielen unterstützen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es werden Verfahren, Systeme und Vorrichtungen für Adressabbildungen für Direktzugriffsoperationen beschrieben. Nichtflüchtige Speichervorrichtungen (z. B. Nicht-Und(not-and - NAND)-Speichervorrichtungen) können eine Abbildung von logischen Adressen, die durch ein Hostsystem verwendet werden, und physischen Adressen einer Speichervorrichtung nutzen, um Lese- und Schreiboperationen durchzuführen. Die logischen Adressen können auf physische Adressen der nichtflüchtigen Speichervorrichtung abgebildet werden, wodurch es der nichtflüchtigen Speichervorrichtung möglich sein kann, auf Daten zu jeweiligen physischen Adressen zuzugreifen (z. B. diese zu schreiben). Ein Speichersystem kann eine Speicherabbildungstabelle (z. B. eine Logisch-zu-Physisch(L2P)-Tabelle) nutzen, um eine aktuelle Version der Abbildungen zwischen den logischen Adressen und den physischen Adressen zu speichern.
  • Das Speichersystem kann einen Abschnitt der L2P-Tabelle in einem Cache speichern (z. B. einen Cache-Speicher), um die Geschwindigkeit des Nachschlagens zu verbessern (z. B. die Geschwindigkeit des Bestimmens der physischen Adresse unter Verwendung der logischen Adresse). Der Inhalt des Caches kann aus einem oder mehreren nichtflüchtigen Speichervorrichtungen geladen werden, wenn ein Zugriffsbefehl empfangen wird. Laden der L2P-Tabelle in den Cache kann die Leistung der Zugriffsoperation verzögern, da die Abbildungsdaten durch die Speichersteuerung benötigt werden, um die Zugriffsoperation durchzuführen. Eliminieren des Ladens der L2P-Tabelle (oder von Teilen der L2P-Tabelle) in den Cache für einige Zugriffsoperationen kann die Gesamtleistung des Speichersystems verbessern.
  • Einige Zugriffsoperationen, wie etwa Direktschreiboperationen, können dazu führen, dass ein Abschnitt einer L2P-Tabelle aktualisiert wird. Zum Beispiel kann eine Abbildung zwischen logischen Adressen und physischen Adressen einer Speichervorrichtung während einer Direktschreiboperation aktualisiert werden. In einigen Beispielen kann ein Abschnitt der L2P-Tabelle innerhalb des Caches beibehalten werden und ein anderer Abschnitt der Abbildung (z. B. der verbleibende Abschnitt der L2P-Tabelle) kann in Speicherstellen in den nichtflüchtigen Speichervorrichtungen gespeichert werden. Die Schreiboperationen können dazu führen, dass die Inhalte des Caches aktualisiert werden, da die Schreiboperation die physische Adresse ändern kann, die verwendet wird, um die Daten zu speichern, die einer logischen Adresse entsprechen. Die Aktualisierung der L2P-Tabelle kann innerhalb des Caches auftreten und die aktualisierte Zuordnung kann in die nichtflüchtige Speichervorrichtung übertragen (z. B. in diese geleert) werden.
  • Die in der nichtflüchtigen Speichervorrichtung gespeicherte L2P-Tabelle kann aktualisiert werden, indem der aktualisierte Abschnitt der L2P-Tabelle, der in die nichtflüchtige Speichervorrichtung geleert wird, verwendet wird. Wenn eine nachfolgende Zugriffsoperation (z. B. eine nachfolgende Direktleseoperation) angefordert wird, kann ein Abschnitt der L2P-Tabelle in den Cache geladen werden, was die nachfolgenden Speicheroperationen verzögern kann. Diese Verzögerung kann sich auf die Leistung des Speichersystems auswirken. Zum Beispiel kann das Laden eine zusätzliche Latenz zu der Direktleseoperation hinzufügen, was sich negativ auf die Leistung des Speichersystems auswirken kann.
  • Dementsprechend beheben Implementierungen, die in dieser Schrift beschrieben sind, die vorstehend genannten Mängel und andere Mängel, indem sie einen Puffer (z. B. einen Abbildungszusammenführungspuffer) bereitstellen, der dazu konfiguriert ist, einen Abschnitt einer L2P-Tabelle für eine Zeitdauer zu speichern. Wenn eine Direktleseoperation auf eine Direktschreiboperation folgt, kann der Abschnitt der L2P-Tabelle in dem Abbildungszusammenführungspuffer beibehalten werden (z. B. anstatt in den nichtflüchtigen Speicher geleert zu werden). Daher muss der Abbildungszusammenführungspuffer möglicherweise keinen Abschnitt der L2P-Tabelle laden, um die Direktleseoperation durchzuführen. Der Abbildungszusammenführungspuffer kann daher Abbildungsdaten enthalten, die für die Direktleseoperationen genutzt werden können. Durch Eliminieren des Ladens eines oder mehrerer Abschnitte einer L2P-Tabelle in den Abbildungszusammenführungspuffer kann die Zeit, die benötigt wird, um die nachfolgenden Direktleseoperationen durchzuführen, verringert werden, was die Gesamtleistung des Speichersystems erhöhen kann.
  • Merkmale der Offenbarung werden anfänglich im Kontext von Systemen, Vorrichtungen und Schaltungen unter Bezugnahme auf 1 bis 2 beschrieben. Merkmale der Offenbarung werden im Kontext von Systemen und Speichervorrichtungen unter Bezugnahme auf 3 und 4 beschrieben. Diese und andere Merkmale der Offenbarung werden ferner durch den Kontext eines Gerätediagramms und eines Ablaufplans unter Bezugnahme auf 5 und 6 veranschaulicht und beschrieben, die sich auf Adressabbildungen für Direktzugriffsoperationen beziehen.
  • 1 veranschaulicht ein Beispiel eines Systems 100, das Adressabbildungen für Direktzugriffsoperationen gemäß in dieser Schrift offenbarten Beispielen unterstützt. Das System 100 beinhaltet ein Hostsystem 105, das mit einem Speichersystem 110 gekoppelt ist.
  • Ein Speichersystem 110 kann eine beliebige Vorrichtung oder eine Sammlung von Vorrichtungen sein oder beinhalten, wobei die Vorrichtung oder Sammlung von Vorrichtungen mindestens ein Speicherarray beinhaltet. Ein Speichersystem 110 kann zum Beispiel eine Universal Flash Storage (UFS) -Vorrichtung, eine eingebettete Multi-Media-Steuerung (eMMC) -Vorrichtung, eine Flash-Vorrichtung, eine Universal Serial Bus (USB) -Flash-Vorrichtung, eine Secure Digital (SD) -Karte, ein Solid-State-Laufwerk (solid state drive - SSD), ein Festplatten-Laufwerk (hard disk drive - HDD), ein Dual in-Line-Speichermodul (DIMM), ein Small Outline DIMM (SO-DIMM) oder ein nichtflüchtiges DIMM (non-volatile DIMM - NVDIMM) sein oder beinhalten, neben anderen Möglichkeiten.
  • Das System 100 kann in einer Rechenvorrichtung, wie etwa einem Desktop-Computer, einem Laptop-Computer, einem Netzwerkserver, einer mobilen Vorrichtung, einem Fahrzeug (z. B. Flugzeug, Drohne, Zug, Auto oder einem anderen Transportmittel), einer Internet-of-Things-fähigen (IoT-fähigen) Vorrichtung, einem eingebetteten Computer (z. B. eine, die in einem Fahrzeug, einer Industrieanlage oder einer vernetzten kommerziellen Vorrichtung beinhaltet ist) oder einer beliebigen anderen Rechenvorrichtung, die einen Speicher und eine Verarbeitungsvorrichtung beinhaltet, beinhaltet sein.
  • Das System 100 kann ein Hostsystem 105 beinhalten, das mit dem Speichersystem 110 gekoppelt sein kann. In einigen Beispielen kann diese Kopplung eine Schnittstelle mit einer Hostsystemsteuerung 106 beinhalten, die ein Beispiel für eine Steuerung oder Steuerkomponente sein kann, die dazu konfiguriert ist, das Hostsystem 105 zu veranlassen, verschiedene Operationen gemäß in dieser Schrift beschriebenen Beispielen durchzuführen. Das Hostsystem 105 kann eine oder mehrere Vorrichtungen beinhalten und kann in einigen Fällen einen Prozessorchipsatz und einen Softwarestapel beinhalten, der durch den Prozessorchipsatz ausgeführt wird. Zum Beispiel kann das Hostsystem 105 eine Anwendung beinhalten, die zum Kommunizieren mit dem Speichersystem 110 oder einer Vorrichtung darin konfiguriert ist. Der Prozessorchipsatz kann einen oder mehrere Kerne, einen oder mehrere Caches (z. B. einen lokalen oder in dem Hostsystem 105 beinhalteten Speicher), eine Speichersteuerung (z. B. NVDIMM-Steuerung) und eine Speicherprotokollsteuerung (z. B. Peripheral Component Interconnect Express (PCIe)-Steuerung, Serial Advanced Technology Attachment (SATA)-Steuerung) beinhalten. Das Hostsystem 105 kann das Speichersystem 110 zum Beispiel dazu verwenden, Daten in das Speichersystem 110 zu schreiben und Daten aus dem Speichersystem 110 zu lesen. Auch wenn in 1 ein Speichersystem 110 gezeigt ist, kann das Hostsystem 105 mit einer beliebigen Anzahl von Speichersystemen 110 gekoppelt sein.
  • Das Hostsystem 105 kann über mindestens eine physische Hostschnittstelle mit dem Speichersystem 110 gekoppelt sein. Das Hostsystem 105 und das Speichersystem 110 können in einigen Fällen dazu konfiguriert sein, über eine physische Hostschnittstelle unter Verwendung eines zugehörigen Protokolls zu kommunizieren (z. B. um Steuer-, Adress-, Daten- und andere Signale zwischen dem Speichersystem 110 und dem Hostsystem 105 auszutauschen oder auf andere Weise zu kommunizieren). Beispiele für eine physische Hostschnittstelle können unter anderem eine SATA-Schnittstelle, eine UFS-Schnittstelle, eine eMMC-Schnittstelle, eine PCIe-Schnittstelle, eine USB-Schnittstelle, eine Fibre-Channel-Schnittstelle, eine Small Computer System Schnittstelle (Small Computer System Interface - SCSI), eine Serial Attached SCSI (SAS), eine Double Data Rate (DDR)-Schnittstelle, eine DIMM-Schnittstelle (z. B. DIMM-Sockelschnittstelle, die DDR unterstützt), eine Open NAND Flash Schnittstelle (Open NAND Flash Interface - ONFI) und eine Low Power Double Data Rate (LPDDR)-Schnittstelle beinhalten. In einigen Beispielen können eine oder mehrere derartiger Schnittstellen in einer Hostsystemsteuerung 106 des Hostsystems 105 und einer Speichersystemsteuerung 115 des Speichersystems 110 beinhaltet sein oder auf andere Weise zwischen diesen unterstützt werden. In einigen Beispielen kann das Hostsystem 105 mit dem Speichersystem 110 (z. B. kann die Hostsystemsteuerung 106 mit der Speichersystemsteuerung 115 gekoppelt sein) über eine entsprechende physische Hostschnittstelle für jede in dem Speichersystem 110 beinhaltete Speichervorrichtung 130 oder über eine entsprechende physische Hostschnittstelle für jede in dem Speichersystem 110 beinhaltete Art von Speichervorrichtung 130 gekoppelt sein.
  • Das Speichersystem 110 kann eine Speichersystemsteuerung 115 und eine oder mehrere Speichervorrichtungen 130 beinhalten. Eine Speichervorrichtung 130 kann ein oder mehrere Speicherarrays einer beliebigen Art von Speicherzellen (z. B. nichtflüchtige Speicherzellen, flüchtige Speicherzellen oder eine beliebige Kombination davon) beinhalten. Obwohl in dem Beispiel aus 1 zwei Speichervorrichtungen 130-a und 130-b gezeigt sind, kann das Speichersystem 110 eine beliebige Anzahl von Speichervorrichtungen 130 beinhalten. Falls das Speichersystem 110 mehr als eine Speichervorrichtung 130 beinhaltet, können unterschiedliche Speichervorrichtungen 130 innerhalb des Speichersystems 110 ferner die gleichen oder unterschiedliche Arten von Speicherzellen beinhalten.
  • Die Speichersystemsteuerung 115 kann mit dem Hostsystem 105 gekoppelt sein und mit ihm kommunizieren (z. B. über die physische Hostschnittstelle) und kann ein Beispiel für eine Steuerung oder Steuerkomponente sein, die dazu konfiguriert ist, das Speichersystem 110 zu veranlassen, verschiedene Operationen gemäß in dieser Schrift beschriebenen Beispielen durchzuführen. Die Speichersystemsteuerung 115 kann auch mit Speichervorrichtungen 130 gekoppelt sein und mit diesen kommunizieren, um Operationen wie etwa Lesen von Daten, Schreiben von Daten, Löschen von Daten oder Auffrischen von Daten in einer Speichervorrichtung 130 - neben anderen derartigen Operationen - durchzuführen, die allgemein als Zugriffsoperationen bezeichnet werden können. In einigen Fällen kann die Speichersystemsteuerung 115 Befehle von dem Hostsystem 105 empfangen und mit einer oder mehreren Speichervorrichtungen 130 kommunizieren, um solche Befehle auszuführen (z. B. auf Speicherarrays innerhalb der einen oder mehreren Speichervorrichtungen 130). Zum Beispiel kann die Speichersystemsteuerung 115 Befehle oder Operationen von dem Hostsystem 105 empfangen und die Befehle oder Operationen in Anweisungen oder geeignete Befehle umwandeln, um den gewünschten Zugriff auf die Speichervorrichtungen 130 zu erreichen. In einigen Fällen kann die Speichersystemsteuerung 115 Daten mit dem Hostsystem 105 und mit einer oder mehreren Speichervorrichtungen 130 austauschen (z. B. in Reaktion auf oder auf andere Weise in Verbindung mit Befehlen des Hostsystems 105). Zum Beispiel kann die Speichersystemsteuerung 115 Antworten (z. B. Datenpakete oder andere Signale), die den Speichervorrichtungen 130 zugeordnet sind, in entsprechende Signale für das Hostsystem 105 umwandeln.
  • Die Speichersystemsteuerung 115 kann für andere Operationen, die den Speichervorrichtungen 130 zugeordnet sind, konfiguriert sein. Zum Beispiel kann die Speichersystemsteuerung 115 Operationen wie Verschleißausgleichsoperationen, Garbage-Collection-Operationen, Fehlerkontrolloperationen wie etwa Fehlererfassungsoperationen oder Fehlerkorrekturoperationen, Verschlüsselungsoperationen, Caching-Operationen, Medienverwaltungsoperationen, Hintergrundauffrischung, Zustandsüberwachung und Adressübersetzungen zwischen logischen Adressen (z. B. logischen Blockadressen (LBAs)), die Befehlen vom Hostsystem 105 zugeordnet sind, und physischen Adressen (z. B. physischen Blockadressen), die Speicherzellen innerhalb der Speichervorrichtungen 130 zugeordnet sind, ausführen oder verwalten.
  • Die Speichersystemsteuerung 115 kann Hardware, wie etwa eine oder mehrere integrierte Schaltungen oder diskrete Komponenten, einen Pufferspeicher oder eine Kombination davon beinhalten. Die Hardware kann Schaltkreise mit dedizierter (z. B. hartcodierter) Logik beinhalten, um die Operationen durchzuführen, die in dieser Schrift der Speichersystemsteuerung 115 zugeschrieben sind. Die Speichersystemsteuerung 115 kann ein Mikrocontroller, ein spezieller Logikschaltkreis (z. B. ein feldprogrammierbares Gate-Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC), ein digitaler Signalprozessor (DSP)) oder ein beliebiger anderer geeigneter Prozessor- oder Verarbeitungsschaltkreis sein oder eine(n) solche(n) beinhalten.
  • Die Speichersystemsteuerung 115 kann auch einen lokalen Speicher 120 beinhalten. In einigen Fällen kann der lokale Speicher 120 einen Nur-Lese-Speicher (ROM) oder einen anderen Speicher beinhalten, der den durch die Speichersystemsteuerung 115 ausführbaren Betriebscode (z. B. ausführbare Anweisungen) speichern kann, um Funktionen durchzuführen, die der Speichersystemsteuerung 115 in dieser Schrift zugeschrieben sind. In einigen Fällen kann der lokale Speicher 120 zusätzlich oder alternativ statischen Direktzugriffsspeicher (SRAM) oder anderen Speicher beinhalten, der von der Speichersystemsteuerung 115 für interne Speicherungen oder Berechnungen verwendet werden kann, z. B. im Zusammenhang mit den in dieser Schrift der Speichersystemsteuerung 115 zugeschriebenen Funktionen. Zusätzlich oder alternativ kann der lokale Speicher 120 als Cache für die Speichersystemsteuerung 115 dienen. Zum Beispiel können Daten in dem lokalen Speicher 120 gespeichert werden, falls sie aus einer Speichervorrichtung 130 gelesen oder in diese geschrieben werden, und die Daten können in dem lokalen Speicher 120 für den nachfolgenden Abruf oder die Manipulation (z. B. Aktualisierung) durch das Hostsystem 105 (z. B. mit reduzierter Latenz relativ zu einer Speichervorrichtung 130) gemäß einer Cache-Richtlinie verfügbar sein.
  • Obwohl das Beispiel des Speichersystems 110 der Veranschaulichung in 1 nach die Speichersystemsteuerung 115 beinhaltet, kann ein Speichersystem 110 in einigen Fällen möglicherweise keine Speichersystemsteuerung 115 beinhalten. Zum Beispiel kann das Speichersystem 110 zusätzlich oder alternativ auf eine externen Steuerung (z. B. implementiert durch das Hostsystem 105) oder eine oder mehrere lokale Steuerungen 135 zurückgreifen, die jeweils innenliegend in den Speichervorrichtungen 130 sein können, um die Funktionen durchzuführen, die in dieser Schrift der Speichersystemsteuerung 115 zugeschrieben sind. Im Allgemeinen können eine oder mehrere Funktionen, die in dieser Schrift der Speichersystemsteuerung 115 zugeschrieben sind, in einigen Fällen stattdessen durch das Hostsystem 105, eine lokalen Steuerung 135 oder eine beliebige Kombination davon durchgeführt werden. In einigen Fällen kann eine Speichervorrichtung 130, die mindestens teilweise durch eine Speichersystemsteuerung 115 verwaltet wird, als verwaltete Speichervorrichtung bezeichnet werden. Ein Beispiel für eine verwaltete Speichervorrichtung ist eine verwaltete NAND(managed NAND - MNAND)-Vorrichtung.
  • Eine Speichervorrichtung 130 kann ein oder mehrere Arrays nichtflüchtiger Speicherzellen beinhalten. Eine Speichervorrichtung 130 kann z. B. NAND-Speicher (z. B. NAND-Flash), ROM, Phasenwechelspeicher (PCM), selbstwählenden Speicher, andere Chalkogenid-basierte Speicher, ferroelektrischen Direktzugriffsspeicher (RAM) (FeRAM), Magneto-RAM (MRAM), NOR (z. B. NOR-Flash)-Speicher, Spin-Transfer-Torque (STT)-MRAM, Conductive-Bridging-RAM (CBRAM), resistiven Direktzugriffsspeicher (RRAM), oxidbasierten RRAM (oxid based RRAM - OxRAM), elektrisch überschreibbaren ROM (electrically erasable programmable ROM - EEPROM) oder eine beliebige Kombination davon beinhalten. Zusätzlich oder alternativ kann eine Speichervorrichtung 130 ein oder mehrere Arrays von flüchtigen Speicherzellen beinhalten. Eine Speichervorrichtung 130 kann zum Beispiel RAM-Speicherzellen wie etwa dynamische RAM-Speicherzellen (dynamic RAM - DRAM) und synchrone DRAM-Speicherzellen (synchronous DRAM - SDRAM) beinhalten.
  • In einigen Beispielen kann eine Speichervorrichtung 130 (z. B. auf demselben Chip oder in demselben Paket) eine lokale Steuerung 135 beinhalten, die Operationen auf einer oder mehreren Speicherzellen der jeweiligen Speichervorrichtung 130 ausführen kann. Eine lokale Steuerung 135 kann in Verbindung mit einer Speichersystemsteuerung 115 betrieben werden oder eine oder mehrere Funktionen durchführen, die in dieser Schrift der Speichersystemsteuerung 115 zugeschrieben sind. Zum Beispiel kann, wie in 1 veranschaulicht, eine Speichervorrichtung 130-a eine lokale Steuerung 135-a beinhalten und eine Speichervorrichtung 130-b kann eine lokale Steuerung 135-b beinhalten.
  • In einigen Fällen kann eine Speichervorrichtung 130 eine NAND-Vorrichtung (z. B. NAND-Flash-Vorrichtung) sein oder beinhalten. Eine Speichervorrichtung 130 kann ein Chip 160 (z. B. ein Speicherchip) sein oder einen solchen beinhalten. Zum Beispiel kann in einigen Fällen eine Speichervorrichtung 130 ein Paket sein, das einen oder mehrere Chips 160 beinhaltet. Ein Chip 160 kann in einigen Beispielen ein aus einem Wafer geschnittenes Stück eines Halbleiters in Elektronikqualität sein (z. B. ein aus einem Siliziumwafer geschnittener Siliziumchip). Jeder Chip 160 kann eine oder mehrere Ebenen 165 beinhalten und jede Ebene 165 kann einen entsprechenden Satz von Blöcken 170 beinhalten, wobei jeder Block 170 einen entsprechenden Satz von Seiten 175 beinhalten kann, und jede Seite 175 einen Satz von Speicherzellen beinhalten kann.
  • In einigen Fällen kann eine NAND-Speichervorrichtung 130 Speicherzellen beinhalten, die dazu konfiguriert sind, jeweils ein Bit an Informationen zu speichern, die als Single-Level-Zellen (SLC) bezeichnet werden können. Zusätzlich oder alternativ kann eine NAND-Speichervorrichtung 130 Speicherzellen beinhalten, die dazu konfiguriert sind, jeweils mehrere Bits an Informationen zu speichern, die, falls sie dazu konfiguriert sind, jeweils zwei Bits an Informationen zu speichern, als Multi-Level-Zellen (MLC), falls sie dazu konfiguriert sind, jeweils drei Bits an Informationen zu speichern, als Tri-Level-Zellen (TLC), falls sie dazu konfiguriert sind, jeweils vier Bits an Informationen zu speichern, als Quad-Level-Zellen (QLC) oder allgemeiner als Multi-Level-Speicherzellen bezeichnet werden. Multi-Level-Speicherzellen können im Vergleich zu SLC-Speicherzellen eine höhere Speicherdichte bereitstellen, können aber in einigen Fällen engere Lese- oder Schreibspannen oder eine höhere Komplexität bei unterstützenden Schaltkreisen mit sich bringen.
  • In einigen Fällen können sich die Ebenen 165 auf Gruppen von Blöcken 170 beziehen, und in einigen Fällen können gleichzeitige Operationen auf unterschiedlicher Ebenen 165 durchgeführt werden. So können zum Beispiel gleichzeitige Operationen auf Speicherzellen innerhalb unterschiedlicher Blöcke 170 durchgeführt werden, solange sich die unterschiedlichen Blöcke 170 in unterschiedlichen Ebenen 165 befinden. In einigen Fällen kann ein einzelner Block 170 als physischer Block bezeichnet werden, und ein virtueller Block 180 kann sich auf eine Gruppe von Blöcken 170 beziehen, in denen gleichzeitige Operationen auftreten können. Zum Beispiel können gleichzeitige Operationen an den Blöcken 170-a, 170-b, 170-c und 170-d durchgeführt werden, die sich jeweils innerhalb der Ebenen 165-a, 165-b, 165-c, und 165-d befinden, und die Blöcke 170-a, 170-b, 170-c und 170-d können gemeinsam als ein virtueller Block 180 bezeichnet werden. In einigen Fällen kann ein virtueller Block Blöcke 170 aus unterschiedlichen Speichervorrichtungen 130 (z. B. einschließlich Blöcken in einer oder mehreren Ebenen der Speichervorrichtung 130-a und der Speichervorrichtung 130-b) beinhalten. In einigen Fällen können die Blöcke 170 innerhalb eines virtuellen Blocks dieselbe Blockadresse innerhalb ihrer jeweiligen Ebenen 165 aufweisen (z. B. kann Block 170-a „Block 0“ von Ebene 165-a sein, kann Block 170-b „Block 0“ von Ebene 165-b sein und so weiter). In einigen Fällen kann das Durchführen gleichzeitiger Operationen in unterschiedlichen Ebenen 165 einer oder mehreren Einschränkungen unterliegen, wie z. B. der Ausführung gleichzeitiger Operationen auf Speicherzellen innerhalb unterschiedlicher Seiten 175, die dieselbe Seitenadresse in ihren jeweiligen Ebenen 165 aufweisen (z. B. in Bezug auf die Befehlsdecodierung, den Schaltkreis zur Decodierung der Seitenadresse oder andere Schaltkreise, die über die Ebenen 165 hinweg gemeinsam genutzt werden).
  • In einigen Fällen kann ein Block 170 Speicherzellen beinhalten, die in Zeilen (Seiten 175) und Spalten (z. B. Strings, nicht gezeigt) organisiert sind. Zum Beispiel können sich Speicherzellen in einer gleichen Seite 175 eine gemeinsame Wortleitung teilen (z. B. mit ihr gekoppelt sein), und können sich Speicherzellen in einem gleichen String eine gemeinsame Ziffernleitung teilen (z. B. mit ihr gekoppelt sein) (die alternativ auch als Bitleitung bezeichnet werden kann).
  • Bei einigen NAND-Architekturen können Speicherzellen auf einer ersten Granularitätsebene (z. B. auf der Seitenebene der Granularität) gelesen und programmiert (z. B. geschrieben) werden, aber auf einer zweiten Granularitätsebene (z. B. auf der Blockebene der Granularität) gelöscht werden. Das heißt, eine Seite 175 kann die kleinste Speichereinheit (z. B. Satz von Speicherzellen) sein, die unabhängig programmiert oder gelesen werden kann (z. B. gleichzeitig als Abschnitt einer einzelnen Programmier- oder Leseoperation programmiert oder gelesen werden), und ein Block 170 kann die kleinste Speichereinheit (z. B. Satz von Speicherzellen) sein, die unabhängig gelöscht werden kann (z. B. gleichzeitig als Abschnitt einer einzelnen Löschoperation gelöscht werden). Ferner können in einigen Fällen NAND-Speicherzellen gelöscht werden, bevor sie mit neuen Daten wiederbeschrieben werden können. So kann zum Beispiel eine verwendete Seite 175 in einigen Fällen erst dann aktualisiert werden, wenn der gesamte Block 170, der die Seite 175 beinhaltet, gelöscht worden ist.
  • Um einige Daten innerhalb eines Blocks 170 zu aktualisieren, während andere Daten innerhalb des Blocks 170 beibehalten werden, kann die Speichervorrichtung 130 in einigen Fällen die beizubehaltenden Daten in einen neuen Block 170 kopieren und die aktualisierten Daten auf eine oder mehrere verbleibende Seiten des neuen Blocks 170 schreiben. Die Speichervorrichtung 130 (z. B. die lokale Steuerung 135) oder die Speichersystemsteuerung 115 kann die Daten, die in dem alten Block 170 verbleiben, als ungültig oder veraltet markieren oder auf andere Weise kennzeichnen und kann eine Logisch-zu-Physisch(L2P)-Abbildungstabelle aktualisieren, um die logische Adresse (z. B. LBA) der Daten dem neuen gültigen Block 170 statt dem alten ungültigen Block 170 zuzuordnen. In einigen Fällen kann ein solches Kopieren und Wiederabbilden durchgeführt werden, anstatt den gesamten alten Block 170 zu löschen und wieder zu schreiben, zum Beispiel aus Gründen der Latenz oder der Abnutzung. In einigen Fällen können eine oder mehrere Kopien einer L2P-Abbildungstabelle innerhalb der Speicherzellen der Speichervorrichtung 130 (z. B. innerhalb eines oder mehrerer Blöcken 170 oder Ebenen 165) zur Verwendung (z. B. zur Bezugnahme und Aktualisierung) durch die lokale Steuerung 135 oder die Speichersystemsteuerung 115 gespeichert werden.
  • In einigen Fällen können L2P-Abbildungstabellen beibehalten werden und Daten können auf der Granularitätsebene der Seite als gültig oder ungültig markiert werden und eine Seite 175 kann gültige Daten, ungültige Daten oder keine Daten beinhalten. Ungültige Daten können Daten sein, die aufgrund einer neueren oder aktualisierten Version der Daten, die auf einer anderen Seite 175 der Speichervorrichtung 130 gespeichert sind, veraltet sind. Ungültige Daten wurden möglicherweise zuvor auf die ungültige Seite 175 programmiert, sind jedoch möglicherweise nicht mehr mit einer gültigen logischen Adresse verbunden, wie etwa einer logischen Adresse, auf die durch das Hostsystem 105 verwiesen wird. Gültige Daten können die neueste Version solcher Daten sein, die auf der Speichervorrichtung 130 gespeichert sind. Eine Seite 175, die keine Daten beinhaltet, kann eine Seite 175 sein, auf die noch nie geschrieben wurde oder die gelöscht wurde.
  • In einigen Fällen kann eine Speichersystemsteuerung 115 oder eine lokale Steuerung 135 Operationen (z. B. als Teil eines oder mehrerer Medienverwaltungsalgorithmen) für eine Speichervorrichtung 130 ausführen, wie etwa Wear Leveling, Hintergrundaktualisierung, Garbage Collection, Scrub, Block Scans, Gesundheitsüberwachung oder andere, oder eine beliebige Kombination davon. Zum Beispiel kann ein Block 170 innerhalb einer Speichervorrichtung 130 einige Seiten 175, die gültige Daten enthalten, und einige Seiten 175, die ungültige Daten enthalten, aufweisen. Um ein Warten, bis alle Seiten 175 im Block 170 ungültige Daten aufweisen, um den Block 170 zu löschen und wiederzuverwenden, zu vermeiden, kann ein als „Garbage Collection“ bezeichneter Algorithmus aufgerufen werden, damit der Block 170 gelöscht und als freier Block für nachfolgende Schreiboperationen freigegeben werden kann. Die Garbage Collection kann sich auf einen Satz von Medienverwaltungsoperationen beziehen, die zum Beispiel Auswählen eines Blocks 170, der gültige und ungültige Daten enthält, Auswählen von Seiten 175 in dem Block, der gültige Daten enthält, Kopieren der gültigen Daten von den ausgewählten Seiten 175 zu neuen Stellen (z. B. freie Seiten 175 in einem anderen Block 170), Markieren der Daten in den zuvor ausgewählten Seiten 175 als ungültig und Löschen des ausgewählten Blocks 170 beinhalten. Als Ergebnis kann die Anzahl der Blöcke 170, die gelöscht wurden, erhöht werden, sodass mehr Blöcke 170 verfügbar sind, um nachfolgende Daten zu speichern (z. B. Daten, die nachfolgend von dem Hostsystem 105 empfangen werden).
  • In einigen Fällen kann ein Speichersystem 110 eine Speichersystemsteuerung 115 nutzen, um ein verwaltetes Speichersystem bereitzustellen, das beispielsweise ein oder mehrere Speicherarrays und zugehörige Schaltungen in Kombination mit einer lokalen (z. B. On-Chip- oder In-Paket-) Steuerung (z. B. lokale Steuerung 135) beinhalten kann. Ein Beispiel für ein verwaltetes Speichersystem ist ein verwaltetes NAND(MNAND)-System.
  • Das System 100 kann eine beliebige Anzahl nichttransitorischer computerlesbarer Medien beinhalten, die Adressabbildungen für Direktzugriffsoperationen unterstützen. Zum Beispiel können das Hostsystem 105 (z. B. eine Hostsystemsteuerung 106), das Speichersystem 110 (z. B. eine Speichersystemsteuerung 115) oder eine Speichervorrichtung 130 (z. B. eine lokale Steuerung 135) ein oder mehrere nichttransitorische computerlesbare Medien beinhalten oder auf andere Weise darauf zugreifen, die Anweisungen (z. B. Firmware, Logik, Code) zum Durchführen der Funktionen speichern, die in dieser Schrift dem Hostsystem 105, dem Speichersystem 110 oder einer Speichervorrichtung 130 zugeschrieben sind. Zum Beispiel können derartige Anweisungen, falls sie durch das Hostsystem 105 (z. B. durch eine Hostsystemsteuerung 106), durch das Speichersystem 110 (z. B. eine Speichersystemsteuerung 115) oder durch eine Speichervorrichtung 130 (z. B. durch eine lokale Steuerung 135) ausgeführt werden, das Hostsystem 105, das Speichersystem 110 oder die Speichervorrichtung 130 dazu veranlassen, zugeordnete Funktionen, wie in dieser Schrift beschrieben, durchzuführen.
  • Das Speichersystem 110 kann eine L2P-Tabelle nutzen, um Lese- und Schreiboperationen durchzuführen. Die logischen Adressen können auf physische Adressen abgebildet werden, die innerhalb der nichtflüchtigen Speichervorrichtungen 130 verwendet werden, wodurch es möglich sein kann, dass Daten in die nichtflüchtigen Speichervorrichtungen geschrieben oder aus diesen gelesen werden können. In einigen Beispielen kann das Speichersystem 110 einen Puffer (z. B. einen Abbildungszusammenführungspuffer; nicht gezeigt) nutzen, um Abschnitte einer L2P-Tabelle während einer oder mehrerer Zugriffsoperationen zu speichern.
  • Zum Beispiel kann während einer Schreiboperation (z. B. einer Direktschreiboperation) ein Abschnitt einer L2P-Tabelle aus der Speichervorrichtung 130 in den Abbildungszusammenführungspuffer geladen werden. In einigen Fällen können ein oder mehrere Abschnitte (z. B. eine oder mehrere Abbildungen), die in dem Abschnitt der L2P-Tabelle beinhaltet sind, während der Schreiboperation aktualisiert werden. Wenn eine nachfolgende Direktleseoperation angefordert wird, kann der Abschnitt der L2P-Tabelle in dem Abbildungszusammenführungspuffer beibehalten werden (z. B. anstatt in die Speichervorrichtung 130 geleert zu werden). Daher muss der Abbildungszusammenführungspuffer möglicherweise keinen Abschnitt der L2P-Tabelle laden, um die Direktleseoperation durchzuführen. Der Abbildungszusammenführungspuffer kann daher Abbildungsdaten enthalten, die für die Direktleseoperationen genutzt werden können. Durch das Eliminieren des Ladens eines oder mehrerer Abschnitte einer L2P-Tabelle in den Abbildungszusammenführungspuffer kann die Zeit, die benötigt wird, um die nachfolgenden Direktleseoperationen durchzuführen, verringert werden, was die Gesamtleistung des Speichersystems 110 erhöhen kann.
  • 2 veranschaulicht ein Beispiel eines Systems 200, das Adressabbildungen für Direktzugriffsoperationen gemäß in dieser Schrift offenbarten Beispielen unterstützt. Das System 200 kann ein Beispiel eines Systems 100 sein, wie unter Bezugnahme auf 1 oder Aspekte davon beschrieben. Das System 200 kann ein Speichersystem 210 beinhalten, das dazu konfiguriert ist, von dem Hostsystem 205 empfangene Daten zu speichern und Daten an das Hostsystem 205 zu senden, falls dies durch das Hostsystem 205 unter Verwendung von Zugriffsbefehlen (z. B. Lesebefehlen oder Schreibbefehlen) angefordert wird. Das System 200 kann Aspekte des Systems 100 wie unter Bezugnahme auf 1 beschrieben implementieren. Zum Beispiel können das Speichersystem 210 und das Hostsystem 205 Beispiele des Speichersystems 110 bzw. des Hostsystems 105 sein.
  • Das Speichersystem 210 kann eine oder mehrere Speichervorrichtungen 240 beinhalten, um Daten zu speichern, die zwischen dem Speichersystem 210 und dem Hostsystem 205 übertragen werden (z. B. als Reaktion auf das Empfangen von Zugriffsbefehlen von dem Hostsystem 205). Die Speichervorrichtungen 240 können eine oder mehrere Speichervorrichtungen beinhalten, wie unter Bezugnahme auf 1 beschrieben. Zum Beispiel können die Speichervorrichtungen 240 unter anderem beispielhaft NAND-Speicher, PCM, selbstwählende Speicher, 3D-Kreuzpunkt, andere Chalkogenid-basierte Speicher, FERAM, MRAM, NOR (z. B. NOR-Flash) Speicher, STT-MRAM, CBRAM, RRAM oder OxRAM beinhalten.
  • Das Speichersystem 210 kann eine Speichersteuerung 230 zum Steuern des Weiterleitens von Daten direkt an und von den Speichervorrichtungen 240 beinhalten (z. B. zum Speichern von Daten, zum Abrufen von Daten, zum Bestimmen von Speicherstellen, an denen Daten gespeichert und von denen Daten abgerufen werden sollen). Die Speichersteuerung 230 kann mit Speichervorrichtungen 240 direkt oder über einen Bus (nicht gezeigt) kommunizieren, was Verwenden eines Protokolls beinhalten kann, das für jeden Typ von Speichervorrichtung 240 spezifisch ist. In einigen Fällen kann eine einzelne Speichersteuerung 230 dazu verwendet werden, mehrere Speichervorrichtungen 240 des gleichen oder unterschiedlichen Typs zu steuern. In einigen Fällen kann das Speichersystem 210 mehrere Speichersteuerungen 230 beinhalten (z. B. eine andere Speichersteuerung 230 für jeden Typ von Speichervorrichtung 240). In einigen Fällen kann eine Speichersteuerung 230 Aspekte einer lokalen Steuerung 135 implementieren, wie unter Bezugnahme auf 1 beschrieben.
  • Das Speichersystem 210 kann eine Schnittstelle 220 zur Kommunikation mit dem Hostsystem 205 und einen Puffer 225 zur vorübergehenden Speicherung von Daten beinhalten, die zwischen dem Hostsystem 205 und den Speichervorrichtungen 240 übertragen werden. Die Schnittstelle 220, der Puffer 225 und die Speichersteuerung 230 können Übersetzen von Daten zwischen dem Hostsystem 205 und den Speichervorrichtungen 240 unterstützen (z. B. wie durch einen Datenpfad 250 gezeigt) und können gemeinsam als Datenpfadkomponenten bezeichnet werden.
  • Das Verwenden des Puffers 225 zum vorübergehenden Speichern von Daten während Übertragungen kann ermöglichen, dass Daten gepuffert werden, während Befehle verarbeitet werden, was die Latenzzeit zwischen Befehlen reduzieren kann und willkürliche Datengrößen, die Befehlen zugeordnet sind, unterstützen kann. Dies kann auch ermöglichen, Bursts von Befehlen zu handhaben, und die gepufferten Daten können gespeichert oder übertragen werden oder beides (z. B. sobald ein Burst gestoppt ist). Der Puffer 225 kann einen relativ schnellen Speicher (z. B. einige Typen von flüchtigem Speichern wie etwa SRAM oder DRAM) oder Hardwarebeschleuniger oder beides beinhalten, um ein schnelles Speichern und Abrufen von Daten in und aus dem Puffer 225 zu ermöglichen. Der Puffer 225 kann Datenpfadumschaltkomponenten für eine bidirektionale Datenübertragung zwischen dem Puffer 225 und anderen Komponenten beinhalten.
  • Eine vorübergehende Speicherung von Daten innerhalb eines Puffers 225 kann sich auf die Speicherung von Daten in dem Puffer 225 während der Ausführung von Zugriffsbefehlen beziehen. Zum Beispiel können nach Abschluss eines Zugriffsbefehls die zugeordneten Daten möglicherweise nicht länger im Puffer 225 beibehalten werden (z. B. können mit Daten für zusätzliche Zugriffsbefehle überschrieben werden). In einigen Beispielen kann der Puffer 225 ein Nicht-Cache-Puffer sein. Das heißt, Daten können durch das Hostsystem 205 nicht direkt aus dem Puffer 225 gelesen werden. In einigen Beispielen können Lesebefehle einer Warteschlange hinzugefügt werden, ohne eine Operation zum Abgleichen der Adresse mit bereits im Puffer 225 vorhandenen Adressen (z. B. ohne eine Cache-Adressenübereinstimmung oder eine Nachschlageoperation).
  • Das Speichersystem 210 kann zudem eine Speichersystemsteuerung 215 zum Ausführen der von dem Hostsystem 205 empfangenen Befehle beinhalten, was Steuern der Datenpfadkomponenten zum Verschieben der Daten beinhalten kann. Die Speichersystemsteuerung 215 kann ein Beispiel der Speichersystemsteuerung 115 sein, wie unter Bezugnahme auf 1 beschrieben. Ein Bus 235 kann zur Kommunikation zwischen den Systemkomponenten verwendet werden.
  • In einigen Fällen können eine oder mehrere Warteschlangen (z. B. eine Befehlswarteschlange 260, eine Pufferwarteschlange 265 und eine Speicherwarteschlange 270) dazu verwendet werden, das Verarbeiten der Zugriffsbefehle und die Bewegung entsprechender Daten zu steuern. Dies kann zum Beispiel von Vorteil sein, falls mehr als ein Zugriffsbefehl von dem Hostsystem 205 gleichzeitig durch das Speichersystem 210 verarbeitet wird. Die Befehlswarteschlange 260, die Pufferwarteschlange 265 und die Speicherwarteschlange 270 sind jeweils an der Schnittstelle 220, der Speichersystemsteuerung 215 und der Speichersteuerung 230 als Beispiele einer möglichen Implementierung dargestellt. Warteschlangen können jedoch, falls implementiert, überall innerhalb des Speichersystems 210 positioniert sein.
  • Daten, die zwischen dem Hostsystem 205 und den Speichervorrichtungen 240 übertragen werden, können entlang eines anderen Pfads in dem Speichersystem 210 als Nichtdateninformationen (z. B. Befehle, Statusinformationen) befördert werden. Zum Beispiel können die Systemkomponenten in dem Speichersystem 210 unter Verwendung eines Busses 235 miteinander kommunizieren, während die Daten den Datenpfad 250 durch die Datenpfadkomponenten anstelle des Busses 235 verwenden können. Die Speichersystemsteuerung 215 kann steuern, wie und ob Daten zwischen dem Hostsystem 205 und den Speichervorrichtungen 240 übertragen werden, indem sie mit den Datenpfadkomponenten über den Bus 235 kommuniziert (z. B. unter Verwendung eines für das Speichersystem 210 spezifischen Protokolls).
  • Falls ein Hostsystem 205 Zugriffsbefehle an das Speichersystem 210 überträgt, können die Befehle durch die Schnittstelle 220 empfangen werden (z. B. gemäß einem Protokoll, wie etwa einem UFS-Protokoll oder einem eMMC-Protokoll). Somit kann die Schnittstelle 220 als Front-End des Speichersystems 210 betrachtet werden. Nach Empfang jedes Zugriffsbefehls kann die Schnittstelle 220 den Befehl an die Speichersystemsteuerung 215 kommunizieren (z. B. über den Bus 235). In einigen Fällen kann jeder Befehl durch die Schnittstelle 220 einer Befehlswarteschlange 260 hinzugefügt werden, um den Befehl an die Speichersystemsteuerung 215 zu kommunizieren.
  • Die Speichersystemsteuerung 215 kann bestimmen, dass ein Zugriffsbefehl empfangen wurde, basierend auf der Kommunikation von der Schnittstelle 220. In einigen Fällen kann die Speichersystemsteuerung 215 bestimmen, dass der Zugriffsbefehl empfangen wurde, indem der Befehl aus der Befehlswarteschlange 260 abgerufen wird. Der Befehl kann aus der Befehlswarteschlange 260 entfernt werden, nachdem er abgerufen wurde (z. B. durch die Speichersystemsteuerung 215). In einigen Fällen kann die Speichersystemsteuerung 215 die Schnittstelle 220 veranlassen (z. B. über den Bus 235), den Befehl aus der Befehlswarteschlange 260 zu entfernen.
  • Nach einer Bestimmung, dass ein Zugriffsbefehl empfangen wurde, kann die Speichersystemsteuerung 215 den Zugriffsbefehl ausführen. Für einen Lesebefehl kann dies Erlangen von Daten von einer oder mehreren Speichervorrichtungen 240 und Übertragen der Daten an das Hostsystem 205 beinhalten. Für einen Schreibbefehl kann dies Empfangen von Daten von dem Hostsystem 205 und Verschieben der Daten an eine oder mehrere Speichervorrichtungen 240 beinhalten. In jedem Fall kann die Speichersystemsteuerung 215 den Puffer 225 unter anderem zur temporären Speicherung der Daten verwenden, die von dem Hostsystem 205 empfangen oder an dieses gesendet werden. Der Puffer 225 kann als Middle-End des Speichersystems 210 betrachtet werden. In einigen Fällen kann die Pufferadressverwaltung (z. B. Zeiger auf Adressstellen in dem Puffer 225) durch Hardware (z. B. dedizierte Schaltungen) in der Schnittstelle 220, dem Puffer 225 oder der Speichersteuerung 230 durchgeführt werden.
  • Um einen von dem Hostsystem 205 empfangenen Schreibbefehl zu verarbeiten, kann die Speichersystemsteuerung 215 bestimmen, ob der Puffer 225 ausreichend verfügbaren Speicherplatz hat, um Daten, die dem Befehl zugeordnet sind, zu speichern. Zum Beispiel kann die Speichersystemsteuerung 215 (z. B. über Firmware, über Steuerungsfirmware) eine Menge an Platz innerhalb des Puffers 225 bestimmen, der verfügbar sein kann, um Daten, die dem Schreibbefehl zugeordnet sind, zu speichern.
  • In einigen Fällen kann eine Pufferwarteschlange 265 dazu verwendet werden, einen Fluss von Befehlen zu steuern, die Daten zugeordnet sind, die in dem Puffer 225 gespeichert sind, einschließlich Schreibbefehlen. Die Pufferwarteschlange 265 kann die Zugriffsbefehle beinhalten, die Daten zugeordnet sind, die derzeit im Puffer 225 gespeichert sind. In einigen Fällen können die Befehle in der Befehlswarteschlange 260 durch die Speichersystemsteuerung 215 in die Pufferwarteschlange 265 verschoben werden und in der Pufferwarteschlange 265 verbleiben, während die zugehörigen Daten in dem Puffer 225 gespeichert sind. In einigen Fällen kann jeder Befehl in der Pufferwarteschlange 265 einer Adresse in dem Puffer 225 zugeordnet sein. Zum Beispiel können Zeiger, die angeben, wo in dem Puffer 225 die jedem Befehl zugeordneten Daten gespeichert sind, beibehalten werden. Unter Verwendung der Pufferwarteschlange 265 können mehrere Zugriffsbefehle sequenziell von dem Hostsystem 205 empfangen werden und mindestens Teile der Zugriffsbefehle können gleichzeitig verarbeitet werden.
  • Falls der Puffer 225 ausreichend Platz hat, um die Schreibdaten zu speichern, kann die Speichersystemsteuerung 215 die Schnittstelle 220 veranlassen, eine Verfügbarkeitsangabe an das Hostsystem 205 zu übertragen (z. B. eine „Bereit zum Übertragen“-Angabe), die gemäß einem Protokoll (z. B. ein UFS-Protokoll, ein eMMC-Protokoll) durchgeführt werden kann. Während die Schnittstelle 220 die dem Schreibbefehl zugeordneten Daten von dem Hostsystem 205 empfängt, kann die Schnittstelle 220 die Daten unter Verwendung des Datenpfads 250 zur vorübergehenden Speicherung an den Puffer 225 übertragen. In einigen Fällen kann die Schnittstelle 220 (z. B. aus dem Puffer 225, aus der Pufferwarteschlange 265) die Stelle innerhalb des Puffers 225 erlangen, an der die Daten zu speichern sind. Die Schnittstelle 220 kann der Speichersystemsteuerung 215 (z. B. über den Bus 235) angeben, ob die Datenübertragung an den Puffer 225 abgeschlossen ist.
  • Nachdem die Schreibdaten durch die Schnittstelle 220 in dem Puffer 225 gespeichert wurden, können die Daten aus dem Puffer 225 übertragen und in einer Speichervorrichtung 240 gespeichert werden, was Operationen der Speichersteuerung 230 einbeziehen kann. Zum Beispiel kann die Speichersystemsteuerung 215 die Speichersteuerung 230 veranlassen, die Daten aus dem Puffer 225 unter Verwendung des Datenpfads 250 abzurufen und die Daten an eine Speichervorrichtung 240 zu übertragen. Die Speichersteuerung 230 kann als Back-End des Speichersystems 210 betrachtet werden. Die Speichersteuerung 230 kann der Speichersystemsteuerung 215 (z. B. über den Bus 235) angeben, dass die Datenübertragung an eine oder mehrere Speichervorrichtungen 240 abgeschlossen ist.
  • In einigen Fällen kann eine Speicherwarteschlange 270 eine Übertragung von Schreibdaten unterstützen. Zum Beispiel kann die Speichersystemsteuerung 215 (z. B. über den Bus 235) Schreibbefehle von der Pufferwarteschlange 265 zur Verarbeitung an die Speicherwarteschlange 270 treiben. Die Speicherwarteschlange 270 kann Einträge für jeden Zugriffsbefehl beinhalten. In einigen Beispielen kann die Speicherwarteschlange 270 zusätzlich einen Pufferzeiger (z. B. eine Adresse), der angeben kann, wo in dem Puffer 225 die dem Befehl zugeordneten Daten gespeichert sind, und einen Speicherzeiger (z. B. eine Adresse), der die Speicherstelle in den Speichervorrichtungen 240, die den Daten zugeordnet ist, angeben kann, beinhalten. In einigen Fällen kann die Speichersteuerung 230 (z. B. aus dem Puffer 225, aus der Pufferwarteschlange 265, aus der Speicherwarteschlange 270) die Stelle innerhalb des Puffers 225 erlangen, aus der die Daten zu erlangen sind. Die Speichersteuerung 230 kann die Speicherstellen innerhalb der Speichervorrichtungen 240 verwalten, um die Daten zu speichern (z. B. Durchführung von Wear-Leveling, Durchführen von Garbage Collection). Die Einträge können der Speicherwarteschlange 270 hinzugefügt werden (z. B. durch die Speichersystemsteuerung 215). Die Einträge können aus der Speicherwarteschlange 270 entfernt werden (z. B. durch die Speichersteuerung 230, durch die Speichersystemsteuerung 215) nach Abschluss der Übertragung der Daten.
  • Um einen von dem Hostsystem 205 empfangenen Lesebefehl zu verarbeiten, kann die Speichersystemsteuerung 215 bestimmen, ob der Puffer 225 ausreichend verfügbaren Platz hat, um die Daten, die dem Befehl zugeordnet sind, zu speichern. Zum Beispiel kann die Speichersystemsteuerung 215 (z. B. über Firmware, über Steuerungsfirmware) eine Menge an Platz innerhalb des Puffers 225 bestimmen, der verfügbar sein kann, um Daten, die dem Lesebefehl zugeordnet sind, zu speichern.
  • In einigen Fällen kann die Pufferwarteschlange 265 Pufferspeicherung von Daten unterstützen, die Lesebefehlen zugeordnet sind, auf ähnliche Weise wie in Bezug auf Schreibbefehle erörtert. Falls zum Beispiel der Puffer 225 ausreichend Platz hat, um die Lesedaten zu speichern, kann die Speichersystemsteuerung 215 die Speichersteuerung 230 veranlassen, die dem Lesebefehl zugeordneten Daten von einer Speichervorrichtung 240 abzurufen und die Daten in dem Puffer 225 zur vorübergehenden Speicherung unter Verwendung des Datenpfads 250 zu speichern. Die Speichersteuerung 230 kann der Speichersystemsteuerung 215 (z. B. über den Bus 235) angeben, wann die Datenübertragung an den Puffer 225 abgeschlossen ist.
  • In einigen Fällen kann die Speicherwarteschlange 270 dazu verwendet werden, bei der Übertragung von Lesedaten zu helfen. Zum Beispiel kann die Speichersystemsteuerung 215 den Lesebefehl zur Verarbeitung in die Speicherwarteschlange 270 treiben. In einigen Fällen kann die Speichersteuerung 230 (z. B. aus dem Puffer 225, aus der Speicherwarteschlange 270) die Stelle innerhalb der einen oder den mehreren Speichervorrichtungen 240 erlangen, aus der die Daten abzurufen sind. In einigen Fällen kann die Speichersteuerung 230 (z. B. aus der Pufferwarteschlange 265) die Stelle innerhalb des Puffers 225 erlangen, an der die Daten zu speichern sind. In einigen Fällen kann die Speichersteuerung 230 (z. B. von der Speicherwarteschlange 270) die Stelle innerhalb des Puffers 225 erlangen, an der die Daten zu speichern sind. In einigen Fällen kann die Speichersystemsteuerung 215 den durch die Speicherwarteschlange 270 verarbeiteten Befehl zurück in die Befehlswarteschlange 260 verschieben.
  • Sobald die Daten durch die Speichersteuerung 230 in dem Puffer 225 gespeichert wurden, können die Daten aus dem Puffer 225 übertragen und an das Hostsystem 205 gesendet werden. Zum Beispiel kann die Speichersystemsteuerung 215 die Schnittstelle 220 dazu veranlassen, die Daten aus dem Puffer 225 unter Verwendung des Datenpfads 250 abzurufen und die Daten an das Hostsystem 205 zu übertragen (z. B. gemäß einem Protokoll, wie etwa einem UFS-Protokoll oder ein eMMC-Protokoll). Zum Beispiel kann die Schnittstelle 220 den Befehl von der Befehlswarteschlange 260 verarbeiten und kann der Speichersystemsteuerung 215 angeben (z. B. über den Bus 235), dass die Datenübertragung an das Hostsystem 205 abgeschlossen ist.
  • Die Speichersystemsteuerung 215 kann empfangene Befehle gemäß einer Reihenfolge (z. B. einer First-In-First-Out-Reihenfolge, gemäß der Reihenfolge der Befehlswarteschlange 260) ausführen. Für jeden Befehl kann die Speichersystemsteuerung 215 veranlassen, dass Daten, die dem Befehl entsprechen, in den und aus dem Puffer 225 verschoben werden, wie vorstehend erörtert. Während die Daten in den Puffer 225 verschoben und darin gespeichert werden, kann der Befehl in der Pufferwarteschlange 265 verbleiben. Ein Befehl kann aus der Pufferwarteschlange 265 entfernt werden (z. B. durch die Speichersystemsteuerung 215), falls die Verarbeitung des Befehls abgeschlossen ist (z. B. falls Daten, die dem Zugriffsbefehl entsprechen, aus dem Puffer 225 heraus übertragen wurden). Falls ein Befehl aus der Pufferwarteschlange 265 entfernt wird, kann die Adresse, die zuvor die diesem Befehl zugeordneten Daten gespeichert hat, verfügbar sein, um Daten zu speichern, die einem neuen Befehl zugeordnet sind.
  • Die Speichersystemsteuerung 215 kann in einigen Beispielen zusätzlich für andere Operationen im Zusammenhang mit der einen oder den mehreren Speichervorrichtungen 240 konfiguriert sein. Zum Beispiel kann die Speichersystemsteuerung 215 Operationen wie etwa Verschleißausgleichsoperationen, Garbage-Collection-Operationen, Fehlerkontrolloperationen wie etwa Fehlererkennungsoperationen oder Fehlerkorrekturoperationen, Verschlüsselungsoperationen, Caching-Operationen, Medienverwaltungsoperationen, Hintergrundauffrischung, Zustandsüberwachung und Adressübersetzungen zwischen logischen Adressen (z. B. LBAs), die Befehlen von dem Hostsystem 205 zugeordnet sind, und physischen Adressen (z. B. physische Blockadressen), die Speicherzellen innerhalb der Speichervorrichtungen 240 zugeordnet sind, ausführen oder verwalten. Zum Beispiel kann das Hostsystem 205 Befehle ausgeben, die eine oder mehrere LBAs angeben, und die Speichersystemsteuerung 215 kann eine oder mehrere physische Blockadressen identifizieren, die durch die LBAs angegeben werden. In einigen Fällen können eine oder mehrere zusammenhängende LBAs nicht zusammenhängenden physischen Blockadressen entsprechen. In einigen Fällen kann die Speichersteuerung 230 dazu konfiguriert sein, eine oder mehrere der beschriebenen Operationen in Verbindung mit oder anstelle der Speichersystemsteuerung 215 durchzuführen. In einigen Fällen kann die Speichersystemsteuerung 215 die Funktionen der Speichersteuerung 230 durchführen und die Speichersteuerung 230 kann weggelassen werden.
  • Das Speichersystem 210 kann eine L2P-Tabelle nutzen, um Lese- und Schreiboperationen durchzuführen. Die logischen Adressen können auf physische Adressen abgebildet werden, die innerhalb der nichtflüchtigen Speichervorrichtungen 240 verwendet werden, wodurch es möglich sein kann, dass Daten in die nichtflüchtigen Speichervorrichtungen geschrieben oder aus diesen gelesen werden können. In einigen Beispielen kann das Speichersystem 210 einen Puffer (z. B. einen Abbildungszusammenführungspuffer; nicht gezeigt) verwenden, um Abschnitte einer L2P-Tabelle während einer oder mehrerer Zugriffsoperationen zu speichern.
  • Zum Beispiel kann während einer Schreiboperation (z. B. einer Direktschreiboperation) ein Abschnitt einer L2P-Tabelle aus der Speichervorrichtung 240 in den Abbildungszusammenführungspuffer geladen werden. In einigen Fällen können ein oder mehrere Abschnitte (z. B. eine oder mehrere Abbildungen), die in dem Abschnitt der L2P-Tabelle beinhaltet sind, während der Schreiboperation aktualisiert werden. Wenn eine nachfolgende Direktleseoperation angefordert wird, kann der Abschnitt der L2P-Tabelle in dem Abbildungszusammenführungspuffer beibehalten werden (z. B. anstatt in die Speichervorrichtung 240 geleert zu werden). Daher muss der Abbildungszusammenführungspuffer möglicherweise keinen Abschnitt der L2P-Tabelle laden, um die Direktleseoperation durchzuführen. Der Abbildungszusammenführungspuffer kann daher Abbildungsdaten enthalten, die für die Direktleseoperationen genutzt werden können. Durch das Eliminieren des Ladens eines oder mehrerer Abschnitte einer L2P-Tabelle in den Abbildungszusammenführungspuffer kann die Zeit, die benötigt wird, um die nachfolgenden Direktleseoperationen durchzuführen, verringert werden, was die Gesamtleistung des Speichersystems 210 erhöhen kann.
  • 3 veranschaulicht ein Beispiel eines Systems 300, das Adressabbildungen für Direktzugriffsoperationen gemäß in dieser Schrift offenbarten Beispielen unterstützt. Das System 300 veranschaulicht ein Hostsystem 301, das mit einem Speichersystem 302 gekoppelt ist, das eine Speichersystemsteuerung 310 beinhaltet. In einigen Beispielen kann die Speichersystemsteuerung 310 Aspekte einer L2P-Tabelle beibehalten, die dazu verwendet wird, auf Daten innerhalb der Speichervorrichtungen 303 zuzugreifen. Das Speichersystem 302 kann einen Änderungsprotokollverwalter 311, einen Puffer 313 (z. B. einen Abbildungszusammenführungspuffer 313) und einen Änderungsprotokollpuffer 312 beinhalten. In einigen Beispielen kann ein Abschnitt einer L2P-Tabelle während eines oder mehrerer Zugriffsoperationen in dem Abbildungszusammenführungspuffer 313 gespeichert (z. B. beibehalten) werden, was die Gesamtleistung des Speichersystems 302 erhöhen kann.
  • Bei dem in 3 veranschaulichten System 300 können verschiedene Komponenten ähnlichen Komponenten entsprechen, die in Bezug auf die 1 und 2 beschrieben sind. Zum Beispiel könnte die Speichervorrichtung 303 ein Beispiel der Speichervorrichtung 130-a oder 130-b sein, wie sie anhand von 1 beschrieben ist. Ebenso könnte die Speichersystemsteuerung 310 ein Beispiel für die Speichersystemsteuerung 115 sein, wie auch unter Bezugnahme auf 1 beschrieben.
  • In einigen Beispielen kann die Speichersystemsteuerung 310 Befehle (z. B. Zugriffsbefehl) von dem Hostsystem 301 empfangen und Operationen (z. B. Zugriffsoperationen) an den Speichervorrichtungen 303 durchführen. Zum Beispiel kann die Speichersystemsteuerung 310 Direktzugriffsoperationen (z. B. Direktleseoperationen; Direktschreiboperationen) durchführen, die Lesen von Daten aus oder Schreiben von Daten in nicht-sequenzielle Adressen der Speichervorrichtungen 303 beinhalten können. Zusätzlich oder alternativ kann die Speichersystemsteuerung 310 mit dem Änderungsprotokollverwalter 311, dem Änderungsprotokollpuffer 312 und dem Abbildungszusammenführungspuffer 313 kommunizieren, um Aspekte einer L2P-Tabelle beizubehalten und zu aktualisieren. In einigen Fällen kann der Änderungsprotokollverwalter 311 innerhalb der Speichersystemsteuerung 310 integriert sein oder ein getrennter physischer Prozessor sein, der die Funktionen implementiert, die durch den Änderungsprotokollverwalter 311 durchgeführt werden.
  • Der Änderungsprotokollpuffer 312 und der Abbildungszusammenführungspuffer 313 können dazu genutzt werden, Aspekte einer L2P-Tabelle zu aktualisieren und beizubehalten, die dazu verwendet wird, Zugriffsoperationen an den Speichervorrichtungen 303 durchzuführen. Zum Beispiel kann jeder Änderungsprotokollpuffer 312 und der Abbildungszusammenführungspuffer 313 eine oder mehrere flüchtige Speicherzellen, wie etwa SRAM-Zellen, beinhalten, die zum Aktualisieren und Beibehalten von Aspekten der L2P-Tabelle verwendet werden. In einigen Fällen kann der Abschnitt der L2P-Tabelle in dem Abbildungszusammenführungspuffer 313 gespeichert werden, und Aspekte der L2P-Tabelle können unter Verwendung des Änderungsprotokollpuffers 312 aktualisiert werden. Zusätzlich oder alternativ kann der Änderungsprotokollverwalter 311 verfolgen, welche Abschnitte der L2P-Tabelle (z. B. welche logischen Adressen oder welche logischen Adressbereiche) in dem Abbildungszusammenführungspuffer 313 gespeichert sind. Dementsprechend kann der Änderungsprotokollverwalter 311, wenn ein Zugriffsbefehl empfangen wird, entweder die Zugriffsoperation unter Verwendung des Abschnitts der L2P-Tabelle erleichtern, der in dem Abbildungszusammenführungspuffer 313 gespeichert ist, oder kann das Laden eines relevanten Abschnitts der L2P-Tabelle aus den Speichervorrichtungen 303 (z. B. in den Abbildungszusammenführungspuffer 313) erleichtern.
  • Wenn zum Beispiel ein Schreibbefehl von dem Hostsystem 301 empfangen wird, kann ein Eintrag zu dem Änderungsprotokollpuffer 312 hinzugefügt werden, was dazu führen kann, dass der Abschnitt des L2P, der in dem Abbildungszusammenführungspuffer 313 gespeichert ist, aktualisiert wird. Die Speichersystemsteuerung 310 kann den Abschnitt der L2P-Tabelle (z. B. von den Speichervorrichtungen 303) bei Empfangen eines Zugriffsbefehls in den Abbildungszusammenführungspuffer 313 laden. Diese Daten können durch die Speichersystemsteuerung 310 dazu verwendet werden, die Adressübersetzungen von logisch zu physisch für jede Lese- und Schreiboperation durchzuführen.
  • Wenn die Speichersystemsteuerung 310 eine Schreiboperation durchführt, kann die Speichersystemsteuerung 310 Daten aus den Speichervorrichtungen 303 lesen, die Daten nach Bedarf durch die Schreiboperation modifizieren und die modifizierten Daten an die Speichervorrichtungen 303 zurückgeben (z. B. schreiben). Zum Beispiel kann das Speichersystem, wenn eine Schreiboperation durchgeführt wird, einen Schreibbefehl empfangen, der eine logische Adresse beinhaltet. Die Speichersystemsteuerung 310 kann die Daten in eine oder mehrere physische Adressen (z. B. eine oder mehrere nicht-sequenzielle physische Adressen) der Speichervorrichtungen 303 schreiben und kann den Abschnitt der L2P aktualisieren, der in dem Abbildungszusammenführungspuffer 313 gespeichert ist, um die Abbildung widerzuspiegeln.
  • In einigen Fällen kann die Speichersystemsteuerung 310 den Abschnitt der L2P-Tabelle aktualisieren, indem sie einen Eintrag in dem Änderungsprotokollpuffer 312 erstellt, der die aktualisierte Abbildung widerspiegelt. Der Eintrag kann Daten enthalten, die die Änderungen angeben, die in dem Abschnitt der L2P-Tabelle vorzunehmen sind, der in dem Abbildungszusammenführungspuffer 313 gespeichert ist. Zum Beispiel kann ein Eintrag in den Änderungsprotokollpuffer 312 geschrieben werden, der die empfangene logische Adresse der physischen Adresse zuordnet, in die die Daten geschrieben wurden. Dementsprechend kann während einer Dauer (z. B. einer Leerlaufdauer; einer Dauer, wenn das Speichersystem 302 über Bandbreite verfügt, um die L2P-Tabelle zu aktualisieren) der Abschnitt der L2P-Tabelle, der in dem Abbildungszusammenführungspuffer 313 gespeichert ist, aktualisiert werden. In einigen Fällen kann dem Änderungsprotokollverwalter 311 ein Hinweis auf die aktualisierte Abbildung bereitgestellt werden.
  • Der Änderungsprotokollverwalter 311 kann die in dem Änderungsprotokollpuffer 312 gespeicherten Einträge periodisch verwenden, um den Abschnitt der L2P-Tabelle, der in dem Abbildungszusammenführungspuffer 313 gespeichert ist, zu aktualisieren. Zusätzlich oder alternativ kann der aktualisierte Abschnitt der L2P-Tabelle, der in dem Abbildungszusammenführungspuffer 313 gespeichert ist, dazu verwendet werden, die in den Speichervorrichtungen 303 gespeicherte L2P-Tabelle zu aktualisieren. Da die in den Speichervorrichtungen 303 gespeicherte L2P-Tabelle zu groß sein kann, um in den Abbildungszusammenführungspuffer 313 geladen zu werden, kann jeweils nur ein Abschnitt geladen werden und kann basierend auf Änderungen, die an dem in dem Abbildungszusammenführungspuffer 313 gespeicherten Abschnitt vorgenommen werden, periodisch aktualisiert werden. Der Änderungsprotokollverwalter 311 kann die in den Speichervorrichtungen 303 gespeicherte L2P-Tabelle zu verschiedenen Zeitpunkten aktualisieren, wie etwa wenn die Speichersystemsteuerung 310 ansonsten im Leerlauf ist, wenn der Änderungsprotokollpuffer 312 voll ist, oder wenn der Abschnitt der L2P-Tabelle aus dem Abbildungszusammenführungspuffer 313 entfernt wird, um einen anderen Abschnitt der L2P-Tabelle zu laden.
  • Während des Betriebs kann die Speichersystemsteuerung 310 Zugriffsbefehle (z. B. Direktlesebefehle, Direktschreibbefehle) von dem Hostsystem 105 empfangen. Wie in dieser Schrift beschrieben, kann eine Direktzugriffsoperation Daten aus nicht-sequenziellen Adressen der Speichervorrichtungen 303 lesen oder Daten in diese schreiben. In einigen Fällen können auf Direktschreiboperationen üblicherweise Direktleseoperationen folgen. Dementsprechend kann der Abschnitt der L2P-Tabelle, der während einer Direktschreiboperation geladen (und aktualisiert) wird, für eine nachfolgende Direktleseoperation (oder eine andere Art von Zugriffsoperation) in dem Abbildungszusammenführungspuffer 313 beibehalten werden. Durch Beibehalten des Abschnitts der L2P-Tabelle in dem Abbildungszusammenführungspuffer 313 muss die Speichersystemsteuerung 310 (oder eine andere Komponente des Speichersystems 302) möglicherweise keine zusätzlichen Abschnitte der L2P-Tabelle (z. B. aus den Speichervorrichtungen 303) für die Direktleseoperation laden. Dementsprechend können Latenzzeiten, die sonst durch den Ladeprozess auftreten würden, abgemildert werden, was die Gesamtleistung des Speichersystems 302 verbessern kann.
  • 4 veranschaulicht ein Beispiel eines Speichersystems 400, das Adressabbildungen für Direktzugriffsoperationen gemäß in dieser Schrift offenbarten Beispielen unterstützt. In einigen Beispielen kann die Speichervorrichtung 400 Operationen veranschaulichen, die, neben anderen Komponenten, an dem oder durch den Änderungsprotokollpuffer, den Abbildungszusammenführungspuffer und die Speichervorrichtung durchgeführt werden, wie anhand von 3 beschrieben. In einigen Beispielen kann ein Abschnitt einer L2P-Tabelle während eines oder mehrerer Zugriffsoperationen in dem Abbildungszusammenführungspuffer 313 gespeichert (z. B. beibehalten) werden, was die Gesamtleistung der Speichervorrichtung 400 erhöhen kann.
  • In einigen Beispielen kann eine Speichervorrichtung 401 eine L2P-Tabelle beibehalten, die dazu verwendet wird, Zugriffsoperationen zu erleichtern. Zum Beispiel kann die Speichervorrichtung 401 die L2P-Tabelle in einem Abschnitt 411 des Speichers (z. B. in einem Abschnitt 411 eines oder mehrerer Speicherarrays) beibehalten. Wie in dieser Schrift beschrieben, kann die L2P-Tabelle zu groß sein, um in den Abbildungszusammenführungspuffer 313 geladen zu werden, sodass zu einem gegebenen Zeitpunkt nur ein Abschnitt 412 der L2P-Tabelle in den Abbildungszusammenführungspuffer 313 geladen werden kann. Wenn ein Zugriffsbefehl (z. B. ein Direktschreibbefehl) empfangen wird, kann der Abschnitt 412 der L2P-Tabelle in den Abbildungszusammenführungspuffer 313 geladen werden. Der Abschnitt kann eine logische Adresse (oder einen Bereich von logischen Adressen) beinhalten, die in dem empfangenen Befehl beinhaltet ist.
  • Die Speichersystemsteuerung kann den Abschnitt 412 der L2P-Tabelle dazu verwenden, die empfangene(n) logische(n) Adresse(n) 305 in physische Adressen 306 der Speichervorrichtung 401 zu übersetzen. Daher kann der Abschnitt 412 der L2P-Tabelle in den Abbildungszusammenführungspuffer 313 geladen werden, wenn ein Zugriffsbefehl empfangen wird. Zum Beispiel kann die Speichersystemsteuerung einen Direktschreibbefehl empfangen und einen Abschnitt 412 der L2P-Tabelle entsprechend in den Abbildungszusammenführungspuffer 313 laden. Der geladene Abschnitt kann eine logische Adresse oder einen Bereich von logischen Adressen beinhalten, die bzw. der dem Direktschreibbefehl zugeordnet ist.
  • Als Reaktion auf das Empfangen der Schreiboperation kann die Speichersystemsteuerung Daten aus der Speichervorrichtung 401 lesen, die Daten nach Bedarf durch die Schreiboperation modifizieren und die modifizierten Daten an die Speichervorrichtung 401 zurückgeben (z. B. schreiben). Zum Beispiel kann das Speichersystem, wenn eine Schreiboperation durchgeführt wird, einen Schreibbefehl empfangen, der eine logische Adresse beinhaltet. Die Speichersystemsteuerung kann die Daten in eine oder mehrere physische Adressen (z. B. eine oder mehrere nicht-sequenzielle physische Adressen) der Speichervorrichtung 401 schreiben und kann einen Eintrag in den Änderungsprotokollpuffer 312 schreiben, um den Abschnitt 412 der L2P zu aktualisieren, der in dem Abbildungszusammenführungspuffer 313 gespeichert ist. Beispielsweise kann die Speichersystemsteuerung bei Empfangen eines Schreibbefehls Daten in die aktualisierte Speicherseite 422 schreiben und einen Eintrag in den Änderungsprotokollpuffer 312 speichern. Der Eintrag kann angeben, dass eine Zuordnung zwischen einer logischen Adresse 305 und einer physischen Adresse der Speicherseite 421 zu aktualisieren ist, um zwischen der logischen Adresse 305 und der physischen Adresse der aktualisierten Speicherseite 422 zu sein.
  • Der Abschnitt 412 der L2P-Tabelle, der in dem Abbildungszusammenführungspuffer 313 gespeichert ist, kann basierend auf der in dem Änderungsprotokollpuffer 312 gespeicherten Angabe aktualisiert werden. Zum Beispiel kann ein Eintrag in dem Änderungsprotokollpuffer 312 eine logische Adresse, eine der logischen Adresse entsprechende vorherige physische Adresse und eine bei Abschluss der Schreiboperation zu verwendende aktualisierte physische Adresse enthalten. Dementsprechend kann während einer nachfolgenden Dauer (z. B. während einer Leerlaufdauer) der Abschnitt 412 der L2P-Tabelle aktualisiert werden.
  • In einigen Fällen kann jedes Mal, wenn Daten in die Speichervorrichtung 401 geschrieben werden, dem Änderungsprotokollpuffer 312 ein Eintrag hinzugefügt werden. In einigen Beispielen kann, wenn ein Eintrag zu dem Änderungsprotokollpuffer 312 hinzugefügt wird, ein zusätzlicher Abschnitt der L2P-Tabelle aus der Speichervorrichtung 401 geladen (z. B. in den Abbildungszusammenführungspuffer 313 geladen) werden. Falls zum Beispiel der Eintrag in dem Änderungsprotokollpuffer 312 nicht einem Abschnitt 412 der L2P-Tabelle zugeordnet ist, kann ein weiterer Abschnitt aus der Speichervorrichtung 401 geladen werden.
  • Zusätzlich oder alternativ kann, wenn der Abschnitt 412 der L2P-Tabelle aktualisiert wird, der Abschnitt 412 in die Speichervorrichtung 401 geleert werden. Wie in dieser Schrift verwendet, kann „Leeren“ sich darauf beziehen, den Abschnitt 412 der L2P-Tabelle der Speichervorrichtung 401 bereitzustellen, sodass die in der Speichervorrichtung 401 gespeicherte L2P-Tabelle aktualisiert werden kann. Der Abschnitt 412 der L2P-Tabelle kann nach dem Leeren in dem Abbildungszusammenführungspuffer 313 verbleiben. In anderen Fällen kann Leeren des Abschnitts 412 der L2P-Tabelle in die Speichervorrichtung 401 den Abschnitt 412 aus dem Abbildungszusammenführungspuffer 313 entfernen. In solchen Fällen kann der Abschnitt 412 bei Auftreten einer nachfolgenden Direktleseoperation (oder einer beliebigen anderen nachfolgenden Operation, für die der Abschnitt 412 verwendet wird) geleert werden.
  • Wie in dieser Schrift beschrieben, folgen Direktleseoperationen häufig auf Direktschreiboperationen. Dementsprechend kann der Abschnitt 412 der L2P-Tabelle in dem Abbildungszusammenführungspuffer 313 für eine Dauer beibehalten werden, die mindestens eine nachfolgende Operation umfasst. Zum Beispiel könnte die Dauer mindestens eine Direktleseoperation oder mindestens eine Operation eines anderen Typs umfassen.
  • Da eine Direktleseoperation häufig den gleichen Bereich logischer Adressen wie eine Direktschreiboperation beinhaltet, kann der Abschnitt 412 der L2P-Tabelle für die Direktleseoperation genutzt werden. Das heißt, die Speichersystemsteuerung muss für den Direktlesebefehl möglicherweise keinen Abschnitt der L2P-Tabelle in den Abbildungszusammenführungspuffer 313 laden. Somit kann die Speichersystemsteuerung anstelle eines erneuten Ladens eines Abschnitts der L2P-Tabelle anwendbare Teile der geladenen L2P-Tabelle nutzen, um die Zugriffsoperation durchzuführen. Durch Beibehalten des Abschnitts 412 der L2P-Tabelle in dem Abbildungszusammenführungspuffer 313 muss die Speichersystemsteuerung (oder eine andere Komponente des Speichersystems) möglicherweise keine zusätzlichen Abschnitte der L2P-Tabelle (z. B. aus der Speichervorrichtung 401) für die Direktleseoperation laden. Dementsprechend können Latenzzeiten, die sonst durch den Ladeprozess auftreten würden, abgemildert werden, was die Gesamtleistung des Speichersystems verbessern kann.
  • 5 veranschaulicht ein Blockdiagramm 500 eines Speichersystems 520, das Adressabbildungen für Direktzugriffsoperationen gemäß in dieser Schrift offenbarten Beispielen unterstützt. Das Speichersystem 520 kann ein Beispiel von Aspekten eines Speichersystems sein, wie unter Bezugnahme auf 1 bis 4 beschrieben wurde. Das Speichersystem 520 oder verschiedene Komponenten davon können ein Beispiel für Mittel zum Durchführen verschiedener Aspekte von Adressabbildungen für Direktzugriffsoperationen sein, wie in dieser Schrift beschrieben. Zum Beispiel kann das Speichersystem 520 eine Empfangskomponente 525, eine Aktualisierungskomponente 530, eine Übertragungskomponente 535, eine Lesekomponente 540, eine Schreibkomponente 545 oder eine beliebige Kombination davon beinhalten. Jede dieser Komponenten kann direkt oder indirekt (z. B. über einen oder mehrere Busse) mit einer anderen kommunizieren.
  • Die Empfangskomponente 525 kann als ein Mittel zum Empfangen eines Schreibbefehls, der eine logische Adresse beinhaltet, die einem Speichersystem zugeordnet ist, das nichtflüchtige Speicherzellen beinhaltet, konfiguriert sein oder dieses auf andere Weise unterstützen. Die Aktualisierungskomponente 530 kann als ein Mittel zum Aktualisieren einer Abbildung zwischen der logischen Adresse und einer physischen Adresse der nichtflüchtigen Speicherzellen an einem Puffer der Speichervorrichtung mindestens teilweise basierend auf dem Empfangen des Schreibbefehls konfiguriert sein oder dieses auf andere Weise unterstützen. Die Übertragungskomponente 535 kann als ein Mittel zum Übertragen von Informationen, die in dem Puffer gespeichert sind, in die nichtflüchtigen Speicherzellen mindestens teilweise basierend auf dem Aktualisieren der Informationen in dem Puffer konfiguriert sein oder dieses auf andere Weise unterstützen. In einigen Beispielen kann die Empfangskomponente 525 als ein Mittel zum Empfangen eines Lesebefehls, der logischen Adresse beinhaltet, mindestens teilweise basierend auf dem Aktualisieren der Abbildung zwischen der logischen Adresse und der physischen Adresse der nichtflüchtigen Speicherzellen konfiguriert sein oder dieses auf andere Weise unterstützen. Die Lesekomponente 540 kann als ein Mittel zum Lesen der physischen Adresse der nichtflüchtigen Speicherzellen, die der logischen Adresse entspricht, unter Verwendung der aktualisierten Abbildung, die in dem Puffer des Speichersystems gespeichert ist, mindestens teilweise basierend auf dem Empfangen des Lesebefehls konfiguriert sein oder dieses auf andere Weise unterstützen.
  • Die Aktualisierungskomponente 530 kann in einigen Beispielen als ein Mittel zum Beibehalten der aktualisierten Abbildung in dem Puffer des Speichersystems für eine Dauer konfiguriert sein oder dieses auf andere Weise unterstützen, wobei das Lesen der physischen Adresse der nichtflüchtigen Speicherzellen, die der logischen Adresse entspricht, während der Dauer auftritt.
  • Die Übertragungskomponente 535 kann in einigen Beispielen als ein Mittel zum Übertragen einer Angabe der aktualisierten Abbildung aus dem Puffer des Speichersystems in die nichtflüchtigen Speicherzellen während der Dauer konfiguriert sein oder dieses auf andere Weise unterstützen.
  • In einigen Beispiele kann die Aktualisierungskomponente 530 zum Laden der Abbildung in den Puffer des Speichersystems mindestens teilweise basierend auf dem Empfangen des Schreibbefehls konfiguriert sein oder dieses auf andere Weise unterstützen, wobei das Aktualisieren der Abbildung zwischen der logischen Adresse und der physischen Adresse mindestens teilweise auf Laden der Abbildung in den Puffer basiert.
  • In einigen Beispielen kann die Empfangskomponente 525 als ein Mittel zum Empfangen eines zweiten Schreibbefehls, der eine Vielzahl von logischen Adressen beinhaltet, die dem Speichersystem zugeordnet ist, konfiguriert sein oder dieses auf andere Weise unterstützen. In einigen Beispielen kann die Aktualisierungskomponente 530 als ein Mittel zum Aktualisieren von Abbildungen zwischen jeder logischen Adresse aus der Vielzahl von logischen Adressen und einer entsprechenden physischen Adresse der nichtflüchtigen Speicherzellen an dem Puffer des Speichersystems mindestens teilweise basierend auf dem Empfangen des zweiten Schreibbefehls konfiguriert sein oder dieses auf andere Weise unterstützen. In einigen Beispielen kann die Empfangskomponente 525 als ein Mittel zum Empfangen eines zweiten Lesebefehls, der einen Teilsatz aus der Vielzahl von logischen Adressen beinhaltet, mindestens teilweise basierend auf dem Aktualisieren der Abbildungen zwischen jeder logischen Adresse aus der Vielzahl von logischen Adressen und der entsprechenden physischen Adresse der nichtflüchtigen Speicherzellen konfiguriert sein oder dieses auf andere Weise unterstützen. Die Lesekomponente 540 kann in einigen Beispielen als ein Mittel zum Lesen von physischen Adressen der nichtflüchtigen Speicherzellen, die dem Teilsatz aus der Vielzahl von logischen Adressen entsprechen, unter Verwendung der aktualisierten Abbildungen an dem Puffer des Speichersystems mindestens teilweise basierend auf dem Empfangen des zweiten Lesebefehls konfiguriert sein oder dieses auf andere Weise unterstützen.
  • In einigen Beispielen kann die Aktualisierungskomponente 530 als ein Mittel zum Beibehalten der aktualisierten Abbildungen zwischen jeder logischen Adresse aus der Vielzahl von logischen Adressen und der entsprechenden physischen Adresse der nichtflüchtigen Speicherzellen in dem Puffer der Speichervorrichtung für eine zweite Dauer konfiguriert sein oder dieses auf andere Weise unterstützen, wobei das Lesen der physischen Adressen der nichtflüchtigen Speicherzellen, die dem Teilsatz aus der Vielzahl von logischen Adressen entsprechen, während der zweiten Dauer auftritt.
  • In einigen Beispielen kann die Schreibkomponente 545 als ein Mittel zum Schreiben der aktualisierten Abbildungen an dem Puffer des Speichersystems in die nichtflüchtigen Speicherzellen nach Abschluss einer Operation, die dem Schreibbefehl zugeordnet ist, konfiguriert sein oder dieses auf andere Weise unterstützen.
  • In einigen Beispielen erstreckt sich die Dauer über das Schreiben der aktualisierten Abbildungen an dem Puffer des Speichersystems in die nichtflüchtigen Speicherzellen hinaus.
  • In einigen Beispielen erstreckt sich die zweite Dauer über das Schreiben der aktualisierten Abbildungen an dem Puffer des Speichersystems in die nichtflüchtigen Speicherzellen hinaus.
  • In einigen Beispielen kann die Schreibkomponente 545 als ein Mittel zum Schreiben von Daten in die physische Adresse der nichtflüchtigen Speicherzellen mindestens teilweise basierend auf dem Empfangen des Schreibbefehls konfiguriert sein oder dieses auf andere Weise unterstützen.
  • In einigen Beispielen beinhaltet der Schreibbefehl einen Direktschreibbefehl. In einigen Beispielen beinhaltet der Lesebefehl einen Direktlesebefehl.
  • In einigen Beispielen enthält der Puffer die Abbildung zwischen der logischen Adresse und der physischen Adresse für einen Adressraum, der durch einen Hostprozess verwendet wird, der Direktschreibbefehle und Direktlesebefehle ausgibt.
  • In einigen Beispielen kann die Aktualisierungskomponente 530 als ein Mittel zum Aktualisieren eines Änderungsprotokolls von Änderungen an der Abbildung mindestens teilweise basierend auf dem Empfangen des Schreibbefehls konfiguriert sein oder dieses auf andere Weise unterstützen, wobei das Aktualisieren der Abbildung mindestens teilweise auf Aktualisieren des Änderungsprotokolls basiert.
  • In einigen Beispielen kann die Übertragungskomponente 535 als ein Mittel zum Übertragen eines Abschnitts der Abbildung aus den nichtflüchtigen Speicherzellen in den Puffer mindestens teilweise basierend auf dem Aktualisieren eines Änderungsprotokolls konfiguriert sein oder dieses auf andere Weise unterstützen, wobei das Aktualisieren der Abbildung mindestens teilweise auf Übertragen des Abschnitts der Abbildung und auf einem oder mehreren Einträgen in dem Änderungsprotokoll basiert.
  • In einigen Beispielen beinhaltet der Puffer einen Abbildungszusammenführungspuffer.
  • In einigen Beispielen kann die Schreibkomponente 545 als ein Mittel zum Schreiben der aktualisierten Abbildungen an dem Puffer des Speichersystems in die nichtflüchtigen Speicherzellen nach Abschluss einer Operation, die dem Schreibbefehl zugeordnet ist, konfiguriert sein oder dieses auf andere Weise unterstützen.
  • 6 zeigt ein Ablaufdiagramm, das ein Verfahren 600 veranschaulicht, das Adressabbildungen für Direktzugriffsoperationen gemäß in dieser Schrift offenbarten Beispielen unterstützt. Die Operationen des Verfahrens 600 können durch ein Speichersystem oder seine Komponenten wie in dieser Schrift beschrieben implementiert sein. Zum Beispiel können die Operationen des Verfahrens 600 durch ein Speichersystem durchgeführt werden, wie unter Bezugnahme auf die 1 bis 5 beschrieben. In einigen Beispielen kann ein Speichersystem einen Satz von Anweisungen ausführen, um die Funktionselemente der Vorrichtung zu steuern, um die beschriebenen Funktionen durchzuführen. Zusätzlich oder alternativ kann das Speichersystem Aspekte der beschriebenen Funktionen unter Verwendung spezieller Hardware durchführen.
  • Bei 605 kann das Verfahren Empfangen eines Schreibbefehls, der eine logische Adresse beinhaltet, die einem Speichersystem zugeordnet ist, das nichtflüchtige Speicherzellen beinhaltet, beinhalten. Die Operationen von 605 können gemäß in dieser Schrift offenbarten Beispielen durchgeführt werden. In einigen Beispielen können Aspekte der Operationen von 605 durch eine Empfangskomponente 525 durchgeführt werden, wie unter Bezugnahme auf 5 beschrieben.
  • Bei 610 kann das Verfahren Aktualisieren einer Abbildung zwischen der logischen Adresse und einer physischen Adresse der nichtflüchtigen Speicherzellen an einem Puffer des Speichersystems mindestens teilweise basierend auf dem Empfangen des Schreibbefehls beinhalten. Die Operationen von 610 können gemäß in dieser Schrift offenbarten Beispielen durchgeführt werden. In einigen Beispielen können Aspekte der Operationen von 610 durch eine Aktualisierungskomponente 530 durchgeführt werden, wie unter Bezugnahme auf 5 beschrieben.
  • Bei 615 kann das Verfahren Übertragen von Informationen, die in dem Puffer gespeichert sind, in die nichtflüchtigen Speicherzellen mindestens teilweise basierend auf dem Aktualisieren der Informationen in dem Puffer beinhalten. Die Operationen von 615 können gemäß in dieser Schrift offenbarten Beispielen durchgeführt werden. In einigen Beispielen können Aspekte der Operationen von 615 durch eine Übertragungskomponente 535 durchgeführt werden, wie unter Bezugnahme auf 5 beschrieben.
  • Bei 620 kann das Verfahren Empfangen eines Lesebefehls, der die logische Adresse beinhaltet, mindestens teilweise basierend auf dem Aktualisieren der Abbildung zwischen der logischen Adresse und der physischen Adresse der nichtflüchtigen Speicherzellen beinhalten. Die Operationen von 620 können gemäß in dieser Schrift offenbarten Beispielen durchgeführt werden. In einigen Beispielen können Aspekte der Operationen von 620 durch eine Empfangskomponente 525 durchgeführt werden, wie unter Bezugnahme auf 5 beschrieben.
  • Bei 625 kann das Verfahren Lesen der physischen Adresse der nichtflüchtigen Speicherzellen, die der logischen Adresse entspricht, unter Verwendung der aktualisierten Abbildung, die in dem Puffer des Speichersystems gespeichert ist, mindestens teilweise basierend auf dem Empfangen des Lesebefehls beinhalten. Die Operationen von 625 können gemäß in dieser Schrift offenbarten Beispielen durchgeführt werden. In einigen Beispielen können Aspekte der Operationen von 625 durch eine Lesekomponente 540 durchgeführt werden, wie unter Bezugnahme auf 5 beschrieben.
  • In einigen Beispielen kann ein in dieser Schrift beschriebenes Gerät ein Verfahren oder mehrere Verfahren durchführen, wie etwa das Verfahren 600. Das Gerät kann Merkmale, Schaltkreise, Logik, Mittel oder Anweisungen (z. B. ein nichttransitorisches, computerlesbares Medium, das durch einen Prozessor ausführbare Anweisungen speichert) oder eine beliebige Kombination davon zum Durchführen der folgenden Aspekte der vorliegenden Offenbarung beinhalten:
  • Aspekt 1: Verfahren, Gerät oder nichttransitorisches computerlesbares Medium, das Operationen, Merkmale, Schaltungen, Logik, Mittel oder Anweisungen oder eine beliebige Kombination davon zum Empfangen eines Schreibbefehls, der eine logische Adresse beinhaltet, die einem Speichersystem zugeordnet ist, das nichtflüchtige Speicherzellen beinhaltet; Aktualisieren einer Abbildung zwischen der logischen Adresse und einer physischen Adresse der nichtflüchtigen Speicherzellen an einem Puffer des Speichersystems mindestens teilweise basierend auf dem Empfangen des Schreibbefehls; Übertragen von Informationen, die in dem Puffer gespeichert sind, in die nichtflüchtigen Speicherzellen mindestens teilweise basierend auf dem Aktualisieren der Informationen in dem Puffer; Empfangen eines Lesebefehls, der die logische Adresse beinhaltet, basierend auf dem Aktualisieren der Abbildung zwischen der logischen Adresse und der physischen Adresse der nichtflüchtigen Speicherzellen; und Lesen der physischen Adresse der nichtflüchtigen Speicherzellen, die der logischen Adresse entspricht, unter Verwendung der aktualisierten Abbildung, die in dem Puffer des Speichersystems gespeichert ist, mindestens teilweise basierend auf dem Empfangen des Lesebefehls, beinhaltet.
  • Aspekt 2: Verfahren, Gerät oder nichttransitorisches computerlesbares Medium des Aspekts 1, ferner beinhaltend Operationen, Merkmale, Schaltungen, Logik, Mittel oder Anweisungen oder eine beliebige Kombination davon zum Beibehalten der aktualisierten Abbildung in dem Puffer des Speichersystems für eine Dauer, wobei das Lesen der physischen Adresse der nichtflüchtigen Speicherzellen, die der logischen Adresse entspricht, während der Dauer auftritt.
  • Aspekt 3: Verfahren, Gerät oder nichttransitorisches computerlesbares Medium des Aspekts 2, ferner beinhaltend Operationen, Merkmale, Schaltungen, Logik, Mittel oder Anweisungen oder eine beliebige Kombination davon zum Übertragen einer Angabe der aktualisierten Abbildung aus dem Puffer des Speichersystems in die nichtflüchtigen Speicherzellen während der Dauer.
  • Aspekt 4: Verfahren, Gerät oder nichttransitorisches computerlesbares Medium nach einem der Aspekte 1 bis 3, ferner beinhaltend Operationen, Merkmale, Schaltungen, Logik, Mittel oder Anweisungen oder eine beliebige Kombination davon zum Laden der Abbildung in den Puffer des Speichersystems mindestens teilweise basierend auf dem Empfangen des Schreibbefehls, wobei das Aktualisieren der Abbildung zwischen der logischen Adresse und der physischen Adresse mindestens teilweise auf Laden der Abbildung in den Puffer basiert.
  • Aspekt 5: Verfahren, Gerät oder nichttransitorisches computerlesbares Medium nach einem der Aspekte 1 bis 4, ferner beinhaltend Operationen, Merkmale, Schaltungen, Logik, Mittel oder Anweisungen oder eine beliebige Kombination davon zum Empfangen eines zweiten Schreibbefehls, der eine Vielzahl von logischen Adressen beinhaltet, die dem Speichersystem zugeordnet ist; Aktualisieren von Abbildungen zwischen jeder logischen Adresse aus der Vielzahl von logischen Adressen und einer entsprechenden physischen Adresse der nichtflüchtigen Speicherzellen an dem Puffer des Speichersystems mindestens teilweise basierend auf dem Empfangen des zweiten Schreibbefehls; Empfangen eines zweiten Lesebefehls, der einen Teilsatz aus der Vielzahl von logischen Adressen beinhaltet, mindestens teilweise basierend auf dem Aktualisieren der Abbildungen zwischen jeder logischen Adresse aus der Vielzahl von logischen Adressen und der entsprechenden physischen Adresse der nichtflüchtigen Speicherzellen; und Lesen physischer Adressen der nichtflüchtigen Speicherzellen, die dem Teilsatz aus der Vielzahl von logischen Adressen entsprechen, unter Verwendung der aktualisierten Abbildungen an dem Puffer des Speichersystems mindestens teilweise basierend auf dem Empfangen des zweiten Lesebefehls.
  • Aspekt 6: Verfahren, Gerät oder nichttransitorisches computerlesbares Medium des Aspekts 5, ferner beinhaltend Operationen, Merkmale, Schaltungen, Logik, Mittel oder Anweisungen oder eine beliebige Kombination davon zum Beibehalten der aktualisierten Abbildungen zwischen jeder logischen Adresse aus der Vielzahl von logischen Adressen und der entsprechenden physischen Adresse der nichtflüchtigen Speicherzellen in dem Puffer des Speichersystems für eine zweite Dauer, wobei das Lesen der physischen Adressen der nichtflüchtigen Speicherzellen, die dem Teilsatz aus der Vielzahl von logischen Adressen entsprechen, während der zweiten Dauer auftritt.
  • Aspekt 7: Verfahren, Gerät oder nichttransitorisches computerlesbares Medium des Aspekts 6, ferner beinhaltend Operationen, Merkmale, Schaltungen, Logik, Mittel oder Anweisungen oder eine beliebige Kombination davon zum Schreiben der aktualisierten Abbildungen an dem Puffer des Speichersystems in die nichtflüchtigen Speicherzellen nach Abschluss einer Operation, die dem Schreibbefehl zugeordnet ist.
  • Aspekt 8: Verfahren, Gerät oder nichttransitorisches computerlesbares Medium des Aspekts 7, wobei die Dauer über das Schreiben der aktualisierten Abbildungen an dem Puffer des Speichersystems in die nichtflüchtigen Speicherzellen hinausgeht.
  • Aspekt 9: Verfahren, Gerät oder nichttransitorisches computerlesbares Medium nach einem der Aspekte 7 bis 8, wobei die zweite Dauer über das Schreiben der aktualisierten Abbildungen an dem Puffer des Speichersystems in die nichtflüchtigen Speicherzellen hinausgeht.
  • Aspekt 10: Verfahren, Gerät oder nichttransitorisches computerlesbares Medium nach einem der Aspekte 1 bis 9, ferner beinhaltend Operationen, Merkmale, Schaltungen, Logik, Mittel oder Anweisungen oder eine beliebige Kombination davon zum Schreiben von Daten in die physische Adresse der nichtflüchtigen Speicherzellen mindestens teilweise basierend auf dem Empfangen des Schreibbefehls.
  • Aspekt 11: Verfahren, Gerät oder nichttransitorisches computerlesbares Medium nach einem der Aspekte 1 bis 10, wobei der Schreibbefehl einen Direktschreibbefehl beinhaltet und der Lesebefehl einen Direktlesebefehl beinhaltet.
  • Aspekt 12: Verfahren, Gerät oder nichttransitorisches computerlesbares Medium des Aspekts 11, wobei der Puffer die Abbildung zwischen der logischen Adresse und der physischen Adresse für einen Adressraum enthält, der durch einen Hostprozess verwendet wird, der Direktschreibbefehle und Direktlesebefehle ausgibt.
  • Aspekt 13: Verfahren, Gerät oder nichttransitorisches computerlesbares Medium nach einem der Aspekte 1 bis 12, ferner beinhaltend Operationen, Merkmale, Schaltungen, Logik, Mittel oder Anweisungen oder eine beliebige Kombination davon zum Aktualisieren eines Änderungsprotokolls von Änderungen an der Abbildung mindestens teilweise basierend auf dem Empfangen des Schreibbefehls, wobei das Aktualisieren der Abbildung mindestens teilweise auf dem Aktualisieren des Änderungsprotokolls basiert.
  • Aspekt 14: Verfahren, Gerät oder nichttransitorisches computerlesbares Medium nach einem der Aspekte 1 bis 13, ferner beinhaltend Operationen, Merkmale, Schaltungen, Logik, Mittel oder Anweisungen oder eine beliebige Kombination davon zum Übertragen eines Abschnitts der Abbildung aus den nichtflüchtigen Speicherzellen in den Puffer mindestens teilweise basierend auf dem Aktualisieren eines Änderungsprotokolls, wobei das Aktualisieren der Abbildung mindestens teilweise auf Übertragen des Abschnitts der Abbildung und einem oder mehreren Einträgen in dem Änderungsprotokoll basiert.
  • Aspekt 15: Verfahren, Gerät oder nichttransitorisches computerlesbares Medium nach einem der Aspekte 1 bis 14, wobei der Puffer einen Abbildungszusammenführungspuffer beinhaltet.
  • Aspekt 16: Verfahren, Gerät oder nichttransitorisches computerlesbares Medium nach einem der Aspekte 1 bis 15, ferner beinhaltend Operationen, Merkmale, Schaltungen, Logik, Mittel oder Anweisungen oder eine beliebige Kombination davon zum Schreiben der aktualisierten Abbildungen an dem Puffer des Speichersystems in die nichtflüchtigen Speicherzellen nach Abschluss einer Operation, die dem Schreibbefehl zugeordnet ist.
  • Es sollte beachtet werden, dass die beschriebenen Techniken mögliche Implementierungen beinhalten und dass die Operationen und Schritte neu angeordnet oder auf andere Weise verändert werden können und dass andere Implementierungen möglich sind. Ferner können Abschnitte von zwei oder mehr der Verfahren kombiniert werden.
  • Die in dieser Schrift beschriebenen Informationen und Signale können unter Verwenden einer Vielfalt unterschiedlicher Technologien und Techniken dargestellt werden. Zum Beispiel können Daten, Anweisungen, Befehle, Informationen, Signale, Bits, Symbole und Chips, auf die in der Beschreibung Bezug genommen wird, durch Spannungen, Ströme, elektromagnetische Wellen, magnetische Felder oder Teilchen, optische Felder oder Teilchen oder eine beliebige Kombination davon dargestellt werden. Einige Zeichnungen können Signale als ein einzelnes Signal veranschaulichen; das Signal kann jedoch einen Bus von Signalen darstellen, wobei der Bus eine Vielzahl von Bitbreiten aufweisen kann.
  • Die Begriffe „elektronische Kommunikation“, „leitender Kontakt“, „verbunden“ und „gekoppelt“ können sich auf eine Beziehung zwischen Komponenten beziehen, die den Fluss von Signalen zwischen den Komponenten unterstützt. Komponenten gelten als elektronisch miteinander kommunizierend (oder in leitendem Kontakt miteinander oder verbunden oder gekoppelt), wenn es einen leitenden Pfad zwischen den Komponenten gibt, der jederzeit den Fluss von Signalen zwischen den Komponenten unterstützen kann. Zu jedem beliebigen Zeitpunkt kann der leitende Pfad zwischen Komponenten, die in elektronischer Kommunikation miteinander stehen (oder in leitendem Kontakt mit ihnen stehen oder mit ihnen verbunden oder gekoppelt sind), ein offener Schaltkreis oder ein geschlossener Schaltkreis basierend auf dem Betrieb der Vorrichtung, die die angeschlossenen Komponenten beinhaltet, sein. Der leitende Pfad zwischen den angeschlossenen Komponenten kann ein direkter leitender Pfad zwischen den Komponenten sein oder der leitende Pfad zwischen den angeschlossenen Komponenten kann ein indirekter leitender Pfad sein, der Zwischenkomponenten wie Schalter, Transistoren oder andere Komponenten beinhalten kann. In einigen Beispielen kann der Fluss von Signalen zwischen den verbundenen Komponenten zeitweise unterbrochen werden, zum Beispiel unter Verwendung von einer oder mehreren Zwischenkomponenten, wie etwa Schalter oder Transistoren.
  • Der Begriff „Kopplung“ bezieht sich auf einen Zustand, in dem von einem offenen Stromkreis zwischen Komponenten, in dem Signale derzeit nicht über einen leitenden Pfad zwischen den Komponenten übertragen werden können, zu einem geschlossenen Stromkreis zwischen Komponenten übergegangen wird, in dem Signale über den leitenden Pfad zwischen Komponenten übertragen werden können. Falls eine Komponente, wie etwa eine Steuerung, andere Komponenten miteinander koppelt, initiiert die Komponente eine Veränderung, die es ermöglicht, dass Signale zwischen den anderen Komponenten über einen leitenden Pfad fließen, der vorher keinen Signalfluss zuließ.
  • Der Begriff „isoliert“ bezieht sich auf eine Beziehung zwischen Komponenten, in der derzeit keine Signale zwischen den Komponenten fließen können. Komponenten sind voneinander isoliert, falls zwischen ihnen ein unterbrochener Stromkreis besteht. Zum Beispiel sind zwei Komponenten, die durch einen Schalter getrennt sind, der zwischen den Komponenten positioniert ist, voneinander isoliert, wenn der Schalter offen ist. Falls eine Steuerung zwei Komponenten isoliert, bewirkt die Steuerung eine Änderung, die verhindert, dass Signale zwischen den Komponenten unter Verwendung eines leitenden Pfads fließen, der zuvor den Fluss von Signalen ermöglichte.
  • Die Begriffe „falls“, „wenn“, „basierend auf oder „mindestens teilweise basierend auf können austauschbar verwendet werden. In einigen Beispielen können, falls die Begriffe „falls“, „wenn“, "basierend auf oder „mindestens teilweise basierend auf zur Beschreibung einer bedingten Handlung, eines bedingten Prozesses oder einer Verbindung zwischen Abschnitten eines Prozesses verwendet werden, die Begriffe austauschbar sein.
  • Der Begriff „als Reaktion auf” kann sich darauf beziehen, dass eine Bedingung oder Handlung mindestens teilweise, falls nicht sogar vollständig, als Folge einer vorhergehenden Bedingung oder Handlung auftritt. Zum Beispiel kann eine erste Bedingung oder Handlung ausgeführt werden und eine zweite Bedingung oder Handlung kann mindestens teilweise als Folge des Auftretens der vorherigen Bedingung oder Handlung auftreten (entweder direkt nach oder nach einem oder mehreren anderen Zwischenbedingungen oder -handlungen, die nach der ersten Bedingung oder Handlung auftreten).
  • Darüber hinaus können sich die Begriffe „direkt als Reaktion auf” oder „als direkte Reaktion auf” auf eine Bedingung oder Handlung beziehen, die als direkte Folge einer vorherigen Bedingung oder Handlung auftritt. In einigen Beispielen kann eine erste Bedingung oder Handlung durchgeführt werden und eine zweite Bedingung oder Handlung kann direkt als Folge des Auftretens der vorherigen Bedingung oder Handlung auftreten, die unabhängig davon auftritt, ob andere Bedingungen oder Handlungen auftreten. In einigen Beispielen kann eine erste Bedingung oder Handlung durchgeführt werden und eine zweite Bedingung oder Handlung kann direkt als Folge des Auftretens der vorherigen Bedingung oder Handlung auftreten, sodass keine anderen Zwischenbedingungen oder -handlungen zwischen der früheren Bedingung oder Handlung und der zweiten Bedingung auftreten oder Handlung oder eine begrenzte Anzahl von einem oder mehreren Zwischenschritten oder Zwischenhandlungen zwischen der früheren Bedingung oder Handlung und der zweiten Bedingung oder Handlung auftreten. Jede Bedingung oder Handlung, die in dieser Schrift als „basierend auf”, „mindestens teilweise basierend auf oder als Reaktion auf einen anderen Schritt, eine andere Handlung, ein anderes Ereignis oder eine andere Bedingung durchgeführt beschrieben wird, kann zusätzlich oder alternativ (z. B. in einem alternativen Beispiel) „als direkte Reaktion auf” oder „direkt als Reaktion auf” eine solche andere Bedingung oder Handlung durchgeführt werden, sofern nicht anders angegeben.
  • Die in dieser Schrift erörterten Vorrichtungen, einschließlich eines Speicherarrays, können auf einem Halbleitersubstrat, wie etwa Silizium, Germanium, einer Silizium-Germanium-Legierung, Galliumarsenid, Galliumnitrid usw., gebildet werden. In einigen Beispielen ist das Substrat ein Halbleiter-Wafer. In einigen anderen Beispielen kann das Substrat ein Silizium-auf-Isolator (silicon-on-insulator - SOI)-Substrat sein, wie etwa Silizium-auf-Glas (silicon-on-glass - SOG) oder Silizium-auf-Saphir (silicon-on-sapphire - SOP), oder epitaktische Schichten aus Halbleitermaterialien auf einem anderen Substrat. Die Leitfähigkeit des Substrats oder von Teilbereichen des Substrats kann durch Dotierung unter Verwendung von verschiedenen chemischen Stoffen, einschließlich, aber nicht beschränkt auf, Phosphor, Bor oder Arsen gesteuert werden. Das Dotieren kann während der anfänglichen Bildung oder des anfänglichen Wachstums des Substrats durch Ionenimplantation oder durch irgendein anderes Dotiermittel durchgeführt werden.
  • Eine in dieser Schrift erörterte Schaltkomponente oder ein Transistor kann einen Feldeffekttransistor (field-effect transistor - FET) darstellen und eine Vorrichtung mit drei Anschlüssen umfassen, die eine Source, einen Drain und ein Gate beinhaltet. Die Anschlüsse können durch leitende Materialien, z. B. Metalle, mit anderen elektronischen Elementen verbunden sein. Source und Drain können leitfähig sein und können einen stark dotierten, z. B. entarteten, Halbleiterbereich umfassen. Die Source und der Drain können durch einen leicht dotierten Halbleiterbereich oder -kanal getrennt sein. Falls der Kanal vom n-Typ ist (d. h. die meisten Ladungsträger sind Elektronen), kann der FET als n-Typ-FET bezeichnet werden. Falls der Kanal vom p-Typ ist (d. h. die meisten der Ladungsträger sind Löcher), kann der FET als p-Typ-FET bezeichnet werden. Der Kanal kann durch ein isolierendes Gate-Oxid abgedeckt sein. Die Kanalleitfähigkeit kann durch Anlegen einer Spannung an das Gate gesteuert werden. Zum Beispiel kann das Anlegen einer positiven Spannung oder einer negativen Spannung an einen n-Typ-FET bzw. einen p-Typ-FET dazu führen, dass der Kanal leitend wird. Ein Transistor kann „ein“ oder „aktiviert“ sein, falls eine Spannung, die größer oder gleich der Schwellenspannung des Transistors ist, an das Transistor-Gate angelegt wird. Der Transistor kann „aus“ oder „deaktiviert“ sein, falls eine Spannung, die kleiner als die Schwellenspannung des Transistors ist, an das Transistor-Gate angelegt wird.
  • Die in dieser Schrift dargelegte Beschreibung beschreibt in Verbindung mit den beigefügten Zeichnungen Beispielkonfigurationen und stellt nicht alle Beispiele dar, die implementiert werden können oder die in den Schutzumfang der Ansprüche fallen. Der in dieser Schrift verwendete Begriff „beispielhaft“ bedeutet „als ein Beispiel, Fall oder als eine Veranschaulichung dienend“ und nicht „bevorzugt“ oder „vorteilhaft gegenüber anderen Beispielen“. Die detaillierte Beschreibung beinhaltet spezifische Details zur Bereitstellung eines Verständnisses der beschriebenen Techniken. Diese Techniken können jedoch auch ohne diese spezifischen Details angewandt werden. In einigen Instanzen werden bekannte Strukturen und Vorrichtungen in Form von Blockdiagrammen dargestellt, um die Konzepte der beschriebenen Beispiele nicht zu verschleiern.
  • In den beigefügten Figuren können ähnliche Komponenten oder Merkmale das gleiche Bezugszeichen aufweisen. Darüber hinaus können verschiedene Komponenten derselben Art dadurch unterschieden werden, dass dem Bezugszeichen ein Bindestrich und eine zweite Bezeichnung folgt, die die ähnlichen Komponenten voneinander unterscheidet. Falls in der Beschreibung nur das erste Bezugszeichen verwendet wird, so gilt die Beschreibung für jede der ähnlichen Komponenten mit demselben ersten Bezugszeichen, unabhängig von dem zweiten Bezugszeichen.
  • Die in dieser Schrift beschriebenen Funktionen können in Hardware, durch einen Prozessor ausgeführte Software, Firmware oder eine beliebige Kombination davon implementiert werden. Bei Implementierung in durch einen Prozessor ausgeführter Software können die Funktionen als eine oder mehrere Anweisungen oder Code auf einem computerlesbaren Medium gespeichert oder über dieses übertragen werden. Andere Beispiele und Implementierungen fallen in den Anwendungsbereich der Offenbarung und der beigefügten Ansprüche. Zum Beispiel können die beschriebenen Funktionen aufgrund der Beschaffenheit von Software unter Verwendung von Software, die durch einen Prozessor ausgeführt wird, Hardware, Firmware, Festverdrahtung oder Kombinationen aus diesen implementiert werden. Merkmale, die Funktionen implementieren, können auch physisch an verschiedenen Positionen angeordnet sein, einschließlich einer Verteilung, sodass Abschnitte von Funktionen an unterschiedlichen physischen Stellen implementiert sind.
  • Zum Beispiel können die verschiedenen veranschaulichenden Blöcke und Komponenten, die in Verbindung mit der Offenbarung in dieser Schrift beschrieben sind, mit einem Universalprozessor, einem DSP, einem ASIC, einem FPGA oder einer anderen programmierbaren Logikvorrichtung, einer diskreten Gate- oder Transistorlogik, diskreten Hardwarekomponenten oder einer beliebigen Kombination davon implementiert oder durchgeführt werden, die dazu ausgestaltet ist, die in dieser Schrift beschriebenen Funktionen durchzuführen. Ein Universalprozessor kann ein Mikroprozessor sein, alternativ kann der Prozessor ein beliebiger Prozessor, eine beliebige Steuerung, Mikrosteuerung oder eine Zustandsmaschine sein. Ein Prozessor kann ebenso als eine Kombination von Rechenvorrichtungen implementiert sein (z. B. eine Kombination aus einem DSP und einem Mikroprozessor, mehrere Mikroprozessoren, ein oder mehrere Mikroprozessoren in Verbindung mit einem DSP-Kern oder eine beliebige andere derartige Konfiguration).
  • Wie in dieser Schrift verwendet, einschließlich in den Ansprüchen, bedeutet „oder“ in einer Liste von Elementen (z. B. in einer Liste von Elementen, der ein Satz wie „mindestens eines von“ oder „eines oder mehrere von“ vorangestellt ist) eine umfassende Liste, sodass z. B. eine Liste von mindestens einem von A, B oder C A oder B oder C oder AB oder AC oder BC oder ABC (d. h. A und B und C) bedeutet. Außerdem soll der Ausdruck „basierend auf“, wie er in dieser Schrift verwendet wird, nicht als Verweis auf einen geschlossenen Satz von Bedingungen ausgelegt werden. Zum Beispiel kann ein beispielhafter Schritt, der als „basierend auf Bedingung A“ beschrieben wird, sowohl auf einer Bedingung A als auch auf einer Bedingung B basieren, ohne den Umfang der vorliegenden Offenbarung zu verlassen. Mit anderen Worten, wie in dieser Schrift verwendet, ist der Ausdruck „basierend auf” in der gleichen Weise auszulegen wie der Ausdruck „mindestens teilweise basierend auf“.
  • Computerlesbare Medien beinhalten sowohl nichttransitorische Computerspeichermedien als auch Kommunikationsmedien, einschließlich aller Medien, die die Übertragung eines Computerprogramms von einem Ort zu einem anderen erleichtern. Ein nichttransitorisches Speichermedium kann jedes verfügbare Medium sein, auf das ein Universal- oder Spezialcomputer zugreifen kann. Als Beispiel und nicht einschränkend können nichttransitorische computerlesbare Medien Folgendes umfassen: RAM, ROM, elektrisch löschbaren programmierbaren Festwertspeicher (Electrically Erasable Programmable Read-Only Memory - EEPROM), Compact-Disk-ROM (CD-ROM) oder andere optische Plattenspeicher, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder jedes andere nichttransitorische Medium, das verwendet werden kann, um gewünschte Programmcodemittel in Form von Anweisungen oder Datenstrukturen zu tragen oder zu speichern und auf das von einem Allzweck- oder Spezialcomputer zugegriffen werden kann, oder einen Allzweck- oder Spezialcomputer. Außerdem wird jede Verbindung treffenderweise als computerlesbares Medium bezeichnet. Falls die Software zum Beispiel von einer Website, einem Server oder einer anderen entfernten Quelle über ein Koaxialkabel, Glasfaserkabel, Twisted Pair-Kabel, eine Digital Subscriber Line (DSL) oder drahtlose Technologien wie etwa Infrarot, Funk und Mikrowelle übertragen wird, dann sind Koaxialkabel, Glasfaserkabel, Twisted Pair-Kabel, DSL oder drahtlose Technologien wie etwa Infrarot, Funk und Mikrowelle in der Definition von Medium beinhaltet. Die in dieser Schrift verwendeten Datenträger beinhalten CD, Laserdisc, optische Disc, Digital Versatile Disc (DVD), Disketten und Blu-Ray-Discs, wobei Disketten Daten normalerweise magnetisch wiedergeben, während Discs Daten optisch mit Lasern wiedergeben. Kombinationen davon sind ebenso innerhalb des Umfangs der computerlesbaren Medien beinhaltet.
  • Die Beschreibung wird in dieser Schrift bereitgestellt, um es einem Fachmann zu ermöglichen, die Offenbarung herzustellen oder zu verwenden. Verschiedene Modifikationen der Offenbarung werden dem Fachmann offensichtlich sein, und die in dieser Schrift definierten allgemeinen Prinzipien können auf andere Variationen angewandt werden, ohne vom Umfang der Offenbarung abzuweichen. Somit ist die Offenbarung nicht auf die in dieser Schrift beschriebenen Beispiele und Ausgestaltungen beschränkt, sondern ihr soll der weitestgehende Umfang zugesprochen werden, der mit den in dieser Schrift offenbarten Prinzipien und neuen Merkmalen vereinbar ist.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 63/433266 [0001]

Claims (20)

  1. Gerät, das Folgendes umfasst: eine Steuerung, die einer Speichervorrichtung zugeordnet ist, wobei die Steuerung dazu konfiguriert ist, das Gerät zu Folgendem zu veranlassen: Empfangen eines Schreibbefehls, der eine logische Adresse beinhaltet, die einer oder mehreren nichtflüchtigen Speicherzellen zugeordnet ist; Aktualisieren einer Abbildung zwischen der logischen Adresse und einer physischen Adresse der einen oder mehreren nichtflüchtigen Speicherzellen an einem Puffer der Speichervorrichtung mindestens teilweise basierend auf dem Empfangen des Schreibbefehls; Übertragen von Informationen, die in dem Puffer gespeichert sind, in die eine oder mehreren nichtflüchtigen Speicherzellen mindestens teilweise basierend auf dem Aktualisieren der Informationen in dem Puffer; Empfangen eines Lesebefehls, der die logische Adresse umfasst, mindestens teilweise basierend auf dem Aktualisieren der Abbildung zwischen der logischen Adresse und der physischen Adresse der einen oder mehreren nichtflüchtigen Speicherzellen; und Lesen der physischen Adresse der einen oder mehreren nichtflüchtigen Speicherzellen, die der logischen Adresse entspricht, unter Verwendung der aktualisierten Abbildung, die in dem Puffer der Speichervorrichtung gespeichert ist, mindestens teilweise basierend auf dem Empfangen des Lesebefehls.
  2. Gerät nach Anspruch 1, wobei die Steuerung ferner dazu konfiguriert ist, das Gerät zu Folgendem zu veranlassen: Beibehalten der aktualisierten Abbildung in dem Puffer der Speichervorrichtung für eine Dauer, wobei das Lesen der physischen Adresse der einen oder mehreren nichtflüchtigen Speicherzellen, die der logischen Adresse entspricht, während der Dauer auftritt.
  3. Gerät nach Anspruch 2, wobei die Steuerung ferner dazu konfiguriert ist, das Gerät zu Folgendem zu veranlassen: Übertragen einer Angabe der aktualisierten Abbildung aus dem Puffer der Speichervorrichtung in die eine oder mehreren nichtflüchtigen Speicherzellen während der Dauer.
  4. Gerät nach Anspruch 1, wobei die Steuerung ferner dazu konfiguriert ist, das Gerät zu Folgendem zu veranlassen: Laden der Abbildung in den Puffer der Speichervorrichtung mindestens teilweise basierend auf dem Empfangen des Schreibbefehls, wobei das Aktualisieren der Abbildung zwischen der logischen Adresse und der physischen Adresse mindestens teilweise auf dem Laden der Abbildung in den Puffer basiert.
  5. Gerät nach Anspruch 1, wobei die Steuerung ferner dazu konfiguriert ist, das Gerät zu Folgendem zu veranlassen: Empfangen eines zweiten Schreibbefehls, der eine Vielzahl von logischen Adressen umfasst, die der Speichervorrichtung zugeordnet ist; Aktualisieren von Abbildungen zwischen jeder logischen Adresse aus der Vielzahl von logischen Adressen und einer entsprechenden physischen Adresse der einen oder mehreren nichtflüchtigen Speicherzellen an dem Puffer der Speichervorrichtung mindestens teilweise basierend auf dem Empfangen des zweiten Schreibbefehls; Empfangen eines zweiten Lesebefehls, der einen Teilsatz aus der Vielzahl von logischen Adressen umfasst, mindestens teilweise basierend auf dem Aktualisieren der Abbildungen zwischen jeder logischen Adresse aus der Vielzahl von logischen Adressen und einer entsprechenden physischen Adresse der einen oder mehreren nichtflüchtigen Speicherzellen; und Lesen von physischen Adressen der einen oder mehreren nichtflüchtigen Speicherzellen, die dem Teilsatz aus der Vielzahl von logischen Adressen entsprechen, unter Verwendung der aktualisierten Abbildungen an dem Puffer der Speichervorrichtung mindestens teilweise basierend auf dem Empfangen des zweiten Lesebefehls.
  6. Gerät nach Anspruch 5, wobei die Steuerung ferner dazu konfiguriert ist, das Gerät zu Folgendem zu veranlassen: Beibehalten der aktualisierten Abbildungen zwischen jeder logischen Adresse aus der Vielzahl von logischen Adressen und der entsprechenden physischen Adresse der einen oder mehreren nichtflüchtigen Speicherzellen in dem Puffer der Speichervorrichtung für eine zweite Dauer, wobei das Lesen der physischen Adressen der einen oder mehreren nichtflüchtigen Speicherzellen, die dem Teilsatz aus der Vielzahl von logischen Adressen entsprechen, während der zweiten Dauer auftritt.
  7. Gerät nach Anspruch 1, wobei die Steuerung ferner dazu konfiguriert ist, das Gerät zu Folgendem zu veranlassen: Schreiben von Daten in die physische Adresse der einen oder mehreren nichtflüchtigen Speicherzellen mindestens teilweise basierend auf dem Empfangen des Schreibbefehls.
  8. Gerät nach Anspruch 1, wobei der Schreibbefehl einen Direktschreibbefehl umfasst, und wobei der Lesebefehl einen Direktlesebefehl umfasst.
  9. Gerät nach Anspruch 1, wobei die Steuerung ferner dazu konfiguriert ist, das Gerät zu Folgendem zu veranlassen: Aktualisieren eines Änderungsprotokolls von Änderungen an der Abbildung mindestens teilweise basierend auf dem Empfangen des Schreibbefehls, wobei das Aktualisieren der Abbildung mindestens teilweise auf dem Aktualisieren des Änderungsprotokolls basiert.
  10. Gerät nach Anspruch 9, wobei die Steuerung ferner dazu konfiguriert ist, das Gerät zu Folgendem zu veranlassen: Übertragen eines Abschnitts der Abbildung aus der einen oder den mehreren nichtflüchtigen Speicherzellen in den Puffer mindestens teilweise basierend auf dem Aktualisieren des Änderungsprotokolls, wobei das Aktualisieren der Abbildung mindestens teilweise auf dem Übertragen des Abschnitts der Abbildung und auf einem oder mehreren Einträgen in dem Änderungsprotokoll basiert.
  11. Gerät nach Anspruch 1, wobei der Puffer einen Abbildungszusammenführungspuffer umfasst.
  12. Nichttransitorisches computerlesbares Medium, das Code speichert, der Anweisungen umfasst, die bei Ausführung durch einen Prozessor einer elektronischen Vorrichtung die elektronische Vorrichtung zu Folgendem veranlassen: Empfangen eines Schreibbefehls, der eine logische Adresse umfasst, die einem Speichersystem zugeordnet ist, das nichtflüchtige Speicherzellen umfasst; Aktualisieren einer Abbildung zwischen der logischen Adresse und einer physischen Adresse der nichtflüchtigen Speicherzellen an einem Puffer des Speichersystems mindestens teilweise basierend auf dem Empfangen des Schreibbefehls; Übertragen von Informationen, die in dem Puffer gespeichert sind, in die nichtflüchtigen Speicherzellen mindestens teilweise basierend auf dem Aktualisieren der Informationen in dem Puffer; Empfangen eines Lesebefehls, der die logische Adresse umfasst, mindestens teilweise basierend auf dem Aktualisieren der Abbildung zwischen der logischen Adresse und der physischen Adresse der nichtflüchtigen Speicherzellen; und Lesen der physischen Adresse der nichtflüchtigen Speicherzellen, die der logischen Adresse entspricht, unter Verwendung der aktualisierten Abbildung, die in dem Puffer des Speichersystems gespeichert ist, mindestens teilweise basierend auf dem Empfangen des Lesebefehls.
  13. Nichttransitorisches computerlesbares Medium nach Anspruch 12, wobei die Anweisungen, wenn sie durch den Prozessor der elektronischen Vorrichtung ausgeführt werden, die elektronische Vorrichtung ferner zu Folgendem veranlassen: Beibehalten der aktualisierten Abbildung in dem Puffer des Speichersystems für eine Dauer, wobei das Lesen der physischen Adresse der nichtflüchtigen Speicherzellen, die der logischen Adresse entspricht, während der Dauer auftritt.
  14. Nichttransitorisches computerlesbares Medium nach Anspruch 13, wobei die Anweisungen, wenn sie durch den Prozessor der elektronischen Vorrichtung ausgeführt werden, die elektronische Vorrichtung ferner zu Folgendem veranlassen: Übertragen einer Angabe der aktualisierten Abbildung aus dem Puffer des Speichersystems in die nichtflüchtigen Speicherzellen während der Dauer.
  15. Nichttransitorisches computerlesbares Medium nach Anspruch 12, wobei die Anweisungen, wenn sie durch den Prozessor der elektronischen Vorrichtung ausgeführt werden, die elektronische Vorrichtung ferner zu Folgendem veranlassen: Laden der Abbildung in den Puffer des Speichersystems mindestens teilweise basierend auf dem Empfangen des Schreibbefehls, wobei das Aktualisieren der Abbildung zwischen der logischen Adresse und der physischen Adresse mindestens teilweise auf dem Laden der Abbildung in den Puffer basiert.
  16. Nichttransitorisches computerlesbares Medium nach Anspruch 12, wobei die Anweisungen, wenn sie durch den Prozessor der elektronischen Vorrichtung ausgeführt werden, die elektronische Vorrichtung ferner zu Folgendem veranlassen: Empfangen eines zweiten Schreibbefehls, der eine Vielzahl von logischen Adressen umfasst, die dem Speichersystem zugeordnet ist; Aktualisieren von Abbildungen zwischen jeder logischen Adresse aus der Vielzahl von logischen Adressen und einer entsprechenden physischen Adresse der nichtflüchtigen Speicherzellen an dem Puffer der Speichervorrichtung mindestens teilweise basierend auf dem Empfangen des zweiten Schreibbefehls; Empfangen eines zweiten Lesebefehls, der einen Teilsatz aus der Vielzahl von logischen Adressen umfasst, mindestens teilweise basierend auf dem Aktualisieren der Abbildungen zwischen jeder logischen Adresse aus der Vielzahl von logischen Adressen und einer entsprechenden physischen Adresse der nichtflüchtigen Speicherzellen; und Lesen von physischen Adressen der nichtflüchtigen Speicherzellen, die dem Teilsatz aus der Vielzahl von logischen Adressen entsprechen, unter Verwendung der aktualisierten Abbildungen an dem Puffer der Speichervorrichtung mindestens teilweise basierend auf dem Empfangen des zweiten Lesebefehls.
  17. Nichttransitorisches computerlesbares Medium nach Anspruch 16, wobei die Anweisungen bei Ausführung durch den Prozessor der elektronischen Vorrichtung die elektronische Vorrichtung ferner zu Folgendem veranlassen: Beibehalten der aktualisierten Abbildungen zwischen jeder logischen Adresse aus der Vielzahl von logischen Adressen und der entsprechenden physischen Adresse der nichtflüchtigen Speicherzellen in dem Puffer des Speichersystems für eine zweite Dauer, wobei das Lesen der physischen Adressen der nichtflüchtigen Speicherzellen, die dem Teilsatz aus der Vielzahl von logischen Adressen entsprechen, während der zweiten Dauer auftritt.
  18. Nichttransitorisches computerlesbares Medium nach Anspruch 12, wobei die Anweisungen, wenn sie durch den Prozessor der elektronischen Vorrichtung ausgeführt werden, die elektronische Vorrichtung ferner zu Folgendem veranlassen: Schreiben von Daten in die physische Adresse der nichtflüchtigen Speicherzellen mindestens teilweise basierend auf dem Empfangen des Schreibbefehls.
  19. Nichttransitorisches computerlesbares Medium nach Anspruch 12, wobei der Schreibbefehl einen Direktschreibbefehl umfasst, und wobei der Lesebefehl einen Direktlesebefehl umfasst.
  20. Verfahren, das Folgendes umfasst: Empfangen eines Schreibbefehls, der eine logische Adresse umfasst, die einem Speichersystem zugeordnet ist, das nichtflüchtige Speicherzellen umfasst; Aktualisieren einer Abbildung zwischen der logischen Adresse und einer physischen Adresse der nichtflüchtigen Speicherzellen an einem Puffer des Speichersystems mindestens teilweise basierend auf dem Empfangen des Schreibbefehls; Übertragen von Informationen, die in dem Puffer gespeichert sind, in die nichtflüchtigen Speicherzellen mindestens teilweise basierend auf dem Aktualisieren der Informationen in dem Puffer; Empfangen eines Lesebefehls, der die logische Adresse umfasst, mindestens teilweise basierend auf dem Aktualisieren der Abbildung zwischen der logischen Adresse und der physischen Adresse der nichtflüchtigen Speicherzellen; und Lesen der physischen Adresse der nichtflüchtigen Speicherzellen, die der logischen Adresse entspricht, unter Verwendung der aktualisierten Abbildung, die in dem Puffer des Speichersystems gespeichert ist, mindestens teilweise basierend auf dem Empfangen des Lesebefehls.
DE102023134057.3A 2022-12-16 2023-12-05 Adressabbildungen für direktzugriffsoperationen Pending DE102023134057A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263433266P 2022-12-16 2022-12-16
US63/433,266 2022-12-16
US18/511,814 US20240201860A1 (en) 2022-12-16 2023-11-16 Address mappings for random access operations
US18/511,814 2023-11-16

Publications (1)

Publication Number Publication Date
DE102023134057A1 true DE102023134057A1 (de) 2024-06-27

Family

ID=91434769

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102023134057.3A Pending DE102023134057A1 (de) 2022-12-16 2023-12-05 Adressabbildungen für direktzugriffsoperationen

Country Status (2)

Country Link
US (1) US20240201860A1 (de)
DE (1) DE102023134057A1 (de)

Also Published As

Publication number Publication date
US20240201860A1 (en) 2024-06-20

Similar Documents

Publication Publication Date Title
DE102020107659A1 (de) Zonenbildung für gezonte namensräume
DE102015012566A1 (de) Mehrlagenkonzept für logische speicherungsverwaltung
DE102008036822A1 (de) Verfahren zum Speichern von Daten in einem Solid-State-Speicher, Solid-State-Speichersystem und Computersystem
DE112019005511T5 (de) Halten von schreibbefehlen in gezonten namensräumen
DE102021115374A1 (de) Abschwächung des in zonen unterteilten namensraums unter verwendung des unterblock-modus
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE112011106060T5 (de) Verfahren und Vorrichtung zum Verteilen von Code- und Datenspeicherungen zwischen flüchtigem und nichtflüchtigem Speicher
DE102022119340A1 (de) Auslösen einer auffrischung für einen nichtflüchtigen speicher
DE102021118940A1 (de) Speichersteuerung und speichereinrichtung mit derselben
DE102019104871A1 (de) Nichtflüchtige dateiaktualisierungsmedien
DE102022102980A1 (de) Operationsstechniken der datenverlagerung
DE112020005044T5 (de) Zonenanhang-befehlsplanung basierend auf zonenzustand
DE102022101607A1 (de) Verwaltung der hostspeicherpufferzuweisung
DE102022102434A1 (de) Flüchtiges Register zum Erkennen eines Stromverlusts
CN115248662A (zh) 动态超级块
DE102022101609A1 (de) Sehr kleine zonenunterstützung für speicherungsvorrichtungen
CN115373587A (zh) 用于废弃项目收集的页面有效性表颜色
CN114822670A (zh) 有效数据感知媒体可靠性扫描
US11755490B2 (en) Unmap operation techniques
DE112021000474T5 (de) Durchführung einer Medienverwaltungsoperation basierend auf einer Änderung eines Schreibmodus eines Datenblocks in einem Cache
DE102022119998A1 (de) Dynamische fehlerkontrollkonfiguration fürspeichersysteme
DE102022108821A1 (de) Konfigurierbare geschwindigkeit für flush-operationen
CN115373592B (zh) 用于页线填充数据的设备、非暂时性计算机可读介质及方法
DE102022120160A1 (de) Techniken zum stilllegen von blöcken eines speichersystems
DE102022101260A1 (de) Ereignismechanismus zur Fehlererkennung