DE102021115365A1 - Overhead-reduktion im datenübertragungsprotokoll für nand-speicher - Google Patents

Overhead-reduktion im datenübertragungsprotokoll für nand-speicher Download PDF

Info

Publication number
DE102021115365A1
DE102021115365A1 DE102021115365.4A DE102021115365A DE102021115365A1 DE 102021115365 A1 DE102021115365 A1 DE 102021115365A1 DE 102021115365 A DE102021115365 A DE 102021115365A DE 102021115365 A1 DE102021115365 A1 DE 102021115365A1
Authority
DE
Germany
Prior art keywords
address
nand memory
initial physical
physical column
controller
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
DE102021115365.4A
Other languages
English (en)
Inventor
Grishma Shah
Daniel Tuers
Sahil Sharma
Hua-Ling Cynthia Hsu
YenLung Li
Min Peng
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of DE102021115365A1 publication Critical patent/DE102021115365A1/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/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/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • 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/0653Monitoring storage devices or systems
    • 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/0658Controller construction 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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1048Data bus control circuits, e.g. precharging, presetting, equalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Eine Datenspeicherungsvorrichtung, die in einer Implementierung einen NAND-Speicher und eine Steuerung einschließt. Der NAND-Speicher schließt eine Lese-/Schreibschaltung ein, die eingerichtet ist, um anfängliche physische Spaltenadressen für jede in dem NAND-Speicher eingeschlossene Ebene zu bestimmen und zu speichern. Die Steuerung ist eingerichtet, um einen Leseübertragungsbefehl und eine Ein-Byte-Adresse an den NAND-Speicher zu senden. Die Schreib-/Leseschaltung ist auch eingerichtet, um eine erste anfängliche physische Spaltenadresse aus den anfänglichen physischen Spaltenadressen, die im NAND-Speicher gespeichert sind, abzurufen, nachdem der NAND-Speicher die Ein-Byte-Adresse von der Steuerung empfangen hat. Die erste anfängliche physische Spaltenadresse ist einer Chipadresse und einer Ebenenadresse zugeordnet, die in der Ein-Byte-Adresse eingeschlossen sind. Die Lese-/Schreibschaltung ist weiterhin eingerichtet, um einen ersten Datensatz abzurufen, der an der ersten anfänglichen physischen Spaltenadresse gespeichert ist. Die Schreib-/Leseschaltung ist auch eingerichtet, um den ersten Datensatz an die Steuerung auszugeben.

Description

  • RÜCKVERWEISUNG AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität und den Vorteil der vorläufigen US-Patentanmeldung Nr. 63/120,787 , eingereicht am 3. Dezember 2020, deren Inhalt hierin durch Bezugnahme in seiner Gesamtheit aufgenommen wird.
  • HINTERGRUND
  • Diese Anmeldung bezieht sich im Allgemeinen auf Speichervorrichtungen und insbesondere auf eine Steuerung und einen NAND-Speicher, die die Ausführungszeit von Datenübertragungsvorgängen verkürzen, zum Beispiel durch Vorausberechnung der anfänglichen Spaltenadressen.
  • Datenübertragungsprotokolle zwischen Steuerungen und NAND-Speicher beinhalten eine beträchtliche Anzahl von Befehls- und Adresszyklen sowie eine Wartezeit zwischen Befehls-/Adresszyklen und der Datenübertragung. Für die Befehls- und Adressierungszyklen müssen die alten Eingabe-/ Ausgabe-Geschwindigkeiten („E/A”-Geschwindigkeiten) und Protokolle verwendet werden. Datenbytes können jedoch auch unter Verwendung von Toggle-Modus-Geschwindigkeiten ausgegeben werden. Mit jeder neuen Generation von NAND-Speicher skaliert die Toggle-Modus-Geschwindigkeit um etwa 50 %. Die Befehls-/Adressgeschwindigkeit skaliert jedoch nicht mit der Toggle-Modus-Geschwindigkeit. Infolgedessen fügen die Befehls-/Adresszyklen einen erheblichen Overhead für Speichervorrichtungen hinzu, bei denen höhere Toggle-Modus-Geschwindigkeiten verwendet werden.
  • KURZDARSTELLUNG
  • Die Wartezeit zwischen den Befehls-/Adresszyklen und der Datenübertragung wird in erster Linie für die Übersetzung einer empfangenen anfänglichen logischen Spaltenadresse in eine anfängliche physische Spaltenadresse verwendet. Die Wartezeit zwischen den Befehls-/Adresszyklen und der Datenübertragung kann durch die Vorausberechnung der anfänglichen physischen Adressen der Spalten reduziert werden. Darüber hinaus kann die gesamte Befehls-/Adresszykluszeit reduziert werden, indem redundante Befehls- und Adresszyklen aus den Datenübertragungsprotokollen entfernt werden. Dementsprechend stellt die vorliegende Offenbarung Datenspeicherungsvorrichtungen, -verfahren und -einrichtungen bereit, die unter anderem anfängliche physische Spaltenadressen vorausberechnen und Datenübertragungsprotokolle mit weniger Befehls-/Adresszyklen implementieren.
  • Zum Beispiel stellt die Offenbarung eine Datenspeicherungsvorrichtung bereit. In einer Implementierung schließt die Datenspeicherungsvorrichtung einen NAND-Speicher und eine Steuerung ein. Der NAND-Speicher schließt eine Vielzahl von Chips und eine Lese-/Schreibschaltung ein. Die Vielzahl von Chips schließt jeweils eine Vielzahl von Ebenen ein. Die Lese-/Schreibschaltung ist eingerichtet, um anfängliche physische Spaltenadressen für jede der Vielzahl von Ebenen in jedem der Vielzahl von Chips zu bestimmen. Die Schreib-/Leseschaltung ist auch eingerichtet, um die anfänglichen physischen Spaltenadressen im NAND-Speicher zu speichern. Die Steuerung ist mit dem NAND-Speicher gekoppelt. Die Steuerung ist zum Senden eines Leseübertragungsbefehls an den NAND-Speicher eingerichtet, nachdem der NAND-Speicher die anfänglichen physischen Spaltenadressen gespeichert hat. Der Leseübertragungsbefehl gibt an, dass eine Ein-Byte-Adresse folgt. Die Steuerung ist auch zum Senden der Ein-Byte-Adresse an den NAND-Speicher eingerichtet. Die Ein-Byte-Adresse schließt eine Chipadresse und eine Ebenenadresse ein. Die Schreib-/Leseschaltung ist weiterhin eingerichtet, um eine erste anfängliche physische Spaltenadresse aus den anfänglichen physischen Spaltenadressen, die im NAND-Speicher gespeichert sind, abzurufen, nachdem der NAND-Speicher die Ein-Byte-Adresse von der Steuerung empfangen hat. Die erste anfängliche physische Spaltenadresse ist der Chipadresse und der Ebenenadresse zugeordnet. Die Lese-/Schreibschaltung ist auch eingerichtet, um einen ersten Datensatz abzurufen, der an der ersten anfänglichen physischen Spaltenadresse gespeichert ist. Die Schreib-/Leseschaltung ist weiterhin eingerichtet, um den ersten Datensatz an die Steuerung auszugeben.
  • Die vorliegende Offenbarung stellt auch ein Verfahren bereit, einschließlich des Bestimmens von anfänglichen physischen Spaltenadressen mit einem NAND-Speicher für jede einer Vielzahl von Ebenen in jedem einer Vielzahl von Chips in dem NAND-Speicher. Das Verfahren schließt das Speichern der anfänglichen physischen Spaltenadressen in dem NAND-Speicher ein. Das Verfahren schließt weiterhin das Senden eines Leseübertragungsbefehls von einer Steuerung an den NAND-Speicher ein, nachdem der NAND-Speicher die anfänglichen physischen Spaltenadressen gespeichert hat. Der Leseübertragungsbefehl gibt an, dass eine Ein-Byte-Adresse folgt. Das Verfahren schließt auch das Senden der Ein-Byte-Adresse von der Steuerung an den NAND-Speicher ein. Die Ein-Byte-Adresse schließt eine Chipadresse und eine Ebenenadresse ein. Das Verfahren schließt weiterhin das Abrufen einer ersten anfänglichen physischen Spaltenadresse aus den anfänglichen physischen Spaltenadressen ein, die in dem NAND-Speicher gespeichert sind, nachdem der NAND-Speicher die Ein-Byte-Adresse von der Steuerung empfangen hat. Die erste anfängliche physische Spaltenadresse ist der Chipadresse und der Ebenenadresse zugeordnet. Das Verfahren schließt auch das Abrufen eines ersten Datensatzes ein, der an der ersten anfänglichen physischen Spaltenadresse in dem NAND-Speicher gespeichert ist. Das Verfahren schließt weiterhin das Ausgeben des ersten Datensatzes aus dem NAND-Speicher an die Steuerung ein.
  • Die vorliegende Offenbarung stellt weiterhin eine Vorrichtung bereit, die Mittel zum Bestimmen anfänglicher physischer Spaltenadressen für jede einer Vielzahl von Ebenen in jedem einer Vielzahl von Chips in einem NAND-Speicher einschließt. Die Vorrichtung schließt auch Mittel zum Speichern der anfänglichen physischen Spaltenadressen in dem NAND-Speicher ein.
  • Die Vorrichtung schließt weiterhin Mittel zum Senden eines Leseübertragungsbefehls an den NAND-Speicher ein, nachdem der NAND-Speicher die anfänglichen physischen Spaltenadressen gespeichert hat. Der Leseübertragungsbefehl gibt an, dass eine Ein-Byte-Adresse folgt. Die Vorrichtung schließt auch Mittel zum Senden der Ein-Byte-Adresse an den NAND-Speicher ein. Die Ein-Byte-Adresse schließt eine Chipadresse und eine Ebenenadresse ein. Die Vorrichtung schließt weiterhin Mittel zum Abrufen einer ersten anfänglichen physischen Spaltenadresse aus den anfänglichen physischen Spaltenadressen ein, die in dem NAND-Speicher gespeichert sind, nachdem der NAND-Speicher die Ein-Byte-Adresse empfangen hat. Die erste anfängliche physische Spaltenadresse ist der Chipadresse und der Ebenenadresse zugeordnet. Die Vorrichtung schließt auch Mittel zum Abrufen eines ersten Datensatzes ein, der an der ersten anfänglichen physischen Spaltenadresse in dem NAND-Speicher gespeichert ist. Die Vorrichtung schließt weiterhin Mittel zum Ausgeben des ersten Datensatzes aus dem NAND-Speicher ein.
  • Verschiedene Gesichtspunkte der vorliegenden Offenbarung stellen Verbesserungen in Speichervorrichtungen bereit. Die vorliegende Offenbarung kann in verschiedenen Formen ausgeführt sein, einschließlich Hardware oder Schaltungen, die durch Software und/oder Firmware gesteuert werden. Die vorstehende Kurzdarstellung soll lediglich eine allgemeine Vorstellung verschiedener Gesichtspunkte der vorliegenden Offenbarung vermitteln und schränkt den Schutzumfang der vorliegenden Offenbarung in keiner Weise ein.
  • Figurenliste
    • 1 ist ein Blockdiagramm eines Beispiels eines Systems einschließlich einer Datenspeicherungsvorrichtung gemäß einigen Implementierungen der vorliegenden Offenbarung.
    • 2 ist ein Blockdiagramm eines Beispiels einer Ebene, die in einem Chip eines NAND-Speichers eingeschlossen ist, gemäß einigen Implementierungen der vorliegenden Offenbarung.
    • 3 ist ein Blockdiagramm eines Beispiels für eine ältere Datenausgabe-Protokollsequenz.
    • 4 ist ein Blockdiagramm eines Beispiels eines Ein-Byte-Adresszyklus für eine Datenausgabe-Protokollsequenz gemäß einigen Implementierungen der vorliegenden Offenbarung.
    • 5 ist ein Blockdiagramm eines Beispiels eines Ein-Byte-Adresszyklus für eine Datenausgabe-Protokollsequen, die einen Zwei-Bit-Anfangsspaltenbezeichner einschließt, gemäß einigen Implementierungen der vorliegenden Offenbarung.
    • 6 ist ein Blockdiagramm eines Beispiels einer Datenausgabe-Protokollsequenz einschließlich zweier Befehlszyklen und eines Adressenzyklus gemäß einigen Implementierungen der vorliegenden Offenbarung.
    • 7 ist ein Blockdiagramm eines Beispiels einer Datenausgabe-Protokollsequenz einschließlich eines Befehlszyklus und eines Adressenzyklus gemäß einigen Implementierungen der vorliegenden Offenbarung.
    • 8 ist ein Blockdiagramm eines Beispiels eines Verfahrens zur Durchführung eines Datenausgabevorgangs gemäß einigen Implementierungen der vorliegenden Offenbarung.
    • 9 ist ein Flussdiagramm eines Beispiels eines Verfahrens zur Durchführung eines Dateneingabe- und Programmvorgangs gemäß einigen Implementierungen der vorliegenden Offenbarung.
    • 10 ist ein Flussdiagramm eines Beispiels eines Verfahrens zur Durchführung eines Cache-Lesevorgangs gemäß einigen Implementierungen der vorliegenden Offenbarung.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche Details dargelegt, wie Datenspeicherungsvorrichtungskonfigurationen, Steuerungsoperationen und dergleichen, um ein Verständnis eines oder mehrerer Gesichtspunkte der vorliegenden Offenbarung bereitzustellen. Es ist für den Fachmann ohne weiteres ersichtlich, dass diese spezifischen Details lediglich beispielhaft sind und den Schutzumfang dieser Anmeldung nicht einschränken sollen. Insbesondere können die der Steuerung und dem NAND zugeordneten Funktionen durch Hardware (zum Beispiel analoge oder digitale Schaltungen), eine Kombination von Hardware und Software (zum Beispiel Programmcode oder Firmware, der bzw. die in einem nichtflüchtigen computerlesbaren Medium gespeichert ist, das durch einen Prozessor oder eine Steuerschaltungsanordnung ausgeführt wird) oder ein beliebiges anderes geeignetes Mittel durchgeführt werden. Die folgende Beschreibung soll lediglich eine allgemeine Vorstellung von verschiedenen Gesichtspunkten der vorliegenden Offenbarung vermitteln und schränkt den Schutzumfang der Offenbarung in keiner Weise ein. Des Weiteren ist es für Fachleute offensichtlich, dass, obwohl sich die vorliegende Offenbarung auf NAND-Speicher bezieht, die hierin erörterten Konzepte auf andere Arten von Festkörperspeicher, wie NOR, PCM (Phasenwechselspeicher), ReRAM usw., anwendbar sind.
  • 1 ist ein Blockdiagramm eines Beispiels eines Systems 100, das eine Datenspeicherungsvorrichtung 102 einschließt. In einigen Implementierungen ist die Datenspeicherungsvorrichtung 102 eine Flash-Speichervorrichtung. Zum Beispiel ist die Datenspeicherungsvorrichtung 102 eine Secure-Digital-SDO-Karte, eine microSDO-Karte oder eine andere ähnliche Art von Datenspeicherungsvorrichtung. Die in 1 veranschaulichte Datenspeicherungsvorrichtung 102 schließt einen NAND-Speicher 104 und eine Steuerung 106 ein. Die Datenspeicherungsvorrichtung 102 ist mit einer Host-Vorrichtung 108 gekoppelt. Die Host-Vorrichtung 108 ist eingerichtet, um der Datenspeicherungsvorrichtung 102 Daten 110 (zum Beispiel Benutzerdaten) bereitzustellen, die zum Beispiel in dem NAND-Speicher 104 gespeichert werden sollen. Die Host-Vorrichtung 108 ist auch eingerichtet, um Daten 110 anzufordern, die aus dem NAND-Speicher 104 gelesen werden sollen. Die Host-Vorrichtung 108 ist zum Beispiel ein Smartphone, ein Musik-Player, ein Video-Player, eine Spielekonsole, ein E-Book-Reader, ein Personal Digital Assistant, ein Tablet, ein Notebook oder eine andere ähnliche Vorrichtung.
  • Der in 1 veranschaulichte NAND-Speicher 104 schließt eine Vielzahl von Chips 112A-112N (zum Beispiel NAND-Chips) und eine Lese-/Schreibschaltung 114 ein. Die Lese-/Schreibschaltung 114 ist eingerichtet, um den Betrieb der Vielzahl von Chips 112A-112N des NAND-Speichers 104 zu unterstützen. Obwohl in 1 als eine einzige Komponente dargestellt, kann die Lese-/Schreibschaltung 114 in separate Komponenten des NAND-Speichers 104 unterteilt sein, wie eine Leseschaltung und eine Schreibschaltung. Die Lese-/Schreibschaltung 114 kann sich außerhalb der Vielzahl von Chips 112A-112N des NAND-Speichers 104 befinden. Alternativ kann einer oder mehrere der Vielzahl von Chips 112A-112N des NAND-Speichers 104 eine entsprechende Lese-/Schreibschaltung einschließen, die betreibbar ist, um Daten von Speicherelementen innerhalb des einzelnen Chips unabhängig von anderen Lese- und/oder Schreibvorgängen an einem der anderen Chips zu lesen und/oder zu schreiben. Zum Beispiel kann jeder der Vielzahl von Chips 112A-112N seine eigene interne Lese-/Schreibschaltung einschließen. Die Steuerung 106 ist über einen Eingabe-/Ausgabe-(„E/A“)-Bus 116 mit dem NAND-Speicher 104 kommunikativ gekoppelt.
  • Die in 1 veranschaulichte Steuerung 106 schließt eine Host-Schnittstelle 118, eine Speicherschnittstelle 120, einen Prozessor 122 (zum Beispiel einen Mikroprozessor, einen Mikrocontroller, einen Field-Programmable-Gate-Array-[„FPGA“]-Halbleiter, eine anwendungsspezifische integrierte Schaltung [„ASIC“] oder eine andere geeignete programmierbare Vorrichtung) und einen Speicher 124 (zum Beispiel einen Direktzugriffsspeicher [„RAM“], einen Nur-Lese-Speicher [„ROM“], ein nichtflüchtiges computerlesbares Medium oder eine Kombination davon) ein. Die Steuerung 106 ist in 1 in vereinfachter Form veranschaulicht. Ein Fachmann würde erkennen, dass eine Steuerung für einen NAND-Speicher zusätzliche andere Module oder Komponenten als diejenigen einschließen kann, die in 1 speziell veranschaulicht sind. Außerdem befindet sich, obwohl die Datenspeicherungsvorrichtung 102 in 1 als die Steuerung 106 einschließend veranschaulicht ist, in anderen Implementierungen die Steuerung 106 stattdessen innerhalb der Host-Vorrichtung 108 oder ist anderweitig von der Datenspeicherungsvorrichtung 102 getrennt. Infolgedessen können Vorgänge, die normalerweise von der Steuerung 106 durchgeführt würden (zum Beispiel Abnutzungsausgleich, Verwaltung defekter Blöcke, Datenverwürfelung, Speicherbereinigung, Adresszuordnung usw.) von der Host-Vorrichtung 108 oder einer anderen Vorrichtung, die mit der Datenspeicherungsvorrichtung 102 verbunden ist, durchgeführt werden.
  • Die Steuerung 106 ist eingerichtet, um über die Host-Schnittstelle 118 Daten an die Host-Vorrichtung 108 zu senden und Daten und Anweisungen von dieser zu empfangen. Die Host-Schnittstelle 118 ermöglicht der Host-Vorrichtung 108, zum Beispiel unter Verwendung eines beliebigen geeigneten Kommunikationsprotokolls, aus dem NAND-Speicher 104 zu lesen und in den NAND-Speicher 104 zu schreiben. Geeignete Kommunikationsprotokolle schließen zum Beispiel die Host-Steuerungsschnittstellen-Spezifikation Universal Flash Storage („UFS“), die Host-Steuerungsspezifikation Secure Digital („SD“) usw. ein.
  • Die Steuerung 106 ist auch eingerichtet, um über die Speicherschnittstelle 120 Daten und Befehle an den NAND-Speicher 104 zu senden und Daten von diesem zu empfangen. Als ein veranschaulichendes Beispiel ist die Steuerung 106 eingerichtet, um Daten und einen Programmierbefehl zu senden, um den NAND-Speicher 104 anzuweisen, Daten an einem bestimmten Speicherort in dem NAND-Speicher 104 zu speichern. Die Steuerung 106 ist auch eingerichtet, um einen Leseübertragungsbefehl an den NAND-Speicher 104 zum Lesen von Daten aus einem bestimmten Speicherort in dem NAND-Speicher 104 zu senden.
  • Der Prozessor 122 ist betreibbar mit den verschiedenen Modulen innerhalb der Steuerung 106 und der Datenspeicherungsvorrichtung 102 verbunden. Zum Beispiel wird Firmware als computerausführbare Anweisungen in ein ROM des Speichers 124 geladen. Diese computerausführbaren Anweisungen können aus dem Speicher 124 abgerufen und von dem Prozessor 122 ausgeführt werden, um den Betrieb der Steuerung 106 zu steuern und die hierin beschriebenen Prozesse durchzuführen. In einigen Implementierungen entsprechen eines oder mehrere Module der Steuerung 106 separaten Hardwarekomponenten innerhalb der Steuerung 106. In anderen Implementierungen entsprechen eines oder mehrere Module der Steuerung 106 Software, die innerhalb des Speichers 124 gespeichert ist und von dem Prozessor 122 ausgeführt wird. Der Speicher 124 ist eingerichtet, um von der Steuerung 106 während des Betriebs verwendete Daten zu speichern.
  • Jeder der Vielzahl von Chips 112A-112N des NAND-Speichers 104 schließt eine Vielzahl von Ebenen ein. Zum Beispiel kann der Chip 112 A zwei Ebenen einschließen. 2 ist ein Blockdiagramm eines Beispiels für eine Ebene 200. Die in 2 veranschaulichte Ebene 200 schließt eine Vielzahl von Daten-Latches 202 und ein Array 204 ein. Die Daten-Latches 202 sind eingerichtet, um eine ganze Seite an Daten zu halten. Somit können die in der Ebene 200 gespeicherten Daten seitenweise gelesen oder geschrieben werden. Das Array 204 schließt eine Vielzahl von Blöcken 206A-206N ein. Jeder der Blöcke 206 A-206 N schließt eine Vielzahl von Wortleitungen ein. Zum Beispiel schließt der Block 206A die Wortleitungen 95 bis 0 ein. Jede der Wortleitungen schließt eine Vielzahl von Speicherelementen ein. Zum Beispiel schließt in 2 die Wortleitung 95 in Block 206A ein repräsentatives Speicherelement 208 ein. In einigen Implementierungen ist das Speicherelement 208 eine Multi-Level-Zellen-Flash-Speicherzelle („MLC“-Flash-Speicherzelle), wie eine Vier-Bit-pro-Zelle-Flash-Speicherzelle („4BPC“-Flash-Speicherzelle). In anderen Implementierungen ist das Speicherelement 208 eine Single-Level-Zelle-Flash-Speicherzelle („SLC“-Flash-Speicherzelle), eine Zwei-Bit-pro-Zelle-Flash-Speicherzelle („2BPC”-Flash-Speicherzelle), eine Drei-Bit-pro-Zelle-Flash-Speicherzelle („3BPC”-Flash-Speicherzelle) oder eine Flash-Speicherzelle mit einer größeren Anzahl von Bits pro Zelle (zum Beispiel zwischen fünf und zehn Bits pro Zelle).
  • 3 ist ein Blockdiagramm eines Beispiels für eine ältere Datenausgabe-Protokollsequenz. Die in 3 veranschaulichte ältere Datenausgabe-Protokollsequenz schließt eine Reihe von Befehlen und Adressen ein, die von der Steuerung 106 an den NAND-Speicher 104 für einen Datenausgabevorgang gesendet werden. Der Befehl 05 h gibt an, dass eine Fünf-Byte-Adresse folgt. Die Fünf-Byte-Adresse schließt eine Zwei-Byte-Anfangsspaltenadresse, eine Wortleitungsadresse, eine Seitenadresse, eine Ebenenadresse, eine Blockadresse und eine Chipadresse ein. Der E0h-Befehl gibt an, dass die Fünf-Byte-Adresse beendet ist und die Steuerung 106 darauf wartet, Daten zu streamen. Die Steuerung 106 wartet nach dem Senden des E0h-Befehls eine vorbestimmte Zeit, bis die Schreib-/Leseschaltung 114 des NAND-Speichers 104 Daten holt. Um Daten zu holen, übersetzt die Lese-/Schreibschaltung 114 des NAND-Speichers 104 die Zwei-Byte-Anfangsspaltenadresse (die ein logischer Wert ist) in eine anfängliche physische Spaltenadresse, setzt einen Spaltenzeiger auf die anfängliche physische Spaltenadresse und holt die Daten unter Verwendung der Daten-Latches 202 ab. Nachdem die Daten in den Daten-Latches 202 gespeichert sind, sendet die Steuerung 106 einen Lesefreigabebefehl („RE“). In Reaktion auf das Empfangen des RE-Befehls sendet die Schreib-/Leseschaltung 114 des NAND-Speichers 104 die Daten in den Daten-Latches 202 über den E/A-Bus 116 an die Steuerung 106, wobei der Spaltenzeiger um eins inkrementiert wird und wieder neue Daten unter Verwendung der Daten-Latches 202 geholt werden. Die Steuerung 106 sendet weitere RE-Befehle, um zusätzliche Daten zu empfangen, bis der Datenausgabevorgang abgeschlossen ist. Unter der Annahme einer Zykluszeit von 10 Nanosekunden beträgt die Gesamtzeit zum Senden des Befehls 05H, der Fünf-Byte-Adresse und des E0h-Befehls 70 Nanosekunden. Weiterhin beträgt die Wartezeit zwischen dem Senden des E0h-Befehls durch die Steuerung 106 und dem Empfangen von Daten (d. h. tWHR) etwa 300 Nanosekunden. Somit beträgt die Gesamtausführungszeit 370 Nanosekunden.
  • Ein wesentlicher Teil der tWHR-Zeit wird durch die Lese-/Schreibschaltung 114 des NAND-Speichers 104 verursacht, welche die empfangene anfängliche logische Spaltenadresse in eine anfängliche physische Spaltenadresse übersetzt. Bei der Ausführung von sequenziellen Lesevorgängen ist die erste Spaltenadresse immer die logische Spalte 0. Somit ist in einigen Implementierungen für jede Ebene in jedem der Vielzahl von Chips 112A-112N des NAND-Speichers 104 die Lese-/Schreibschaltung 114 des NAND-Speichers 104 eingerichtet, um eine physische Spaltenadresse vorauszuberechnen, die der logischen Spalte 0 entspricht, und die ermittelte physische Spaltenadresse als eine anfängliche physische Spaltenadresse zu speichern. Während eines Datenausgabevorgangs, in Reaktion auf das Empfangen einer Chipadresse und einer Ebenenadresse von der Steuerung 106, ruft die Lese-/Schreibschaltung 114 des NAND-Speichers 104 die vorausberechnete anfängliche physische Spaltenadresse ab, die der empfangenen Chipadresse und Ebenenadresse zugeordnet ist. Das Abrufen einer vorausberechneten anfänglichen physischen Spaltenadresse benötigt weniger Zeit als die Übersetzung einer empfangenen anfänglichen logischen Spaltenadresse in eine anfängliche physische Spaltenadresse. Durch die Vorausberechnung der anfänglichen physischen Spaltenadressen wird somit die tWHR-Zeit reduziert.
  • Um die Gesamtausführungszeit weiterhin zu reduzieren, wird die oben beschriebene Fünf-Byte-Adresse, die von der Steuerung 106 an den NAND-Speicher 104 gesendet wird, durch eine Ein-Byte-Adresse ersetzt. Zum Beispiel muss der NAND-Speicher 104 während eines Datenausgabevorgangs (d. h. eines Lesevorgangs) eine Wortleitungsadresse, eine Seitenadresse und eine Blockadresse empfangen, da die Steuerung 106 die Daten mit dem NAND-Speicher 104 über die Daten-Latches 202 und nicht über das Array 204 austauscht. Außerdem muss der NAND-Speicher 104 keine anfängliche Spaltenadresse empfangen, da, wie oben beschrieben, eine anfängliche physische Spaltenadresse für jede Ebene vorausberechnet wird. Der NAND-Speicher 104 muss also nur eine Chipadresse und eine Ebenenadresse empfangen. 4 ist ein Blockdiagramm eines Beispiels eines Ein-Byte-Adresszyklus für eine Datenausgabe-Protokollsequenz. Der in 4 veranschaulichte Ein-Byte-Adresszyklus schließt eine Chipadresse und eine Ebenenadresse ein. Die ungenutzten Bits im Ein-Byte-Adresszyklus können zum Beispiel für die Erweiterung der nächsten Generation verwendet werden.
  • Wenn Daten in dem NAND-Speicher 104 als Codewörter mit fester Länge gespeichert werden, kann nicht jede Spaltenadresse eine anfängliche Spaltenadresse sein. Zum Beispiel kann eine 16K-Seite, die 4K Codewörter speichert, nur vier anfängliche Spaltenadressen haben. Somit ist in einigen Implementierungen für jede Ebene in jedem der Vielzahl von Chips 112A-112N des NAND-Speichers 104 die Lese-/Schreibschaltung 114 des NAND-Speichers 104 eingerichtet, um physische Spaltenadressen für jede potenzielle anfängliche Spaltenadresse vorauszuberechnen und die bestimmten physischen Spaltenadressen als anfängliche physische Spaltenadressen zu speichern. Zum Beispiel bestimmt und speichert die Schreib-/Leseschaltung 114 im NAND-Speicher 104 für eine 16K-Seite, die 4K Codewörter speichert, die vier potenziellen anfänglichen Spaltenadressen. Jede vorausberechnete potenzielle anfängliche Spaltenadresse ist einem anfänglichen Spaltenbezeichner zugeordnet. Zum Beispiel kann für eine 16K-Seite, die 4K-Codewörter speichert, „00“ der anfängliche Spaltenbezeichner sein, der dem ersten Codewort zugeordnet ist, „01“ kann der anfängliche Spaltenbezeichner sein, der dem zweiten Codewort zugeordnet ist, „10“ kann ein anfänglicher Spaltenbezeichner sein, der dem dritten Codewort zugeordnet ist, und „11“ kann der anfängliche Spaltenbezeichner sein, der dem vierten Codewort zugeordnet ist. Während eines Datenausgabevorgangs, in Reaktion auf das Empfangen einer Chipadresse, einer Ebenenadresse und eines anfänglichen Spaltenbezeichners von der Steuerung 106, ruft die Lese-/Schreibschaltung 114 des NAND-Speichers 104 die vorausberechnete anfängliche physische Spaltenadresse ab, die der empfangenen Chipadresse, Ebenenadresse und dem anfänglichen Spaltenbezeichner zugeordnet ist. 5 ist ein Blockdiagramm eines Beispiels eines Ein-Byte-Adresszyklus für eine Datenausgabe-Protokollsequenz. Der in 5 veranschaulichte Ein-Byte-Adresszyklus schließt eine Chipadresse, eine Ebenenadresse und einen Zwei-Bit-Anfangsspaltenbezeichner ein.
  • Das Ersetzen der oben beschriebenen Fünf-Byte-Adresse durch eine der oben beschriebenen Ein-Byte-Adressen reduziert die Anzahl der Adresszyklen in einer Datenausgabe-Protokollsequenz von fünf auf eins. Zum Beispiel ist 6 ein Blockdiagramm einer Datenausgabe-Protokollsequenz einschließlich zwei Befehlszyklen und einem Adresszyklus. Bei einer angenommenen Zykluszeit von 10 Nanosekunden beträgt die Gesamtzeit zum Senden der beiden Befehle und der in 6 veranschaulichten Ein-Byte-Adresse 30 Nanosekunden. In einigen Implementierungen ist der NAND-Speicher 104 eingerichtet, um Daten in direkter Reaktion auf das Empfangen der Ein-Byte-Adresse von der Steuerung 106 durch den NAND-Speicher 104 abzurufen. Die Steuerung 106 benötigt zum Beispiel nicht den E0h-Befehl nach dem Senden der Ein-Byte-Adresse, wie in 7 veranschaulicht. Bei einer angenommenen Zykluszeit von 10 Nanosekunden beträgt die Gesamtzeit zum Senden des einen Befehls und der in 7 veranschaulichten Ein-Byte-Adresse 20 Nanosekunden. Die gesamten Befehls-/Adress-Zykluszeiten von 30 Nanosekunden und 20 Nanosekunden der in den 6 und 7 veranschaulichten Datenausgabe-Protokollsequenzen sind deutlich kürzer als die in 3 veranschaulichten gesamten Befehls-/Adress-Zykluszeiten der älteren Datenausgabe-Protokollsequenz von 70 Nanosekunden.
  • 8 ist ein Blockdiagramm eines Beispiels eines Verfahrens 800 zur Durchführung eines Datenausgabevorgangs gemäß einigen Implementierungen der vorliegenden Offenbarung. Bei Block 802 bestimmt der NAND-Speicher 104 anfängliche physische Spaltenadressen für jede der Ebenen in jedem der Chips 112A-112N des NAND-Speichers 104. In einigen Implementierungen bestimmt der NAND-Speicher 104 eine anfängliche physische Spaltenadresse für jede Ebene. Zum Beispiel kann der NAND-Speicher 104 die anfänglichen physischen Spaltenadressen unter der Annahme bestimmen, dass die anfängliche Spaltenadresse immer die logische Spalte 0 ist. In anderen Implementierungen bestimmt der NAND-Speicher 104 mehrere anfängliche physische Spaltenadressen für jede Ebene. Zum Beispiel bestimmt der NAND-Speicher 104 unter der Annahme, dass die Daten als 4K-Codewörter in 16K-Seiten gespeichert sind, vier anfängliche physische Spaltenadressen für jede Ebene. In einigen Implementierungen bestimmt der NAND-Speicher 104 die anfänglichen physischen Spaltenadressen basierend auf den schlechten Spalteninformationen der einzelnen Chips. Zum Beispiel kann der NAND-Speicher 104 eine oder mehrere schlechte Spaltenadressen für jeden der Chips 112A-112N des NAND-Speichers 104 bestimmen und dann anfängliche physische Spaltenadressen basierend auf der einen oder den mehreren schlechten Spaltenadressen bestimmen. Bei Block 804 werden die anfänglichen physischen Spaltenadressen in dem NAND-Speicher 104 gespeichert. In einigen Implementierungen werden die Blöcke 802 und 804 während des Power-On-Resets des NAND-Speichers 104 ausgeführt. Zum Beispiel kann die anfängliche physische Spaltenadresse in einem Speicher gespeichert werden, der in der Schreib-/Leseschaltung 114 eingeschlossen ist.
  • Nachdem die anfänglichen physischen Spaltenadressen in dem NAND-Speicher 104 gespeichert sind, wird bei Block 806 ein Leseübertragungsbefehl von der Steuerung 106 an den NAND-Speicher 104 gesendet. Wie hierin verwendet, bezieht sich der Begriff „Leseübertragungsbefehl“ auf einen oder mehrere Befehle für das Leseprotokoll und das Übertragungsprotokoll. Der Leseübertragungsbefehl gibt an, dass eine Ein-Byte-Adresse folgt. Bei Block 808 wird eine Ein-Byte-Adresse von der Steuerung 106 an den NAND-Speicher 104 gesendet. Die Ein-Byte-Adresse schließt eine Chipadresse und eine Ebenenadresse ein. In einigen Implementierungen schließt die Ein-Byte-Adresse auch einen anfänglichen Spaltenbezeichner ein. Nach dem Empfangen der Ein-Byte-Adresse ruft der NAND-Speicher 104 bei Block 810 eine erste anfängliche physische Spaltenadresse aus den anfänglichen physischen Spaltenadressen ab, die in dem NAND-Speicher 104 gespeichert sind. Die erste anfängliche Spaltenadresse ist der Chipadresse zugeordnet und die Ebenenadresse ist in der Ein-Byte-Adresse eingeschlossen. Wenn die Ein-Byte-Adresse auch einen anfänglichen Spaltenbezeichner einschließt, ist die abgerufene anfängliche Spaltenadresse weiterhin dem anfänglichen Spaltenbezeichner zugeordnet. Bei Block 812 ruft der NAND-Speicher 104 einen Datensatz ab, der unter der ersten anfänglichen physischen Spaltenadresse in dem NAND-Speicher 104 gespeichert ist. Zum Beispiel kann die Schreib-/Leseschaltung 114 einen Spaltenzeiger auf die erste anfängliche physische Spaltenadresse setzen, eine Seite mit Daten abrufen und die Seite mit Daten in den Daten-Latches 202 halten. Bei Block 814 gibt der NAND-Speicher 104 den Datensatz an die Steuerung 106 aus. Zum Beispiel kann die Schreib-/Leseschaltung 114 den Datensatz auf den E/A-Bus 116 legen.
  • Zusätzlich zur Reduzierung der Ausführungszeit von Datenausgabevorgängen können die oben beschriebenen Prozesse auch die Ausführungszeit von Dateneingabevorgängen (zum Beispiel Dateneingabe- und Programmiervorgänge) reduzieren. 9 ist ein Blockdiagramm eines Beispiels eines Verfahrens 900 zur Durchführung eines Dateneingabevorgangs gemäß einigen Implementierungen der vorliegenden Offenbarung. Bei Block 902 bestimmt der NAND-Speicher 104 anfängliche physische Spaltenadressen für jede der Ebenen in jedem der Chips 112A-112N des NAND-Speichers 104. Bei Block 904 werden die anfänglichen physischen Spaltenadressen in dem NAND-Speicher 104 gespeichert. Nachdem die anfänglichen physischen Spaltenadressen in dem NAND-Speicher 104 gespeichert sind, wird bei Block 906 ein Dateneingabebefehl von der Steuerung 106 an den NAND-Speicher 104 gesendet. Der Dateneingabebefehl gibt an, dass eine Ein-Byte-Adresse folgt. Bei Block 908 wird die Ein-Byte-Adresse von der Steuerung 106 an den NAND-Speicher 104 gesendet. Die Ein-Byte-Adresse (ein Beispiel für eine „zweite Ein-Byte-Adresse“) schließt eine Chipadresse, eine Ebenenadresse und eine Seitenadresse ein. Nach dem Empfangen der Ein-Byte-Adresse ruft der NAND-Speicher 104 bei Block 910 eine zweite anfängliche physische Spaltenadresse aus den anfänglichen physischen Spaltenadressen ab, die in dem NAND-Speicher 104 gespeichert sind. Die zweite anfängliche Spaltenadresse ist der Chipadresse zugeordnet und die Ebenenadresse ist in der Ein-Byte-Adresse eingeschlossen. Bei Block 912 sendet die Steuerung 106 einen Datensatz an den NAND-Speicher 104. Bei Block 914 sendet die Steuerung 106 einen Programmierbefehl an den NAND-Speicher 104. Die Steuerung 106 kann zum Beispiel einen 10h-Befehl oder einen 15h-Befehl über den E/A-Bus 116 an den NAND-Speicher 104 senden. Bei Block 916 programmiert der NAND-Speicher 104 den Datensatz auf die zweite anfängliche physische Spaltenadresse.
  • Die oben beschriebenen Prozesse können auch die Ausführungszeit von Lesevorgängen im Cache reduzieren. 10 ist ein Flussdiagramm eines Beispiels eines Verfahrens 1000 zur Durchführung eines Cache-Lesevorgangs gemäß einigen Implementierungen der Erfindung. Bei Block 1002 bestimmt der NAND-Speicher 104 anfängliche physische Spaltenadressen für jede der Ebenen in jedem der Chips 112A-112N des NAND-Speichers 104. Bei Block 1004 werden die anfänglichen physischen Spaltenadressen in dem NAND-Speicher 104 gespeichert. Nachdem die anfänglichen physischen Spaltenadressen in dem NAND-Speicher 104 gespeichert sind, wird bei Block 1006 ein erster Cache-Lesebefehl von der Steuerung 106 an den NAND-Speicher 104 gesendet. Der erste Cache-Lesebefehl gibt an, dass eine Drei-Byte-Adresse folgt. Bei Block 1008 wird eine Drei-Byte-Adresse von der Steuerung 106 an den NAND-Speicher 104 gesendet. Die Drei-Byte-Adresse schließt unter anderem eine Chipadresse, eine Ebenenadresse und eine Seitenadresse ein. Bei Block 1010 sendet die Steuerung 106 einen zweiten Cache-Lesebefehl an den NAND-Speicher 104. Die Steuerung 106 kann zum Beispiel einen 30h-Befehl über den E/A-Bus 116 an den NAND-Speicher 104 senden. Nach dem Empfangen des zweiten Cache-Lesebefehls ruft der NAND-Speicher 104 bei Block 1012 eine dritte anfängliche physische Spaltenadresse aus den anfänglichen physischen Spaltenadressen ab, die in dem NAND-Speicher 104 gespeichert sind. Die dritte anfängliche physische Spaltenadresse ist der Chipadresse zugeordnet und die Ebenenadresse ist in der Drei-Byte-Adresse eingeschlossen. Bei Block 1014 ruft der NAND-Speicher 104 eine Seite mit Daten ab, die an der dritten anfänglichen physischen Spaltenadresse in dem NAND-Speicher 104 gespeichert sind. Zum Beispiel kann die Schreib-/Leseschaltung 114 einen Spaltenzeiger auf die dritte anfängliche physische Spaltenadresse setzen, eine Seite mit Daten abrufen und die Seite mit Daten in den Daten-Latches 202 halten. Bei Block 1016 gibt der NAND-Speicher 104 die Datenseite an die Steuerung 106 aus. Zum Beispiel kann die Schreib-/Leseschaltung 114 die Datenseite auf den E/A-Bus 116 legen.
  • In einigen Implementierungen sendet die Steuerung 106, nachdem der NAND-Speicher 104 die Datenseite bei Block 1014 abgerufen hat, einen dritten Cache-Lesebefehl. Der dritte Cache-Lesebefehl inkrementiert die Seitenadresse, während die Blockadresse und die Ebenenadresse gleich bleiben. Nach dem Empfangen des dritten Cache-Lesebefehls inkrementiert der NAND-Speicher 104 die Seitenadresse um eins, um eine neue Seitenadresse zu bestimmen, ruft eine neue Seite mit Daten ab und gibt die neue Seite mit Daten an die Steuerung 106 aus.
  • In Verbindung mit den offenbarten Implementierungen schließt eine Vorrichtung Mittel zum Bestimmen anfänglicher physischer Spaltenadressen für jede einer Vielzahl von Ebenen in jedem einer Vielzahl von Chips in einem NAND-Speicher ein. Die Mittel zum Bestimmen der anfänglichen physischen Spaltenadressen können zum Beispiel einem oder mehreren der Chips 112A-112N, der Lese-/Schreibschaltung 114 oder einer Kombination davon entsprechen. Die Vorrichtung schließt auch Mittel zum Speichern der anfänglichen physischen Spaltenadressen in dem NAND-Speicher ein. Die Mittel zum Speichern der anfänglichen physischen Spaltenadressen in dem NAND-Speicher können zum Beispiel einem oder mehreren der Chips 112A-112N, der Lese-/Schreibschaltung 114 oder einer Kombination davon entsprechen. Die Vorrichtung schließt auch Mittel zum Senden eines Leseübertragungsbefehls an den NAND-Speicher ein, nachdem der NAND-Speicher die anfänglichen physischen Spaltenadressen gespeichert hat. Die Mittel zum Senden des Leseübertragungsbefehls an den NAND-Speicher können zum Beispiel dem E/A-Bus 116, der Speicherschnittstelle 120, dem Prozessor 122 oder einer Kombination davon entsprechen. Der Leseübertragungsbefehl gibt an, dass eine Ein-Byte-Adresse folgt. Die Vorrichtung schließt auch Mittel zum Senden der Ein-Byte-Adresse an den NAND-Speicher ein. Die Mittel zum Senden der Ein-Byte-Adresse an den NAND-Speicher können zum Beispiel dem E/A-Bus 116, der Speicherschnittstelle 120, dem Prozessor 122 oder einer Kombination davon entsprechen. Die Ein-Byte-Adresse schließt eine Chipadresse und eine Ebenenadresse ein. Die Vorrichtung schließt auch Mittel zum Abrufen einer ersten anfänglichen physischen Spaltenadresse aus den anfänglichen physischen Spaltenadressen ein, die in dem NAND-Speicher gespeichert sind, nachdem der NAND-Speicher die Ein-Byte-Adresse empfangen hat. Das Mittel zum Abrufen der ersten anfänglichen physischen Spaltenadresse kann zum Beispiel einem oder mehreren der Chips 112A-112N, der Lese-/Schreibschaltung 114 oder einer Kombination davon entsprechen. Die erste anfängliche physische Spaltenadresse ist der Chipadresse und der Ebenenadresse zugeordnet. Die Vorrichtung schließt auch Mittel zum Abrufen eines ersten Datensatzes ein, der an der ersten anfänglichen physischen Spaltenadresse in dem NAND-Speicher gespeichert ist. Das Mittel zum Abrufen des ersten Datensatzes kann zum Beispiel einem oder mehreren der Chips 112A-112N, der Lese-/Schreibschaltung 114 oder einer Kombination davon entsprechen. Die Vorrichtung schließt auch Mittel zum Ausgeben des ersten Datensatzes aus dem NAND-Speicher ein. Die Mittel zum Ausgeben der ersten Daten aus dem NAND-Speicher können zum Beispiel einem oder mehreren der Chips 112A-112N, der Lese-/Schreibschaltung 114, dem E/A-Bus 116 oder einer Kombination davon entsprechen.
  • In einigen Implementierungen ist das Mittel zum Bestimmen der anfänglichen physischen Spaltenadressen weiterhin eingerichtet, um jede der anfänglichen physischen Spaltenadressen basierend auf einer logischen Spalte 0 zu bestimmen.
  • In einigen Implementierungen schließt die Vorrichtung weiterhin Mittel zum Abrufen der ersten anfänglichen physischen Spaltenadresse in direkter Reaktion auf das Empfangen der Ein-Byte-Adresse durch den NAND-Speicher ein.
  • In einigen Implementierungen ist das Mittel zum Bestimmen der anfänglichen physischen Spaltenadressen weiterhin eingerichtet, um eine Vielzahl der anfänglichen physischen Spaltenadressen für jede der Vielzahl von Ebenen in jedem der Vielzahl von Chips zu bestimmen. In einigen Implementierungen schließt die Ein-Byte-Adresse weiterhin einen anfänglichen Spaltenbezeichner ein. In einigen Implementierungen ist die erste anfängliche physische Spaltenadresse außerdem dem anfänglichen Spaltenbezeichner zugeordnet.
  • In Bezug auf die hierin beschriebenen Prozesse, Systeme, Verfahren, Heuristiken usw. versteht es sich, dass, obwohl die Schritte solcher Prozesse usw. als gemäß einer bestimmten geordneten Reihenfolge auftretend beschrieben wurden, solche Prozesse mit den beschriebenen Schritten, die in einer anderen als der hierin beschriebenen Reihenfolge durchgeführt werden, praktiziert werden könnten. Es versteht sich weiterhin, dass bestimmte Schritte gleichzeitig durchgeführt werden könnten, dass andere Schritte hinzugefügt werden könnten oder dass bestimmte hierin beschriebene Schritte weggelassen werden könnten. Mit anderen Worten werden die Beschreibungen der Prozesse hierin zum Zweck der Veranschaulichung bestimmter Implementierungen bereitgestellt und sollten in keiner Weise so ausgelegt werden, dass sie die Ansprüche einschränken.
  • Dementsprechend versteht es sich, dass die vorstehende Beschreibung veranschaulichend und nicht einschränkend sein soll. Viele andere Ausführungsformen und Anwendungen als die bereitgestellten Beispiele wären beim Lesen der vorstehenden Beschreibung offensichtlich. Der Schutzumfang sollte bestimmt werden, nicht unter Bezugnahme auf die vorstehende Beschreibung, sondern sollte stattdessen unter Bezugnahme auf die beiliegenden Ansprüche bestimmt werden, zusammen mit dem vollen Schutzumfang von Äquivalenten, für die solche Ansprüche berechtigt sind. Es wird erwartet und beabsichtigt, dass zukünftige Entwicklungen in den hierin erörterten Technologien auftreten werden und dass die offenbarten Systeme und Verfahren in solche zukünftigen Ausführungsformen aufgenommen werden. Zusammenfassend versteht es sich, dass die Anmeldung modifizierbar und variierbar ist.
  • Allen Begriffen, die in den Ansprüchen verwendet werden, sollen ihre breitesten angemessenen Auslegungen und ihre gewöhnlichen Bedeutungen gegeben werden, wie sie von jenen verstanden werden, die in den hierin beschriebenen Technologien sachkundig sind, es sei denn, eine explizite Angabe des Gegenteils wird hierin gemacht. Insbesondere sollte die Verwendung der Artikel im Singular, wie „ein/eine/eines“, „der/die/das“, „dieser/diese/dieses“ usw. derart gelesen werden, dass eines oder mehrere der angegebenen Elemente angegeben werden, es sei denn, ein Anspruch gibt eine explizite gegenteilige Einschränkung an.
  • Die Zusammenfassung wird bereitgestellt, um dem Leser eine schnelle Bestimmung der Beschaffenheit der technischen Offenbarung zu ermöglichen. Sie wird mit dem Verständnis eingereicht, dass sie nicht verwendet wird, um den Schutzumfang oder die Bedeutung der Ansprüche zu interpretieren oder einzuschränken. Außerdem ist in der vorstehenden detaillierten Beschreibung ersichtlich, dass verschiedene Merkmale in verschiedenen Ausführungsformen zum Zweck der Vereinfachung der Offenbarung zusammengefasst sind. Dieses Verfahren der Offenbarung ist nicht derart zu interpretieren, dass es eine Absicht widerspiegelt, dass die beanspruchten Ausführungsformen mehr Merkmale erfordern, als ausdrücklich in jedem Anspruch angegeben sind. Vielmehr liegt, wie die folgenden Ansprüche widerspiegeln, der Erfindungsgegenstand in weniger als allen Merkmalen einer einzelnen offenbarten Ausführungsform. Somit werden die folgenden Ansprüche hiermit in die detaillierte Beschreibung aufgenommen, wobei jeder Anspruch für sich selbst als ein separat beanspruchter Gegenstand steht.
  • 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/120787 [0001]

Claims (20)

  1. Datenspeicherungsvorrichtung, aufweisend: einen NAND-Speicher einschließlich: einer Vielzahl von Chips, die jeweils eine Vielzahl von Ebenen einschließen, und eine Lese-/Schreibschaltung, eingerichtet zum: Bestimmen anfänglicher physischer Spaltenadressen für jede der Vielzahl von Ebenen in jedem der Vielzahl von Chips, und Speichern der anfänglichen physischen Spaltenadressen in dem NAND-Speicher; und eine Steuerung, die mit dem NAND-Speicher gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Senden eines Leseübertragungsbefehls an den NAND-Speicher, nachdem der NAND-Speicher die anfänglichen physischen Spaltenadressen gespeichert hat, wobei der Leseübertragungsbefehl angibt, dass eine Ein-Byte-Adresse folgt, und Senden der Ein-Byte-Adresse an den NAND-Speicher, wobei die Ein-Byte-Adresse eine Chipadresse und eine Ebenenadresse einschließt, wobei die Lese-/Schreibschaltung weiterhin eingerichtet ist zum: Abrufen einer ersten anfänglichen physischen Spaltenadresse aus den anfänglichen physischen Spaltenadressen, die in dem NAND-Speicher gespeichert sind, nachdem der NAND-Speicher die Ein-Byte-Adresse von der Steuerung empfängt, wobei die erste anfängliche physische Spaltenadresse der Chipadresse und der Ebenenadresse zugeordnet ist, Abrufen eines ersten Datensatzes, der unter der ersten anfänglichen physischen Spaltenadresse gespeichert ist, und Ausgeben des ersten Datensatzes an die Steuerung.
  2. Datenspeicherungsvorrichtung gemäß Anspruch 1, wobei die Lese-/Schreibschaltung weiterhin eingerichtet ist, um jede der anfänglichen physischen Spaltenadressen basierend auf einer logischen Spalte 0 zu bestimmen.
  3. Datenspeicherungsvorrichtung gemäß Anspruch 1, wobei die Steuerung weiterhin eingerichtet ist zum: Senden eines Dateneingabebefehls an den NAND-Speicher, nachdem der NAND-Speicher die anfänglichen physischen Spaltenadressen gespeichert hat, wobei der Dateneingabebefehl angibt, dass eine zweite Ein-Byte-Adresse folgt, Senden der zweiten Ein-Byte-Adresse an den NAND-Speicher, wobei die zweite Ein-Byte-Adresse mindestens eine zweite Chipadresse und eine zweite Ebenenadresse einschließt, Senden eines zweiten Datensatzes an den NAND-SPEICHER, und Senden eines Programmierbefehls an den NAND-SPEICHER, wobei die Lese-/Schreibschaltung weiterhin eingerichtet ist zum: Abrufen einer zweiten anfänglichen physischen Spaltenadresse aus den anfänglichen physischen Spaltenadressen, die in dem NAND-Speicher gespeichert sind, nachdem der NAND-Speicher die zweite Ein-Byte-Adresse von der Steuerung empfängt, wobei die zweite anfängliche physische Spaltenadresse der zweiten Chipadresse und der zweiten Ebenenadresse zugeordnet ist, und Programmieren des zweiten Datensatzes an der zweiten anfänglichen physischen Spaltenadresse, nachdem der NAND-Speicher den Programmierbefehl von der Steuerung empfangen hat.
  4. Datenspeicherungsvorrichtung gemäß Anspruch 1, wobei die Steuerung weiterhin eingerichtet ist zum: Senden eines ersten Cache-Lesebefehls an den NAND-SPEICHER, wobei der erste Cache-Lesebefehl angibt, dass eine Drei-Byte-Adresse folgt, Senden der Drei-Byte-Adresse an den NAND-Speicher, wobei die Drei-Byte-Adresse mindestens eine dritte Chipadresse, eine dritte Ebenenadresse und eine erste Seitenadresse einschließt, und Senden eines zweiten Cache-Lesebefehls an den NAND-Speicher, wobei die Lese-/Schreibschaltung weiterhin eingerichtet ist zum: Abrufen einer dritten anfänglichen physischen Spaltenadresse aus den anfänglichen physischen Spaltenadressen, die in dem NAND-Speicher gespeichert sind, nachdem der NAND-Speicher den zweiten Cache-Lesebefehl von der Steuerung empfangen hat, wobei die dritte anfängliche physische Spaltenadresse der dritten Chipadresse und der dritten Ebenenadresse zugeordnet ist, Abrufen einer ersten Datenseite, die an der dritten anfänglichen physischen Spaltenadresse gespeichert sind, wobei die erste Datenseite der ersten Seitenadresse zugeordnet ist, und Ausgeben der ersten Datenseite an die Steuerung.
  5. Datenspeicherungsvorrichtung gemäß Anspruch 4, wobei die Steuerung weiterhin eingerichtet ist, einen dritten Cache-Lesebefehl an den NAND-Speicher zu senden, wobei die Lese-/Schreibschaltung weiterhin eingerichtet ist zum: Inkrementieren der ersten Seitenadresse um eins, um eine zweite Seitenadresse zu bestimmen, Abrufen einer zweiten Datenseite, die der zweiten Seitenadresse zugeordnet ist, und Ausgeben der zweiten Datenseite an die Steuerung.
  6. Datenspeicherungsvorrichtung gemäß Anspruch 1, wobei die Lese-/Schreibschaltung weiterhin eingerichtet ist, um die erste anfängliche physische Spaltenadresse in direkter Reaktion auf das Empfangen der Ein-Byte-Adresse von der Steuerung durch den NAND-Speicher abzurufen.
  7. Datenspeicherungsvorrichtung gemäß Anspruch 1, wobei die Lese-/Schreibschaltung weiterhin eingerichtet ist, um eine Vielzahl der anfänglichen physischen Spaltenadressen für jede der Vielzahl von Ebenen in jedem der Vielzahl von Chips zu bestimmen, wobei die Ein-Byte-Adresse weiterhin einen anfänglichen Spaltenbezeichner einschließt, und wobei die erste anfängliche physische Spaltenadresse weiterhin dem anfänglichen Spaltenbezeichner zugeordnet ist.
  8. Datenspeicherungsvorrichtung gemäß Anspruch 1, wobei die Lese-/Schreibschaltung weiterhin eingerichtet ist zum: Bestimmen einer oder mehrerer schlechter Spaltenadressen für jeden der Vielzahl von Chips, und Bestimmen der anfänglichen physischen Spaltenadressen basierend auf der einen oder den mehreren schlechten Spaltenadressen.
  9. Verfahren, aufweisend: Bestimmen, mit einem NAND-Speicher, anfänglicher physischer Spaltenadressen für jede einer Vielzahl von Ebenen in jedem einer Vielzahl von Chips in dem NAND-Speicher; Speichern der anfänglichen physischen Spaltenadressen in dem NAND-Speicher; Senden eines Leseübertragungsbefehls von einer Steuerung an den NAND-Speicher, nachdem der NAND-Speicher die anfänglichen physischen Spaltenadressen gespeichert hat, wobei der Leseübertragungsbefehl angibt, dass eine Ein-Byte-Adresse folgt; Senden der Ein-Byte-Adresse von der Steuerung an den NAND-Speicher, wobei die Ein-Byte-Adresse eine Chipadresse und eine Ebenenadresse einschließt; Abrufen einer ersten anfänglichen physischen Spaltenadresse aus den anfänglichen physischen Spaltenadressen, die in dem NAND-Speicher gespeichert sind, nachdem der NAND-Speicher die Ein-Byte-Adresse von der Steuerung empfängt, wobei die erste anfängliche physische Spaltenadresse der Chipadresse und der Ebenenadresse zugeordnet ist; Abrufen eines ersten Datensatzes, der an der ersten anfänglichen physischen Spaltenadresse in dem NAND-Speicher gespeichert ist; und Ausgeben des ersten Datensatzes aus dem NAND-Speicher an die Steuerung.
  10. Verfahren gemäß Anspruch 9, weiterhin aufweisend das Bestimmen jeder der anfänglichen physischen Spaltenadressen basierend auf einer logischen Spalte 0.
  11. Verfahren gemäß Anspruch 9, wobei das Verfahren weiterhin aufweist: Senden eines Dateneingabebefehls von der Steuerung an den NAND-Speicher, nachdem der NAND-Speicher die anfänglichen physischen Spaltenadressen gespeichert hat, wobei der Dateneingabebefehl angibt, dass eine zweite Ein-Byte-Adresse folgt; Senden der zweiten Ein-Byte-Adresse von der Steuerung an den NAND-Speicher, wobei die zweite Ein-Byte-Adresse mindestens eine zweite Chipadresse und eine zweite Ebenenadresse einschließt; Abrufen einer zweiten anfänglichen physischen Spaltenadresse aus den anfänglichen physischen Spaltenadressen, die in dem NAND-Speicher gespeichert sind, nachdem der NAND-Speicher die zweite Ein-Byte-Adresse von der Steuerung empfängt, wobei die zweite anfängliche physische Spaltenadresse der zweiten Chipadresse und der zweiten Ebenenadresse zugeordnet ist; Senden eines zweiten Datensatzes von der Steuerung an den NAND-Speicher; Senden eines Programmierbefehls von der Steuerung an den NAND-Speicher; und Programmieren des zweiten Datensatzes an der zweiten anfänglichen physischen Spaltenadresse in dem NAND-Speicher, nachdem der NAND-Speicher den Programmierbefehl von der Steuerung empfangen hat.
  12. Verfahren gemäß Anspruch 9, weiterhin aufweisend: Senden eines ersten Cache-Lesebefehls von der Steuerung an den NAND-SPEICHER, wobei der erste Cache-Lesebefehl angibt, dass eine Drei-Byte-Adresse folgt; Senden der Drei-Byte-Adresse von der Steuerung an den NAND-Speicher, wobei die Drei-Byte-Adresse mindestens eine dritte Chipadresse, eine dritte Ebenenadresse und eine erste Seitenadresse einschließt; Senden eines zweiten Cache-Lesebefehls von der Steuerung an den NAND-Speicher; Abrufen einer dritten anfänglichen physischen Spaltenadresse aus den anfänglichen physischen Spaltenadressen, die in dem NAND-Speicher gespeichert sind, nachdem der NAND-Speicher den zweiten Cache-Lesebefehl von der Steuerung empfangen hat, wobei die dritte anfängliche physische Spaltenadresse der dritten Chipadresse und der dritten Ebenenadresse zugeordnet ist; Abrufen einer ersten Datenseite, die an der dritten anfänglichen physischen Spaltenadresse gespeichert sind, wobei die erste Datenseite der ersten Seitenadresse zugeordnet ist; und Ausgeben der ersten Datenseite aus dem NAND-Speicher an die Steuerung.
  13. Verfahren gemäß Anspruch 12, weiterhin aufweisend: Senden eines dritten Cache-Lesebefehls von der Steuerung an den NAND-Speicher; Inkrementieren der ersten Seitenadresse um eins, um eine zweite Seitenadresse zu bestimmen; Abrufen einer zweiten Datenseite, die der zweiten Seitenadresse zugeordnet ist; und Ausgeben der zweiten Datenseite aus dem NAND-Speicher an die Steuerung.
  14. Verfahren gemäß Anspruch 9, weiterhin aufweisend das Abrufen der ersten anfänglichen physischen Spaltenadresse in direkter Reaktion darauf, dass der NAND-Speicher die Ein-Byte-Adresse von der Steuerung empfängt.
  15. Verfahren gemäß Anspruch 9, weiterhin aufweisend das Bestimmen, mit dem NAND-Speicher, einer Vielzahl der anfänglichen physischen Spaltenadressen für jede der Vielzahl von Ebenen in jedem der Vielzahl von Chips, wobei die Ein-Byte-Adresse weiterhin einen anfänglichen Spaltenbezeichner einschließt, und wobei die erste anfängliche physische Spaltenadresse weiterhin dem anfänglichen Spaltenbezeichner zugeordnet ist.
  16. Verfahren gemäß Anspruch 9, weiterhin aufweisend: Bestimmen, mit dem NAND-Speicher, einer oder mehrerer schlechter Spaltenadressen für jeden der Vielzahl von Chips; und Bestimmen, mit dem NAND-Speicher, der anfänglichen physischen Spaltenadressen basierend auf der einen oder den mehreren schlechten Spaltenadressen.
  17. Vorrichtung, aufweisend: Mittel zum Bestimmen anfänglicher physischer Spaltenadressen für jede einer Vielzahl von Ebenen in jedem einer Vielzahl von Chips in einem NAND-Speicher; Mittel zum Speichern der anfänglichen physischen Spaltenadressen in den NAND-Speicher; Mittel zum Senden eines Leseübertragungsbefehls an den NAND-Speicher, nachdem der NAND-Speicher die anfänglichen physischen Spaltenadressen gespeichert hat, wobei der Leseübertragungsbefehl angibt, dass eine Ein-Byte-Adresse folgt; Mittel zum Senden der Ein-Byte-Adresse an den NAND-Speicher, wobei die Ein-Byte-Adresse eine Chipadresse und eine Ebenenadresse einschließt; Mittel zum Abrufen einer ersten anfänglichen physischen Spaltenadresse aus den anfänglichen physischen Spaltenadressen, die in dem NAND-Speicher gespeichert sind, nachdem der NAND-Speicher die Ein-Byte-Adresse empfängt, wobei die erste anfängliche physische Spaltenadresse der Chipadresse und der Ebenenadresse zugeordnet ist; Mittel zum Abrufen eines ersten Datensatzes, der an der ersten anfänglichen physischen Spaltenadresse in dem NAND-Speicher gespeichert ist; und Mittel zum Ausgeben des ersten Datensatzes aus dem NAND-Speicher.
  18. Vorrichtung gemäß Anspruch 17, wobei die Mittel zum Bestimmen der anfänglichen physischen Spaltenadressen weiterhin eingerichtet sind, um jede der anfänglichen physischen Spaltenadressen basierend auf einer logischen Spalte 0 zu bestimmen.
  19. Vorrichtung gemäß Anspruch 17, wobei die Mittel zum Abrufen der ersten anfänglichen physischen Spaltenadresse weiterhin eingerichtet sind, um die erste anfängliche physische Spaltenadresse in direkter Reaktion auf das Empfangen der Ein-Byte-Adresse durch den NAND-Speicher abzurufen.
  20. Vorrichtung gemäß Anspruch 17, wobei die Mittel zum Bestimmen der anfänglichen physischen Spaltenadressen weiterhin eingerichtet sind, um eine Vielzahl der anfänglichen physischen Spaltenadressen für jede der Vielzahl von Ebenen in jedem der Vielzahl von Chips zu bestimmen, wobei die Ein-Byte-Adresse weiterhin einen anfänglichen Spaltenbezeichner einschließt, und wobei die erste anfängliche physische Spaltenadresse weiterhin dem anfänglichen Spaltenbezeichner zugeordnet ist.
DE102021115365.4A 2020-12-03 2021-06-14 Overhead-reduktion im datenübertragungsprotokoll für nand-speicher Pending DE102021115365A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063120787P 2020-12-03 2020-12-03
US63/120,787 2020-12-03
US17/175,099 US11487446B2 (en) 2020-12-03 2021-02-12 Overhead reduction in data transfer protocol for NAND memory
US17/175,099 2021-02-12

Publications (1)

Publication Number Publication Date
DE102021115365A1 true DE102021115365A1 (de) 2022-06-09

Family

ID=81655111

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021115365.4A Pending DE102021115365A1 (de) 2020-12-03 2021-06-14 Overhead-reduktion im datenübertragungsprotokoll für nand-speicher

Country Status (3)

Country Link
US (2) US11487446B2 (de)
KR (1) KR102502326B1 (de)
DE (1) DE102021115365A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11886346B2 (en) * 2021-04-22 2024-01-30 Micron Technology, Inc. Cache read context switching in a memory sub-system

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100593215C (zh) 2004-02-20 2010-03-03 斯班逊有限公司 半导体存储装置及该半导体存储装置的控制方法
KR100953062B1 (ko) * 2008-05-20 2010-04-13 주식회사 하이닉스반도체 불휘발성 메모리 소자의 어드레스 입력 방법 및 동작 방법
US8285917B2 (en) 2009-03-26 2012-10-09 Scaleo Chip Apparatus for enhancing flash memory access
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9324450B2 (en) 2013-03-13 2016-04-26 Winbond Electronics Corporation NAND flash memory
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9653184B2 (en) * 2014-06-16 2017-05-16 Sandisk Technologies Llc Non-volatile memory module with physical-to-physical address remapping
US9582201B2 (en) 2014-09-26 2017-02-28 Western Digital Technologies, Inc. Multi-tier scheme for logical storage management
US20160162416A1 (en) * 2014-12-08 2016-06-09 Intel Corporation Apparatus and Method for Reducing Latency Between Host and a Storage Device
US9524799B2 (en) 2014-12-30 2016-12-20 Sandisk Technologies Llc Method and apparatus to tune a toggle mode interface
US9626312B2 (en) 2015-07-17 2017-04-18 Sandisk Technologies Llc Storage region mapping for a data storage device
US10268387B2 (en) 2017-01-04 2019-04-23 Sandisk Technologies Llc Meta-groups in non-volatile storage based on performance times
US9818462B1 (en) 2017-01-19 2017-11-14 Micron Technology, Inc. Apparatuses and methods for providing internal clock signals of different clock frequencies in a memory device
JP6779821B2 (ja) * 2017-03-24 2020-11-04 キオクシア株式会社 メモリシステム及びデータの読み出し方法
JP2018163724A (ja) 2017-03-27 2018-10-18 東芝メモリ株式会社 メモリシステム
US10497438B2 (en) * 2017-04-14 2019-12-03 Sandisk Technologies Llc Cross-point memory array addressing
US10712972B2 (en) 2017-09-29 2020-07-14 Western Digital Technologies, Inc. Read commands scheduling method in storage device
US11016679B2 (en) 2018-06-29 2021-05-25 Seagate Technology Llc Balanced die set execution in a data storage system
US11249896B2 (en) 2019-12-20 2022-02-15 Micron Technology, Inc. Logical-to-physical mapping of data groups with data locality
KR20210142974A (ko) * 2020-05-19 2021-11-26 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11586384B2 (en) 2021-02-16 2023-02-21 Western Digital Technologies, Inc. Overhead reduction in data transfer protocol for data storage devices

Also Published As

Publication number Publication date
KR20220078460A (ko) 2022-06-10
CN114594902A (zh) 2022-06-07
US20230022998A1 (en) 2023-01-26
US11487446B2 (en) 2022-11-01
KR102502326B1 (ko) 2023-02-21
US20220179568A1 (en) 2022-06-09
US11755211B2 (en) 2023-09-12

Similar Documents

Publication Publication Date Title
DE112014006118B4 (de) Spekulatives Vorab-Holen von in einem Flash-Speicher gespeicherten Daten
DE2350215C2 (de) Rechenanlage
DE3909896C2 (de)
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102013016993B4 (de) Embedded Multimedia Card (eMMC), einen Host steuernde eMMC und Verfahren zum Betreiben eines eMMC-Systems
DE112015004536T5 (de) Hardware-Automatisierung für Speicherverwaltung
DE2617408A1 (de) Datenverarbeitungsgeraet
DE102021115374A1 (de) Abschwächung des in zonen unterteilten namensraums unter verwendung des unterblock-modus
DE102011086098A1 (de) Parallele Speicherlese- und Speicherschreib-Operationen in einem Speicher mit serieller Schnittstelle
DE112020006139T5 (de) Vor-lese-und lese-schwellenspannungsoptimierung
DE112008002553T5 (de) Einsatz eines MLC-Flash als SLC durch Schreiben von Dummy-Daten
DE2154106A1 (de) Arbeitsspeicherwerk
DE3128729A1 (de) Halbleiter-speichersystem
DE112019000167T5 (de) Anpassbare Lesewiederholungsreihenfolge basierend auf einem Decodierungserfolgstrend
DE102011075023A1 (de) Indexierter Registerzugriff für einen Speicherbaustein
DE102020115970B3 (de) Befehlsoptimierung durch intelligente schwellwertdetektion
DE102018109929A1 (de) NAND-Flash-Speichervorrichtung mit NAND-Puffer
DE112020005395T5 (de) Kapazitätserweiterung für speicher-untersysteme
DE102018124836A1 (de) Neuartiger speicherbaustein
DE112017006698T5 (de) Erreichen einheitlicher lesezeiten in nicht flüchtigen mehrebenenspeichern
DE102021115365A1 (de) Overhead-reduktion im datenübertragungsprotokoll für nand-speicher
DE102016201340B4 (de) Konfigurierung serieller Geräte
DE2458525B2 (de) Speicheranordnung mit Haupt- und Pufferspeicher
DE102017119065B4 (de) Aktualisieren eines Speichers
DE112021001848T5 (de) Mehrere pinkonfigurationen von speichervorrichtungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE

R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE