DE102017120960A1 - Mehrkanal-Speicheroperationen auf der Grundlage von Bitfehlerraten - Google Patents

Mehrkanal-Speicheroperationen auf der Grundlage von Bitfehlerraten Download PDF

Info

Publication number
DE102017120960A1
DE102017120960A1 DE102017120960.3A DE102017120960A DE102017120960A1 DE 102017120960 A1 DE102017120960 A1 DE 102017120960A1 DE 102017120960 A DE102017120960 A DE 102017120960A DE 102017120960 A1 DE102017120960 A1 DE 102017120960A1
Authority
DE
Germany
Prior art keywords
channel
memory
ber
clock rate
decoder
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.)
Granted
Application number
DE102017120960.3A
Other languages
English (en)
Other versions
DE102017120960B4 (de
Inventor
Stella Achtenberg
Eran Sharon
Ran ZAMIR
Amir Shaharabany
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.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
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 SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of DE102017120960A1 publication Critical patent/DE102017120960A1/de
Application granted granted Critical
Publication of DE102017120960B4 publication Critical patent/DE102017120960B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • G06F13/1673Details of memory controller using buffers
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/353Adaptation to the channel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • H03M13/3715Adaptation to the number of estimated errors or to the channel state
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3738Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6337Error control coding in combination with channel estimation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

In einem veranschaulichenden Beispiel enthält eine Einrichtung einen Speicher und einen Controller, der mit dem Speicher gekoppelt ist und der dafür konfiguriert ist, unter Verwendung wenigstens eines ersten Kanals und eines zweiten Kanals mit dem Speicher zu kommunizieren. Der Controller enthält eine Bitfehlerraten-Schätzeinrichtung (BER-Schätzeinrichtung), die dafür konfiguriert ist, eine erste BER, die dem ersten Kanal entspricht, und eine zweite BER, die dem zweiten Kanal entspricht, zu schätzen. Außerdem enthält der Controller eine Durchsatz-Ausgleichseinrichtung, die dafür konfiguriert ist, auf der Grundlage der ersten BER und der zweiten BER zu bestimmen, ob eine erste Taktrate des ersten Kanals und/oder eine zweite Taktrate des zweiten Kanals angepasst werden soll.

Description

  • GEBIET DER OFFENBARUNG
  • Die vorliegende Offenbarung bezieht sich allgemein auf elektronische Einrichtungen und insbesondere auf Operationen bei Einrichtungen, die Mehrkanalspeicher enthalten.
  • HINTERGRUND
  • Nichtflüchtige Datenspeichereinrichtungen wie etwa Universal-Serial-Bus-Flash-Speichereinrichtungen (USB-Flash-Speichereinrichtungen) oder Wechselspeicherkarten ermöglichen erhöhte Portabilität von Daten und Softwareanwendungen. Flash-Speichereinrichtungen können dadurch, dass sie mehrere Bits in jeder Flash-Speicherzelle speichern, die Datenspeicherdichte verbessern. Zum Beispiel schaffen Mehrebenenzellen-Flash-Speichereinrichtungen (MLC-Flash-Speichereinrichtungen) durch das Speichern von 3 Bits pro Zelle, 4 Bits pro Zelle oder mehr eine erhöhte Speicherdichte. Obwohl das Erhöhen der Anzahl der Bits pro Zelle und das Verringern von Einrichtungsmerkmalsdimensionen die Speicherdichte einer Speichereinrichtung erhöhen kann, kann eine Bitfehlerrate (BER) in der Speichereinrichtung gespeicherter Daten ebenfalls zunehmen. Flash-Speichereinrichtungen können die Datenspeicherkapazität außerdem dadurch verbessern, dass sie mehr als einen Speichereinzelchip enthalten. Wenn mehrere Einzelchips enthalten sind, kann die BER der Einzelchips variieren. In solchen Szenarien kann der Gesamtdurchsatz der Flash-Speichereinrichtung annähernd gleich dem Durchsatz des „langsamsten“ Speichereinzelchips, d. h. des Speichereinzelchips mit der höchsten BER, sein.
  • Figurenliste
    • 1 ist eine schematische Darstellung eines bestimmten veranschaulichenden Beispiels eines Systems, das dafür betreibbar ist, den Durchsatz eines Mehrkanalspeichers auf der Grundlage von Bitfehlerraten wahlweise auszugleichen.
    • 2 ist eine schematische Darstellung, die bestimmte Aspekte eines Beispiels des Systems aus 1 darstellt.
    • 3 ist eine schematische Darstellung, die bestimmte Aspekte eines anderen Beispiels des Systems aus 1 einschließlich des Anpassens einer Taktrate eines Mehrkanalspeichers auf der Grundlage von Bitfehlerraten darstellt.
    • 4 ist eine schematische Darstellung, die bestimmte Aspekte eines anderen Beispiels des Systems aus 1 einschließlich des Anpassens der Pufferzuordnung eines Mehrkanalspeichers auf der Grundlage von Bitfehlerraten darstellt.
    • 5 ist eine schematische Darstellung, die bestimmte Aspekte eines anderen Beispiels des Systems aus 1 einschließlich des Anpassens der Pufferzuordnung eines Mehrkanalspeichers auf der Grundlage von Bitfehlerraten darstellt.
    • 6 ist eine schematische Darstellung, die bestimmte Aspekte eines anderen Beispiels des Systems aus 1 einschließlich des Anpassens, wann Erfassungs-/Übertragungsbefehle bei einem Mehrkanalspeicher ausgeführt werden, auf der Grundlage von Bitfehlerraten darstellt.
    • 7 ist ein Ablaufplan eines veranschaulichenden Beispiels eines Verfahrens zum wahlweisen Ausgleichen des Durchsatzes eines Mehrkanalspeichers auf der Grundlage von Bitfehlerraten.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Im Folgenden sind bestimmte Aspekte der Offenbarung anhand der Zeichnungen beschrieben. Gemeinsame oder ähnliche Merkmale können in der Beschreibung durch gemeinsame Bezugszeichen bezeichnet sein. Wie „beispielhaft“ hier verwendet wird, kann es ein Beispiel, eine Implementierung und/oder einen Aspekt angeben und ist es nicht als Beschränkung oder Angabe einer Präferenz oder einer bevorzugten Implementierung zu verstehen. Ferner soll gewürdigt werden, dass bestimmte Ordnungszahlen (z. B. „erstes“ oder „zweites“) zur Erleichterung der Bezugnahme gegeben sein können und nicht notwendig physikalische Eigenschaften oder eine Reihenfolge bedeuten. Somit gibt eine zum Modifizieren eines Elements wie etwa einer Struktur, einer Komponente, einer Operation usw. verwendete Ordnungszahl (z. B. „erstes“, „zweites“, „drittes“ usw.), wie sie hier verwendet ist, nicht notwendig eine Priorität oder Reihenfolge des Elements in Bezug auf ein anderes Element an, sondern unterscheidet vielmehr das Element von einem anderen Element mit (bis auf die Verwendung der Ordnungszahl) derselben Bezeichnung. Außerdem können unbestimmte Artikel („ein“ und „eine“), wie sie hier verwendet sind, „ein oder mehrere“ anstelle von „ein“ angeben. Wie sie hier verwendet ist, kann eine Struktur oder Operation, die ein Element „umfasst“ oder „enthält“, ein oder mehrere andere Elemente enthalten, die nicht explizit angegeben sind. Ferner kann eine Operation, die „auf der Grundlage“ einer Bedingung oder eines Ereignisses ausgeführt wird, ebenfalls auf der Grundlage einer oder mehrerer anderer Bedingungen oder Ereignisse, die nicht explizit angegeben sind, ausgeführt werden.
  • Obwohl hier bestimmte Beispiele in Bezug auf eine Datenspeichereinrichtung beschrieben sind, wird gewürdigt werden, dass hier beschriebene Techniken auf andere Implementierungen anwendbar sind. Zum Beispiel können Informationen alternativ oder zusätzlich zum Zugreifen auf Informationen von einem Speicher durch eine Kommunikationseinrichtung (z. B. drahtlos oder von einem verdrahteten Netz) empfangen werden. Als ein veranschaulichendes Beispiel können Durchsatzausgleichtechniken genutzt werden, um verdrahtete oder drahtlose Kommunikationen zu verbessern. Der Fachmann auf dem Gebiet wird erkennen, dass hier beschriebene Techniken auf andere Implementierungen anwendbar sind.
  • In 1 ist ein bestimmtes veranschaulichendes Beispiel eines Systems gezeigt und allgemein mit 100 bezeichnet. Das System 100 enthält eine Einrichtung 102 (z. B. eine Datenspeichereinrichtung) und eine Zugriffseinrichtung 180 (z. B. eine Hosteinrichtung). Die Einrichtung 102 enthält eine Speichereinrichtung 103, die mit einem Controller 130 gekoppelt ist.
  • In bestimmten Aspekten ist die Speichereinrichtung 103 ein Mehrkanalspeicher. Zur Veranschaulichung enthält die Speichereinrichtung 103 in dem Beispiel aus 1 mehrere Speichereinzelchips einschließlich der Speichereinzelchips 110, 111, 112 und 113. Ein erster Kanal 160 unterstützt Datenzugriffsoperationen für eine erste Teilmenge der Speichereinzelchips (z. B. für die Speichereinzelchips 110-111). Ein zweiter Kanal 170 unterstützt Datenzugriffsoperationen für eine zweite Teilmenge der Speichereinzelchips (z. B. für die Speichereinzelchips 112-113). Obwohl 1 zwei Teilmengen von Speichereinzelchips darstellt, wobei jede Teilmenge dieselbe Anzahl von Speichereinzelchips aufweist, können in alternativen Beispielen eine andere Anzahl von Teilmengen vorhanden sein und können andere Teilmengen andere Anzahlen von Speichereinzelchips enthalten. Wie er hier verwendet ist, kann ein „Kanal“ einem logischen und/oder physikalischen Datenweg zwischen der Speichereinrichtung 103 und der Datenzugriffseinrichtung 180 entsprechen. In einigen Beispielen kann jeder Kanal 160, 170 unterschiedliche Komponenten (z. B. Hardwareelemente) enthalten, die für den jeweiligen Kanal bestimmt sind. Alternativ oder zusätzlich kann jeder Kanal 160, 170 bestimmte Komponenten gemeinsam nutzen. Obwohl in 1 eine Konfiguration mit zwei Kanälen und zwei Speichereinzelchips pro Kanal gezeigt ist, ist festzustellen, dass die Techniken der vorliegenden Offenbarung in alternativen Beispielen in Bezug auf Einrichtungen genutzt werden können, die mehr als zwei Kanäle und/oder eine andere Anzahl von Speichereinzelchips pro Kanal aufweisen.
  • Die Einrichtung 102 und die Zugriffseinrichtung 180 können über eine Verbindung (z. B. einen Kommunikationsweg) wie etwa einen Bus oder eine drahtlose Verbindung funktional gekoppelt sein. Die Einrichtung 102 kann eine Einrichtungsschnittstelle 137 enthalten, die die Kommunikation über den Kommunikationsweg zwischen der Einrichtung 102 und der Zugriffseinrichtung 180, wie etwa, wenn die Einrichtungsschnittstelle 137 mit der Zugriffseinrichtung 180 kommunikationstechnisch gekoppelt ist, ermöglicht.
  • In einigen Implementierungen kann die Einrichtung 102 in eine Zugriffseinrichtung 180 wie etwa in eine in Übereinstimmung mit einer Joint-Electron-Devices-Engineering-Council-Solid-State-Technology-Association-Universal-Flash-Storage-Konfiguration (JEDEC-UFS-Konfiguration) eingebettet sein. Zum Beispiel kann die Einrichtung 102 als veranschaulichende Beispiele dafür konfiguriert sein, mit der Zugriffseinrichtung 180 als eingebetteter Speicher wie etwa eMMC® (Warenzeichen der JEDEC Solid State Technology Association, Arlington, Virginia) und eSD gekoppelt zu sein. Zur Veranschaulichung kann die Einrichtung 102 einer eMMC-Einrichtung (eingebetteten MultiMedia-Card-Einrichtung) entsprechen. Als ein weiteres Beispiel kann die Einrichtung 102 einer Speicherkarte wie etwa einer Secure-Digital-Karte (SD®-Karte), einer microSD®-Karte, einer miniSD™-Karte (Warenzeichen der SD-3C LLC, Wilmington, Delaware), einer MultiMediaCard™-Karte (MMC™-Karte) (Warenzeichen der JEDEC Solid State Technology Association, Arlington, Virginia) oder einer CompactFlash®-Karte (CF-Karte) (Warenzeichen der SanDisk Corporation, Milpitas, California) entsprechen. Alternativ kann die Einrichtung 102 von der Zugriffseinrichtung 180 abnehmbar sein (d. h. abnehmbar mit der Zugriffseinrichtung 180 "gekoppelt sein). Als ein Beispiel kann die Einrichtung 102 mit der Zugriffseinrichtung 180 in Übereinstimmung mit einer abnehmbaren Universal-Serial-Bus-Konfiguration (USB-Konfiguration) abnehmbar gekoppelt sein.
  • In einigen Implementierungen kann die Einrichtung 102 ein Festkörperlaufwerk (SSD), das in der Zugriffseinrichtung 180 enthalten oder verschieden von ihr sein kann (und die auf es zugreifen kann), enthalten oder ihm entsprechen. Zum Beispiel kann die Einrichtung 102 als veranschaulichende, nichteinschränkende Beispiele eine SSD, die als eine eingebettete Speichereinrichtung (z. B. als eine mobile eingebettete Speichereinrichtung) verwendet werden kann, eine Unternehmensspeichereinrichtung (ESD), eine Clientspeichereinrichtung oder eine Cloud-Speichereinrichtung enthalten oder ihr entsprechen. In einigen Implementierungen ist die Einrichtung 102 mit der Zugriffseinrichtung 180 indirekt, z. B. über ein Netz, gekoppelt. Das Netz kann z. B. ein Datenzentrums-Speichersystemnetz, ein Unternehmensspeichersystemnetz, ein Speicherbereichsnetz, ein Cloud-Speichernetz, ein lokales Netz (LAN), ein Weitverkehrsnetz (WAN), das Internet und/oder ein anderes Netz enthalten. In einigen Implementierungen kann die Einrichtung 102 eine Network-Attached-Storage-Einrichtung (NAS-Einrichtung) oder eine Komponente (z. B. eine Festkörperlaufwerkseinrichtung (SSD-Einrichtung)) eines Datenzentrums-Speichersystems, eines Unternehmensspeichersystems oder eines Speicherbereichsnetzes sein.
  • Die Einrichtung 102 kann in Übereinstimmung mit der JEDEC-Industriespezifikation arbeiten. Zum Beispiel kann die Einrichtung 102 in Übereinstimmung mit einer JEDEC-eMMC-Spezifikation, mit einer JEDEC-Universal-Flash-Storage-Spezifikation (JEDEC-UFS-Spezifikation), mit einer oder mehreren anderen Spezifikationen oder mit einer Kombination davon arbeiten. In einigen Implementierungen können die Einrichtungen 102 und die Zugriffseinrichtung 180 als veranschaulichende, nichteinschränkende Beispiele dafür konfiguriert sein, unter Verwendung eines oder mehrerer Protokolle wie etwa eines eMMC-Protokolls, eines Universal-Flash-Storage-Protokolls (UFS-Protokolls), eines Universal-Serial-Bus-Protokolls (USB-Protokolls), eines Serial-Advanced-Technology-Attachment-Protokolls (SA-TA-Protokolls) und/oder eines anderen Protokolls zu kommunizieren.
  • Die Zugriffseinrichtung 180 kann eine Speicherschnittstelle (nicht gezeigt) enthalten und kann dafür konfiguriert sein, über die Speicherschnittstelle mit der Einrichtung 102 zu kommunizieren, um Daten von der Speichereinrichtung 103 der Einrichtung 102 zu lesen und in sie zu schreiben. Die Zugriffseinrichtung 180 kann z. B. in Übereinstimmung mit einer Joint-Electron-Devices-Engineering-Council-Industriespezifikation (JEDEC-Industriespezifikation) wie etwa einer Universal-Flash-Storage-Access-Controller-Interface-Spezifikation (UFS-Access-Controller-Interface-Spezifikation) arbeiten. Als andere Beispiele kann die Zugriffseinrichtung 180 als ein veranschaulichendes, nichteinschränkendes Beispiel in Übereinstimmung mit einer oder mehreren Spezifikationen wie etwa einer Secure-Digital-Access-Controller-Spezifikation (SD-Access-Controller-Spezifikation) arbeiten. Die Zugriffseinrichtung 180 kann in Übereinstimmung mit irgendeinem anderen geeigneten Kommunikationsprotokoll mit der Speichereinrichtung 103 kommunizieren.
  • Die Zugriffseinrichtung 180 kann einen Prozessor und einen Speicher enthalten. Der Speicher kann dafür konfiguriert sein, Daten und/oder Befehle zu speichern, die durch den Prozessor ausführbar sein können. Der Speicher kann ein einzelner Speicher sein oder kann mehrere Speicher wie etwa einen oder mehrere nichtflüchtige Speicher, einen oder mehrere flüchtige Speicher oder eine Kombination davon enthalten. Die Zugriffseinrichtung 180 kann an die Einrichtung 102 einen oder mehrere Befehle wie etwa eine oder mehrere Anforderungen zum Löschen von Daten, zum Lesen von Daten von der Speichereinrichtung 103 der Einrichtung 102 oder zum Schreiben von Daten in sie ausgeben. Zum Beispiel kann die Zugriffseinrichtung 180 dafür konfiguriert sein, Daten wie etwa Nutzerdaten 182 bereitzustellen, die in der Speichereinrichtung 103 gespeichert werden sollen, oder Daten anzufordern, die von der Speichereinrichtung 103 gelesen werden sollen. Als veranschaulichende, nichteinschränkende Beispiele kann die Zugriffseinrichtung 180 ein Mobiltelephon, einen Computer (z. B. einen Laptop, ein Tablet oder einen Notebookcomputer), ein Musikabspielgerät, ein Videoabspielgerät, eine Spieleeinrichtung oder Spielekonsole, ein Lesegerät für elektronische Bücher, einen Personal Digital Assistant (PDA), eine tragbare Navigationseinrichtung, einen Computer wie etwa einen Laptopcomputer oder Notebookcomputer, einen Netzcomputer, einen Server, irgendeine andere elektronische Einrichtung oder irgendeine Kombination davon enthalten.
  • Die Einrichtung 102 enthält den Controller 130 und die Speichereinrichtung 103, die mit dem Controller 130 gekoppelt ist. Die Speichereinrichtung 103 kann einen Speicher 104 mit einem oder mehreren Speichereinzelchips (z. B. mit den in 1 gezeigten vier Speichereinzelchips 110-113) enthalten. Jeder der Speichereinzelchips 110-113 kann einem nichtflüchtigen Speicher der Speicherelemente entsprechen. Der Speicher 104 kann z. B. als veranschaulichende, nichteinschränkende Beispiele einen Flash-Speicher wie etwa einen NAND-Flash-Speicher oder einen resistiven Speicher wie etwa einen resistiven Schreib-Lese-Speicher (ReRAM) enthalten. Der Speicher 104 kann eine dreidimensionale Speicherkonfiguration (3D-Speicherkonfiguration) aufweisen. Als ein Beispiel kann der Speicher 104 eine vertikale 3D-Bitleitungs-Konfiguration (3D-VBL-Konfiguration) aufweisen. In einer bestimmten Implementierung enthält der Speicher 104 einen nichtflüchtigen Speicher mit einer 3D-Speicherkonfiguration, die in einer oder in mehreren physikalischen Ebenen von Anordnungen von Speicherzellen mit einem aktiven Bereich, die über einem Siliciumsubstrat angeordnet sind, monolithisch gebildet ist. Alternativ kann der Speicher 104 eine andere Konfiguration wie etwa eine zweidimensionale Speicherkonfiguration (2D-Speicherkonfiguration) oder eine nichtmonolithische 3D-Speicherkonfiguration (z. B. eine 3D-Speicherkonfiguration gestapelter Einzelchips) aufweisen.
  • Der Speicher 104 kann einen oder mehrere Blöcke wie etwa eine NAND-Flash-Löschgruppe von Speicherelementen enthalten. Zur Veranschaulichung kann der Speicher 104 eine Gruppe von Speicherelementen enthalten, die als veranschaulichende, nichteinschränkende Beispiele als eine physikalische Seite, als eine Wortleitung oder als ein Block konfiguriert sein können. Jedes Speicherelement des Speichers 104 kann auf einen Zustand (z. B. eine Schwellenspannung in einer Flash-Konfiguration oder einen resistiven Zustand in einer resistiven Speicherkonfiguration), der einen oder mehrere Werte angibt, programmierbar sein. Jeder Block des Speichers 104 kann eine oder mehrere Wortleitungen enthalten. Jede Wortleitung kann eine oder mehrere Seiten wie etwa eine oder mehrere physikalische Seiten enthalten. In einigen Implementierungen kann jede Seite zum Speichern eines Codeworts konfiguriert sein. Als veranschaulichende, nichteinschränkende Beispiele kann eine Wortleitung zum Arbeiten als eine Einebenenzellen-Wortleitung (SLC-Wortleitung), als eine Mehrebenenzellen-Wortleitung (MLC-Wortleitung) oder als eine Dreiebenenzellen-Wortleitung (TLC-Wortleitung) konfigurierbar sein.
  • Die Speichereinrichtung 103 kann eine Unterstützungsschaltungsanordnung wie etwa eine Lese/SchreibSchaltungsanordnung 114 zur Unterstützung des Betriebs bei den Speichereinzelchips 110-113 enthalten. Obwohl die Lese/Schreib-Schaltungsanordnung 114 als eine einzelne Komponente gezeigt ist, kann sie in getrennte Komponenten der Speichereinrichtung 103 wie etwa in eine Leseschaltungsanordnung und eine Schreibschaltungsanordnung geteilt sein. Die Lese/Schreib-Schaltungsanordnung 114 kann extern gegenüber dem Speicher 104 sein. Alternativ können ein oder mehrere der einzelnen Speichereinzelchips 110-113 eine entsprechende Lese/SchreibSchaltungsanordnung enthalten, die dafür betreibbar ist, unabhängig von irgendwelchen anderen Lese- und/oder Schreiboperationen bei irgendeinem der anderen Speichereinzelchips Daten aus Speicherelementen innerhalb des einzelnen Speichereinzelchips zu lesen und/oder in sie zu schreiben. In einigen Beispielen können die Daten über eine oder mehrere der Speichereinzelchips 110-113 „gestreift“ sein, wenn Daten in der Speichereinrichtung 103 gespeichert sind. Ähnlich kann das Lesen dieser Daten in einem Beispiel das Zugreifen auf mehrere der Speichereinzelchips 110-113 enthalten.
  • Der Controller 130 ist über einen Bus 121 und eine oder mehrere Speicherschnittstellen 131 mit der Speichereinrichtung 103 gekoppelt. Zum Beispiel kann der Bus 121 die Kanäle 160, 170 unterstützen, um zu ermöglichen, dass der Controller 130 mit dem Speicher 104 kommuniziert. Zur Veranschaulichung können die Speicherschnittstellen 131 eine erste Speicherschnittstelle und eine zweite Speicherschnittstelle enthalten. Die erste Speicherschnittstelle kann ermöglichen, dass der Controller 130 unter Verwendung des ersten Kanals 160 Daten über den Bus 121 an die Speichereinzelchips 110, 111 sendet und von ihnen empfängt. Die zweite Speicherschnittstelle kann ermöglichen, dass der Controller 130 unter Verwendung des zweiten Kanals 170 Daten über den Bus 121 an die Speichereinzelchips 112, 113 sendet und von ihnen empfängt. In einem veranschaulichenden Beispiel ist jede der Speicherschnittstellen 131 ein Flash-Schnittstellenmodul (FIM) .
  • In einigen Aspekten enthält der Controller 130 einen Pipelineplaner 132, der dafür konfiguriert ist, mit einer oder mehreren anderen Komponenten oder Modulen des Controllers 130 zusammenwirken, und der dafür konfiguriert ist, Decodierungszeiten und/oder andere Systemparameter zu bestimmen. Zum Beispiel kann der Pipelineplaner 132 dafür konfiguriert sein, den Zugriff durch die Speicherschnittstellen 131 auf die einzelnen Speichereinzelchips 110-113 zu planen und zu entscheiden. Zur Veranschaulichung kann der Pipelineplaner 132 Erfassungsoperationen und Übertragungsoperationen (z. B. durch Planen von Erfassungsbefehlen und Übertragungsbefehlen) bei den einzelnen Speichereinzelchips 110, 111, die dem ersten Kanal 160 entsprechen, planen. Ähnlich kann der Pipelineplaner 132 Erfassungsoperationen und Übertragungsoperationen bei den einzelnen Speichereinzelchips 112, 113, die dem zweiten Kanal 170 entsprechen, planen. Während einer Erfassungsoperation können Bits, die bei einzelnen Speicherelementen eines Speichereinzelchips gespeichert sind, erfasst werden. Während einer Übertragungsoperation können die erfassten Bits über den Bus 121 zu der entsprechenden der Speicherschnittstellen 131 übertragen werden. In einigen Beispielen kann der Pipelineplaner 132 Erfassungs- und Übertragungsbefehle bei einem anderen Speicherchip planen, der mit dieser Speicherschnittstelle 131 gekoppelt ist, falls ein bestimmter mit einer Speicherschnittstelle 131 gekoppelter Einzelchip belegt ist, so dass die Speicherschnittstelle 131 genutzt wird, anstatt im Leerlauf zu bleiben.
  • Außerdem kann der Controller einen oder mehrere Jitter-Puffer 133 enthalten. Zur Veranschaulichung kann ein erster der Jitter-Puffer 133 für den ersten Kanal 160 reserviert sein und kann ein zweiter der Jitter-Puffer 133 für den zweiten Kanal 170 reserviert sein. In einem bestimmten Aspekt entsprechen die Jitter-Puffer 133 Systemspeicherbetriebsmitteln, die durch den Controller 130 während des Betriebs, z. B. in Ansprechen auf die Ausführung von Firmwarebefehlen, dynamisch zugeordnet und freigegeben werden können. Somit können die Jitter-Puffer 133 gemeinsam genutzt, z. B. zwischen den Kanälen 160, 170 dynamisch verteilt, werden. Wie hier weiter beschrieben wird, können die Jitter-Puffer 133 als ein einzelner Speicherpuffer mit verschiedenen Abschnitten, die auf der Grundlage der Betriebsbedingungen verschiedenen Kanälen zugewiesen sind, um den Gesamtdurchsatz zu erhöhen oder zu maximieren, angesehen werden. Während Leseoperationen können Daten, die durch eine der Speicherschnittstellen 131 empfangen werden, in einem entsprechenden der Jitter-Puffer 133 gespeichert werden. Während Schreiboperationen kann eine der Speicherschnittstellen 131 Daten aus einem entsprechenden der Jitter-Puffer 133 zur Übermittlung an die Speichereinrichtung 103 über den Bus 121 auslesen.
  • Ferner kann der Controller 130 eine Fehlerkorrekturcode-Engine (ECC-Engine) 134 enthalten, die dafür konfiguriert ist, während einer Schreiboperation Daten (z. B. die Nutzerdaten 182) zu empfangen und auf der Grundlage der Daten ein oder mehrere ECC-Codewörter (die z. B. einen Datenabschnitt und einen Paritätsabschnitt enthalten) zu erzeugen. Zur Veranschaulichung kann die ECC-Engine 134 einen oder mehrere Codierer 135 (z. B. einen Codierer pro Kanal 160, 170) enthalten, die dafür konfiguriert sind, Daten unter Verwendung einer ECC-Codierungstechnik zu codieren. Als veranschaulichende, nichteinschränkende Beispiele können die Codierer 135 Reed-Solomon-Codierern, Bose-Chaudhuri-Hocquenghem-Codierern (BCH-Codierern), Codierern für eine Paritätsprüfung mit niedriger Dichte (LDPC-Codierern), Turbocodierern, Codierern, die zum Codieren der Daten in Übereinstimmung mit einer oder mit mehreren anderen ECC-Techniken konfiguriert sind, oder einer Kombination davon entsprechen.
  • Ferner kann die ECC-Engine 134 dafür konfiguriert sein, während einer Leseoperation Daten (z. B. Codewörter) von den Jitter-Puffern 133 zu empfangen, um an den Daten Fehlerdetektions-/Fehlerkorrekturoperationen auszuführen, bevor die (fehlerkorrigierten) Daten für die Zugriffseinrichtung 180 bereitgestellt werden. Zum Beispiel kann die ECC-Engine 134 einen oder mehrere Decodierer 136 (z. B. einen Decodierer pro Kanal 160, 170) enthalten. Als veranschaulichende, nichteinschränkende Beispiele können die Decodierer 136 Reed-Solomon-Decodierern, BCH-Decodierern, LDPC-Decodierern, Turbodecodierern, Decodierern, die zum Decodieren der Codewörter in Übereinstimmung mit einer oder mehreren anderen ECC-Techniken konfiguriert sind, oder einer Kombination davon entsprechen.
  • Die Einrichtungsschnittstelle 137 kann die Kommunikation zwischen dem Controller 130 und der Zugriffseinrichtung 180 unterstützen. In bestimmten Aspekten enthält die Einrichtungsschnittstelle 137 wenigstens einen Übertragungspuffer 138, der alternativ als ein Übertragungs-RAM (TRAM) oder als ein Zwischenspeicherungspuffer bezeichnet werden kann. Zur Veranschaulichung kann ein erster Abschnitt des Übertragungspuffers 138 für Daten reserviert sein, die über den ersten Kanal 160 übermittelt werden, und kann ein zweiter Abschnitt des Übertragungspuffers 138 für Daten reserviert sein, die über den zweiten Kanal 170 übermittelt werden.
  • Während einer Schreiboperation kann der Controller 130 Daten und Befehle von der Zugriffseinrichtung 180 empfangen. Außerdem kann der Controller 130 Daten senden und Befehle schreiben, um zu veranlassen, dass die Speichereinrichtung 103 Daten an einer spezifizierten Adresse speichert. Der Schreibbefehl kann eine physikalische Adresse eines Abschnitts des Speichers 104 (z. B. eine physikalische Adresse einer Wortleitung), der die Daten speichern soll, spezifizieren. Außerdem kann der Controller 130 dafür konfiguriert sein, an die Speichereinrichtung 103 Daten und Befehle zu senden, die als veranschaulichende, nichteinschränkende Beispiele Hintergrundabtastoperationen, Speicherbereinigungsoperationen und/oder Wear-Levelling-Operationen usw. zugeordnet sind.
  • Während einer Leseoperation kann der Controller 130 Daten an die Zugriffseinrichtung 180 senden. Zur Veranschaulichung kann der Controller 130 dafür konfiguriert sein, einen Lesebefehl an die Speichereinrichtung 103 zu senden, um auf Daten von einer spezifizierten Adresse in dem Speicher 104 zuzugreifen. Der Lesebefehl kann die physikalische Adresse eines Abschnitts des Speichers 104 (z. B. eine physikalische Adresse einer Wortleitung) spezifizieren. Der Controller 130 kann veranlassen, dass die Speichereinrichtung 103 wie etwa in Ansprechen auf eine Anforderung für einen Lesezugriff von der Zugriffseinrichtung 180 auf eine Darstellung eines Codeworts zugreift. Der Controller 130 kann einen Lesebefehl senden, um zu veranlassen, dass die Darstellung des Codeworts erfasst wird und von der Speichereinrichtung 103 über eine der Speicherschnittstellen 131 und einen der Jitter-Puffer 133 zu der ECC-Engine 134 übertragen wird. Die ECC-Engine 134 kann bestimmen, dass die empfangene Darstellung des Codeworts einen oder mehrere Bitfehler enthält, und kann die Bitfehler korrigieren, um fehlerkorrigierte Daten zu erzeugen, die zur nachfolgenden Übermittlung an die Zugriffseinrichtung 180 in dem Übertragungspuffer 138 gespeichert werden. In einer Mehrkanalimplementierung, wie sie etwa in 1 gezeigt ist, können die Decodierer 136 für einzelne Kanäle parallel arbeiten und fehlerkorrigierte Daten zur Pufferung in dem Übertragungspuffer 138 erzeugen.
  • Allgemein kann die Decodierungszeit eines Codeworts zunehmen, während die Anzahl von Bitfehlern in dem Codewort zunimmt. Wegen Faktoren wie etwa der Speichereinzelchipqualität, der Schwankung von Einzelchip zu Einzelchip, des Beginns der Lebensdauer, des Endes der Lebensdauer, der Datenspeicherung und der Lese/Schreib-Temperaturdifferenz können verschiedene der Speichereinzelchips 110-113 verschiedene BERs aufweisen. Folglich können von einem der Speichereinzelchips 110-113 gelesene Codewörter eine höhere oder niedrigere Durchschnitts-BER als von einem anderen der Speichereinzelchips 110-113 gelesene Codewörter aufweisen. In sequentiellen Leseoperationen, in denen die Zugriffseinrichtung 180 Daten über die Kanäle 160, 170 auf alternierende Weise empfängt, kann sich die Schwankung der BER nachteilig auf die Leistung auswirken. Zur Veranschaulichung kann der Datendurchsatz über den ersten Kanal 160 kleiner als der Datendurchsatz über den zweiten Kanal 170 sein, da der Decodierer 136 des ersten Kanals 160 länger benötigt, um Fehlerkorrekturoperationen auszuführen, falls die Speichereinzelchips 110-111 höhere BERs als die Speichereinzelchips 112-113 aufweisen. In diesem Szenarium kann der Gesamtdurchsatz der Einrichtung 102 durch den niedrigsten Einzelkanaldurchsatz, d. h. durch den Durchsatz des ersten Kanals 160, bestimmt sein.
  • Ein mögliches Verfahren, um die Leistung „des schlechtesten Kanals“ zu vermeiden, ist das Einführen eines Hardwarezuteilers, der die Arbeitsbelastung auf der Grundlage der Decodiererverfügbarkeit unter den verfügbaren Decodierern 136 verteilt. Allerdings kann ein solcher Hardwarezuteiler komplex zu entwerfen sein und die Kosten der Einrichtung 102 erheblich erhöhen.
  • Die Techniken der vorliegenden Offenbarung können ermöglichen, dass die Leistung „des schlechtesten Kanals“ vermieden wird, ohne komplexe Hardware zu der Einrichtung hinzuzufügen. In Übereinstimmung mit den beschriebenen Techniken kann der Controller 130 eine BER-Schätzeinrichtung 140 und eine Durchsatz-Ausgleichseinrichtung 150 enthalten, die Hardwarekomponenten des Controllers 130, Software oder Firmware, die in dem Controller 130 ausgeführt wird, oder einer Kombination davon entsprechen können.
  • Die BER-Schätzeinrichtung 140 kann eine erste BER 142, die dem ersten Kanal 160 entspricht, und eine zweite BER 144, die dem zweiten Kanal 170 entspricht, schätzen. Zum Beispiel kann die BER-Schätzeinrichtung 140 geschätzte BERs für jeden der Speichereinzelchips 110-113 bestimmen und kann die BER, die einem Kanal entspricht, eine höchste oder durchschnittliche BER für jeden der Speichereinzelchips des Kanals sein. Die BER-Schätzeinrichtung 140 kann BERs auf einer Seitenebene, auf einer Einzelchipebene, auf einer Wortleitungsebene, auf einer Codewortebene oder auf einer anderen Ebene schätzen. Darüber hinaus kann die BER-Schätzeinrichtung 140 BERs statisch (z. B. zu Beginn der Lebensdauer), periodisch, in Ansprechen auf das Auftreten eines bestimmten Ereignisses (z. B. eines Einschaltereignisses) oder mit einer anderen Häufigkeit schätzen.
  • In einem ersten Beispiel kann die BER-Schätzeinrichtung 140 BERs auf der Grundlage von Syndromgewichten (SWs) schätzen, die während Decodierungsoperationen in den Decodierern 136 der Kanäle 160, 170 bestimmt werden. Zur Veranschaulichung kann während der LDPC-Decodierung einer der Decodierer 136 ein Syndromgewicht auf der Grundlage der Ausführung von Bitebenenberechnungen bestimmen, wobei ein höheres Syndromgewicht einer höheren Anzahl potentieller Bitfehler entspricht.
  • Somit kann geschätzt werden, dass der erste Speicherchip eine höhere BER als der zweite Speicherchip aufweist, wenn aus einem ersten Speicherchip gelesene Daten ein höheres Syndromgewicht als aus einem zweiten Speicherchip gelesene Daten aufweisen. In einigen Beispielen kann die BER-Schätzeinrichtung 140 eine Abbildung von Syndromgewichten auf geschätzte BERs speichern oder Zugriff auf sie haben.
  • In einem zweiten Beispiel kann die BER-Schätzeinrichtung 140 BERs auf der Grundlage einer Decodierungsbetriebsart der Decodierungsoperationen in den Decodierern 136 der Kanäle 160, 170 schätzen. Zur Veranschaulichung können LDPC-Decodierer dafür konfiguriert sein, in mehreren Betriebsarten oder Gängen wie etwa einem ersten Gang, einem zweiten Gang und einem dritten Gang zu arbeiten. Decodierungsoperationen in einem niedrigeren Gang können weniger komplex und schneller als Decodierungsoperationen in einem schnelleren Gang sein. Somit ist die Decodierungszeit umso länger, je höher die Decodierungsbetriebsart oder der Gang ist. In einem bestimmten Beispiel kann ein Decodierer mehrere Decodierungsgangschaltungen aufweisen, die sich in Bezug auf den verwendeten Decodierungsalgorithmus (z. B. Bitinvertierungs- oder Nachrichtenübergabe-Decodierungsalgorithmen wie Minimalsummenvarianten und Belief Propagation) und in Bezug auf eine Nachrichtenauflösung eine Festkommaimplementierung (z. B. 1-, 2-, 3-, ... Bitnachrichten) unterscheiden können. Beim Empfang eines Codeworts (oder Blocks) für die Decodierung kann ein LDPC-Decodierer zunächst im Gang 1 zu decodieren versuchen. Falls der Gang 1 misslingt, kann der LDPC-Decodierer im Gang 2 zu decodieren versuchen. Falls der Gang 2 ebenfalls misslingt, kann der LDPC-Decodierer im Gang 3 zu decodieren versuchen. Somit kann die BER-Schätzeinrichtung 140 durch Überwachung, in welcher LDPC-Decodierungsbetriebsart die Decodierer 136 der Kanäle 160, 170 arbeiten, in der Lage sein zu bestimmen, welche der BERs 142, 144 höher ist. In einigen Beispielen kann die BER-Schätzeinrichtung 140 eine Abbildung von Decodierungsbetriebsarten auf geschätzte BERs speichern oder Zugriff auf sie haben.
  • Die Durchsatz-Ausgleichseinrichtung 150 kann dafür konfiguriert sein, auf der Grundlage eines Vergleichs der ersten BER 142 und der zweiten BER 144 zu bestimmen, ob verschiedene Betriebsparameter in der Einrichtung 102 angepasst werden sollen. Zum Beispiel kann die Durchsatz-Ausgleichseinrichtung 150 das Anpassen irgendwelcher Betriebsparameter unterlassen, falls die erste BER 142 gleich oder nahezu gleich der zweiten BER 144 ist (sich z. B. um weniger als einen Schwellenbetrag von ihr unterscheidet). Dagegen kann die Durchsatz-Ausgleichseinrichtung 150 wahlweise verschiedene Operationen ausführen, um einen höheren Durchsatz als den oben beschriebenen Fall der „schlechtesten Leistung“ zu erzielen, falls sich die erste BER 142 und die zweite BER 144 um mehr als den Schwellenbetrag unterscheiden.
  • Als ein erstes Beispiel kann jeder der Kanäle 160, 170 in Übereinstimmung mit einem unabhängigen Taktsignal arbeiten und kann die Durchsatz-Ausgleichseinrichtung 150 die Taktraten der Kanäle 160, 170 auf der Grundlage der BERs 142, 144 anpassen. Wie sie verwendet ist, kann die Taktrate eines Kanals die Taktrate eines Taktsignals sein, das an eine oder mehrere Komponenten des Kanals angelegt ist. In Übereinstimmung mit der vorliegenden Offenbarung können die Taktraten der für die Komponente(n) der Kanäle 160, 170 bereitgestellten Taktsignale in der Weise angepasst werden, dass die LDPC-Decodierer 136 der Kanäle 160, 170 eine ähnliche Nutzung besitzen, wenn sich die BERs 142, 144 wenigstens um einen Schwellenbetrag unterscheiden. Dies kann dadurch erzielt werden, dass die Taktrate des Taktsignals des Kanals mit der höheren BER erhöht wird, um den Gesamtbetrieb des Kanals, der durch komplexe LDPC-Operationen wegen der höheren BER verlangsamt wird, zu beschleunigen. Alternativ oder zusätzlich kann dies dadurch erzielt werden, dass die Taktrate des Taktsignals des Kanals mit der niedrigeren BER verringert wird, um den Gesamtbetrieb in dem Kanal zu verlangsamen, um ihn an den Kanal mit der höheren BER anzupassen. In einem bestimmten Aspekt passt die Durchsatz-Ausgleichseinrichtung 150 die Taktraten auf der Grundlage des Änderns der Parameter einer Phasenregelschleife (PLL) oder einer anderen Schaltungsanordnung programmtechnisch an. Die Anpassung von Taktraten wird anhand von 3 weiter beschrieben.
  • Als ein zweites Beispiel kann die Durchsatz-Ausgleichseinrichtung 150 Systembetriebsmittelzuordnungen auf der Grundlage der BERs 142, 144 dynamisch anpassen. Zur Veranschaulichung kann die Größe des Jitter-Puffers 133 in einem Kanal mit höherer BER relativ zu der Größe des Jitter-Puffers 133 in einem Kanal mit niedrigerer BER erhöht werden, da LDPC-Operationen länger dauern, wenn die BER hoch ist. Das Erhöhen der Größe des Jitter-Puffers 133, wenn die BER hoch ist, kann einen Pufferengpass des Kanals mit der höheren BER zwischen der Speicherschnittstelle 131 und dem Decodierer 136 mildern und ermöglichen, dass die Speicherschnittstelle 131 des Kanals mit der höheren BER mit verringerten „Störungen“ weiterarbeitet. In einigen Beispielen kann außer oder anstelle der Größe der Jitter-Puffer 133 die Zuordnung des Übertragungspuffers 138 angepasst werden. Zur Veranschaulichung kann die Hälfte des Übertragungspuffers 138 für den ersten Kanal 160 reserviert werden und kann die andere Hälfte des Übertragungspuffers 170 für den zweiten Kanal reserviert werden, wenn die Kanäle 160, 170 gleiche oder nahezu gleiche BERs 142, 144 besitzen. Wenn die BERs 142, 144 nicht gleich oder nahezu gleich sind, kann die Übertragungspufferzuordnung für den Kanal mit niedrigerer BER erhöht werden. Die Anpassung der Systembetriebsmittelzuordnungen wird anhand von 4 und 5 weiter beschrieben.
  • Als ein drittes Beispiel kann die Durchsatz-Ausgleichseinrichtung 150 den Pipelineplaner 132 benachrichtigen, um auf der Grundlage der BERs 142, 144 anzupassen, wann bei einer oder bei mehreren der Speicherschnittstellen 131 Erfassungs-/Übertragungsbefehle ausgeführt werden. Zur Veranschaulichung können die Erfassungs-/Übertragungsausführungszeiten in der Weise angepasst werden, dass die Speicherschnittstelle, die mit diesem Speichereinzelchip gekoppelt ist, Daten weniger häufig ausliest anstatt „Störungen“ zu behandeln, wenn ein Speichereinzelchip eine höhere BER besitzt und die Decodierungsoperationen länger dauern. Die Anpassung der Erfassungs-/Übertragungsausführungszeit wird anhand von 6 weiter beschrieben.
  • Es ist festzustellen, dass die obigen Beispiele für Betriebsparameter, die die Durchsatz-Ausgleichseinrichtung 150 wahlweise anpassen kann, zur Veranschaulichung gegeben sind und nicht als beschränkend angesehen werden sollen. In alternativen Implementierungen kann die Durchsatz-Ausgleichseinrichtung 150 dafür konfiguriert sein, wahlweise mehr, weniger und/oder andere Betriebsparameter anzupassen.
  • Darüber hinaus kann die Durchsatz-Ausgleichseinrichtung 150 in einigen Fällen einen Betriebsparameter maximal anpassen, bevor sie einen anderen Betriebsparameter anpasst. Als ein veranschaulichendes, nichteinschränkendes Beispiel kann die Durchsatz-Ausgleichseinrichtung 150 die Decodierungszeiten D1, D2 bei den Kanälen 160 bzw. 170 schätzen, wobei der Kanal mit der höheren BER eine längere geschätzte Decodierungszeit besitzt, wenn sich die BERs 142, 144 um mehr als einen Schwellenbetrag unterscheiden. Die Durchsatz-Ausgleichseinrichtung 150 kann auf der Grundlage der geschätzten Decodierungszeiten D1, D2 Ausgleichsfaktoren s1, s2 bestimmen. Die Ausgleichsfaktoren s1, s2 können Taktratenanpassungen entsprechen und können durch Durchschnitts- und Spitzenleistungsbeschränkungen in der Einrichtung 102 beschränkt sein. Die Durchsatz-Ausgleichseinrichtung 150 kann auf der Grundlage der Ausgleichsfaktoren neue geschätzte Decodierungszeiten bestimmen, d. h. D1new = s1 • D1 und D2new = s2 • D2. Falls die neuen geschätzten Decodierungszeiten gleich oder nahezu gleich sind (z. B., wenn sie sich um weniger als einen Schwellenbetrag unterscheiden), heißt das, dass die Taktratenanpassung ausreicht, um den Durchsatz in den Kanälen 160, 170 auszugleichen. Dagegen kann die Durchsatz-Ausgleichseinrichtung 150 fortfahren, Pufferzuordnungen, Erfassungs-/Übertragungsausführungszeiten oder beide anzupassen, falls die neuen geschätzten Decodierungszeiten nicht gleich oder nahezu gleich sind und eine weitere Anpassung der Taktraten (z. B. wegen Durchschnitts-/Spitzenleistungs-Beschränkungen) nicht verfügbar ist.
  • Somit kann die Einrichtung 102 aus 1 dafür betreibbar sein, den Durchsatz bei einem Mehrkanalspeicher auf der Grundlage der BERs auszugleichen (z. B., um ein Durchsatzungleichgewicht zu verringern). Zum Beispiel kann die Einrichtung 102 Betriebsparameter (z. B. die Taktrate, die Pufferzuordnung, die Erfassungs-/Übertragungsausführungszeit usw.) wahlweise in der Weise anpassen, dass der Gesamtdurchsatz der Einrichtung 102 näherungsweise ein Mittelwert der einzelnen Kanaldurchsätze ist, anstatt durch den niedrigsten Kanaldurchsatz beschränkt zu sein, falls die Kanal-BERs wie etwa wegen Unterschieden der BERs einzelner Speichereinzelchips verschieden sind.
  • Die 2-7 stellen verschiedene Beispiele des Ausgleichens des Durchsatzes bei einem Mehrkanalspeicher auf der Grundlage von BERs dar. Insbesondere stellt 2 ein System 200 dar, das die vier Speichereinzelchips 110-113 aus 1 enthält. Auf die Speichereinzelchips 110, 111 kann über einen ersten Kanal 260 (als „Kanal 0“ bezeichnet) durch einen Host 280 zugegriffen werden. Auf die Speichereinzelchips 112, 113 kann über einen zweiten Kanal 270 (als „Kanal 1“ bezeichnet) durch den Host 280 zugegriffen werden. In einem veranschaulichenden Aspekt entspricht der Host 280 der Zugriffseinrichtung 180 aus 1 und entsprechen die Kanäle 260, 270 den Kanälen 160, 170 aus 1.
  • Der erste Kanal 260 kann ein FIM 231a (als „FIM 0 bezeichnet“), einen ersten Jitter-Puffer 233a (als „Jitter-Puffer 0“ bezeichnet) und einen ersten ECC-Decodierer 236a (als „ECC 0“ bezeichnet) enthalten. Das erste FIM 231a kann dafür konfiguriert sein, in Übereinstimmung mit einer ersten Erfassungs-/Übertragungsausführungszeit 290a Daten aus den Speichereinzelchips 110, 111 auszulesen. Der zweite Kanal 270 kann einen zweiten FIM 231b (als „FIM 1 bezeichnet“), einen zweiten Jitter-Puffer 233b (als „Jitter-Puffer 1“ bezeichnet) und einen zweiten ECC-Decodierer 236b (als „ECC 1“ bezeichnet) enthalten. Das zweite FIM 231b kann dafür konfiguriert sein, in Übereinstimmung mit einer zweiten Erfassungs-/Übertragungsausführungszeit 290b Daten aus den Speichereinzelchips 112, 113 auszulesen. In einem veranschaulichenden Aspekt entsprechen die FIMs 231 den Speicherschnittstellen 131, entsprechen die Jitter-Puffer 233 den Jitter-Puffern 133 und entsprechen die ECC-Decodierer 236 den Decodierern 136 aus 1.
  • Die ECC-Decodierer 236a, 236b können dafür konfiguriert sein, Daten in jeweilige Abschnitte eines Übertragungspuffers 238 zu schreiben, wobei auf die Abschnitte des Übertragungspuffers 238 wie gezeigt durch den Host 280 zugegriffen werden kann. In einem veranschaulichenden Aspekt entspricht der Übertragungspuffer 238 dem Übertragungspuffer 138 aus 1.
  • In dem durch 2 dargestellten Beispiel können die Kanäle 260, 270 gleiche oder nahezu gleiche BERs aufweisen. Zum Beispiel kann die BER-Schätzeinrichtung 140 bestimmen, dass sich eine erste BER des ersten Kanals 260 von einer zweiten BER des zweiten Kanals 270 um weniger als einen Schwellenbetrag unterscheidet. In einem bestimmten Aspekt kann die BER-Schätzeinrichtung 140 die BERs der Kanäle 260, 270 auf der Grundlage von Syndromgewichten, die durch die ECC-Decodierer 236 berechnet werden, auf der Grundlage der Betriebsart (z. B. des Gangs), in der die ECC-Decodierer 236 arbeiten, auf der Grundlage einer oder mehrerer anderer Metriken (z. B. Datenspeicherungsmetriken, der Zeitdauer seit Beginn der Lebensdauer, der Zeitdauer bis zum Ende der Lebensdauer, der Lese-/Schreibtemperaturdifferenz usw.) oder irgendeiner Kombination davon schätzen. In Ansprechen darauf kann die Durchsatz-Ausgleichseinrichtung 150 das Anpassen von Betriebsparametern der Kanäle 260, 270 unterlassen. Zur Veranschaulichung können eine erste Taktrate eines an Komponenten des ersten Kanals 260 angelegten ersten Taktsignals 262 und eine zweite Taktrate eines an die Komponenten des zweiten Kanals 270 angelegten zweiten Taktsignals 272 dieselbe Taktrate sein, wenn sich die BERs um weniger als einen Schwellenbetrag unterscheiden. Ferner können die Größen der Jitter-Puffer 233a, 233b näherungsweise gleich sein und können die Erfassungs-/Übertragungsausführungszeiten 290a, 290b näherungsweise dieselbe Häufigkeit der Ausführung von Erfassungen/Übertragungen bei verschiedenen Speichereinzelchips angeben. Die Größen der Abschnitte des Übertragungspuffers 238, die für den ersten Kanal 260 (z. B. der Abschnitt mit einer Schraffur in 2) und für den zweiten Kanal 270 zugeordnet sind, können von einer Geschwindigkeit des Hosts 280 abhängen.
  • Weiter in 3 kann die Durchsatz-Ausgleichseinrichtung 150 während des Betriebs in dem System 200 bestimmen, dass der zweite Kanal 270 eine höhere geschätzte BER als der erste Kanal 260 besitzt. Wie anhand von 1 beschrieben ist, kann die Durchsatz-Ausgleichseinrichtung 150 in einem Versuch, den Durchsatz der Kanäle 260, 270 auszugleichen, in Ansprechen auf eine solche Bestimmung verschiedene Operationen ausführen. In 3 verlangsamt die Durchsatz-Ausgleichseinrichtung 150, wie bei 362 gezeigt ist, die Taktrate des ersten Taktsignals 262, das an den Kanal 260 mit niedrigerer BER angelegt ist. Zum Beispiel kann das erste Taktsignal 262 eine dritte Taktrate besitzen, die niedriger als die erste Taktrate aus 2 ist. Außerdem beschleunigt die Durchsatz-Ausgleichseinrichtung 150, wie bei 372 gezeigt ist, die Taktrate des zweiten Taktsignals 272, das an den Kanal 270 mit höherer BER angelegt ist. Zum Beispiel kann das zweite Taktsignal 272 eine vierte Taktrate besitzen, die höher als die erste Taktrate aus 2 ist. In einigen Beispielen kann die Durchsatz-Ausgleichseinrichtung 150 nur eines der Taktsignale anpassen, anstatt beide Taktsignale anzupassen.
  • In dem Beispiel aus 4 erhöht die Durchsatz-Ausgleichseinrichtung 150, wie bei 433 gezeigt ist, die Größe des Jitter-Puffers des Kanals mit der höheren BER (der als der zweite Kanal 270 dargestellt ist). Wie bei 538 gezeigt ist, kann anhand von 5 der Kanal 260, 270, von dem der Host 280 „aktuell“ liest, eine kleinere Übertragungspufferzuordnung empfangen, und kann der andere Kanal bzw. können die anderen Kanäle, von denen der Host 280 aktuell nicht liest (und die Störungen erfahren können), größere Übertragungspufferzuordnungen empfangen, falls der Host 280 einen höheren Durchsatz als der Rest des Systems 200 besitzt. Wie bei 690 gezeigt ist, passt die Durchsatz-Ausgleichseinrichtung 150 in dem Beispiel aus 6 die Erfassungs-/Übertragungsausführungszeit bei dem Kanal mit höherer BER (z. B. dem zweiten Kanal 270) an. Zur Veranschaulichung kann die Erfassungs-/Übertragungsausführungszeit in der Weise angepasst werden, dass das FIM 231b Daten weniger häufig von dem Einzelchip 112 als von dem Einzelchip 113 ausliest, falls der Einzelchip 112 eine höhere BER als der Einzelchip 113 besitzt.
  • Obwohl 3-6 Beispiele verschiedener Operationen darstellen, die ausgeführt werden können, um den Durchsatz in einem Mehrkanalspeicher auszugleichen, ist festzustellen, dass sich diese Operationen nicht gegenseitig ausschließen. In alternativen Beispielen können mehr, weniger und/oder andere Operationen ausgeführt werden, um den Durchsatz in einem Mehrkanalspeicher auszugleichen.
  • In 7 ist ein bestimmtes veranschaulichendes Beispiel eines Verfahrens 700 zum wahlweisen Ausgleichen des Durchsatzes in einem Mehrkanalspeicher auf der Grundlage von BERs gezeigt. Das Verfahren 700 kann bei einer Einrichtung wie etwa der Einrichtung 102 aus 1 oder in dem System 200 aus 3-6 ausgeführt werden.
  • Bei 702 schätzt ein Controller eine erste BER und eine zweite BER. Der Controller ist mit einem Speicher gekoppelt und ist dafür konfiguriert, unter Verwendung wenigstens eines ersten Kanals und eines zweiten Kanals mit dem Speicher zu kommunizieren. Die erste BER ist dem ersten Kanal zugeordnet und die zweite BER ist dem zweiten Kanal zugeordnet. Anhand von 1 kann z. B. die BER-Schätzeinrichtung 140 die erste BER 142 schätzen, die dem ersten Kanal 160 zugeordnet ist, und die zweite BER 144 schätzen, die dem zweiten Kanal 170 zugeordnet ist. Die erste BER 142 und die zweite BER 144 können auf der Grundlage von Syndromgewichten, auf der Grundlage einer Betriebsart von Decodierungsoperationen bei den Decodierern 136, auf der Grundlage eines oder mehrerer weiterer Faktoren oder irgendeiner Kombination davon bestimmt werden.
  • Bei 704 wird die erste BER mit der zweiten BER verglichen. Wenn die erste BER und die zweite BER gleich oder nahezu gleich sind (sich z. B. um weniger als einen Schwellenbetrag wie etwa 5 % unterscheiden), unterlässt der Controller bei 706 das Anpassen der Parameter, die dem ersten Kanal und dem zweiten Kanal zugeordnet sind, und endet das Verfahren 700 bei 718. Zum Beispiel kann es die Durchsatz-Ausgleichseinrichtung 150 anhand von 1 unterlassen Betriebsparameter anzupassen, die den Kanälen 160, 170 zugeordnet sind. Alternativ schätzt der Controller bei 708 eine erste Decodierungszeit, die dem ersten Kanal zugeordnet ist, und eine zweite Decodierungszeit, die dem zweiten Kanal zugeordnet ist, wenn sich die erste BER und die zweite BER wenigstens um einen Schwellenbetrag unterscheiden. Zum Beispiel kann die Durchsatz-Ausgleichseinrichtung 150 anhand von 1 Decodierungszeiten der Decodierer 136 in den Kanälen 160, 170 schätzen.
  • Weiter anhand von 710 passt der Controller eine erste Taktrate, die dem ersten Kanal zugeordnet ist, und/oder eine zweite Taktrate, die dem zweiten Kanal zugeordnet ist, an. Zum Beispiel kann die Durchsatz-Ausgleichseinrichtung 150 anhand von 1 eine Taktrate, die dem ersten Kanal 160 zugeordnet ist, erhöhen und/oder eine Taktrate, die dem zweiten Kanal 170 zugeordnet ist, verringern, falls der erste Kanal 160 eine höhere BER als der zweite Kanal 170 besitzt. In einem veranschaulichenden Beispiel kann die Taktrate bzw. können die Taktraten wie anhand von 3 beschrieben angepasst werden.
  • Das Anpassen der Taktrate(n) kann zu Änderungen der geschätzten Decodierungszeiten der Kanäle führen. Bei 712 bestimmt der Controller, ob die geänderten geschätzten Decodierungszeiten gleich oder nahezu gleich sind (sich z. B. um weniger als einen Schwellenbetrag wie etwa 5 % unterscheiden). Wenn das der Fall ist, endet das Verfahren 700 bei 718. Falls die geänderten geschätzten Decodierungszeiten nicht gleich oder nahezu gleich sind, passt der Controller bei 714 eine Größe einer Betriebsmittelzuordnung, die dem ersten Kanal und/oder dem zweiten Kanal zugeordnet ist, an. Zum Beispiel kann die Durchsatz-Ausgleichseinrichtung 150 anhand von 1 eine Größe eines oder mehrerer der Jitter-Puffer 133, eine Größe wenigstens eines Abschnitts des Übertragungspuffers 138 oder irgendeine Kombination davon anpassen. In einem veranschaulichenden Aspekt können Pufferzuordnungen wie anhand von 4 und 5 beschrieben angepasst werden. Alternativ oder zusätzlich kann ein Pipelineplaner (z. B. in dem Controller) bei 716 eine Erfassungs-/Übertragungsausführungszeit, die wenigstens einem Speichereinzelchip zugeordnet ist, anpassen. Zum Beispiel kann die Durchsatz-Ausgleichseinrichtung anhand von 1 den Pipelineplaner 132 benachrichtigen, dass er eine wenigstens einem der Speichereinzelchips 110-113 zugeordnete Erfassungs-/Übertragungsausführungszeit anpassen soll. In einem veranschaulichenden Aspekt kann eine Erfassungs-/Übertragungsausführungszeit wie anhand von 6 beschrieben angepasst werden.
  • Nachdem die Betriebsmittelzuordnungen und/oder die Erfassungs-/Übertragungsausführungszeiten angepasst worden sind, kann das Verfahren 700 bei 718 enden. Allerdings ist festzustellen, dass das Verfahren 700 in einer Einrichtung iterativ ausgeführt werden kann und dass in Abhängigkeit davon, wie die geschätzten BERs bei der Einrichtung variieren, zu verschiedenen Zeiten verschiedene Anpassungen ausgeführt werden können.
  • Somit stellt 7 ein Verfahren dar, durch das ein Controller einer Einrichtung den Durchsatz ausgleichen kann, wenn Kanäle eines Mehrkanalspeichers variierende BERs besitzen. Obwohl 7 das Vergleichen geschätzter BERs zeigt, können in einem alternativen Aspekt der bzw. die Betriebsparameter eines Kanals unabhängig von dem bzw. den Betriebsparametern oder einer geschätzten BER eines anderen Kanals angepasst werden. Zur Veranschaulichung kann ein Controller bestimmen, ob die geschätzte BER eines Kanals größer oder kleiner als eine Schwellen-BER ist, anstatt geschätzte BERs miteinander zu vergleichen. Falls die geschätzte BER größer als die Schwellen-BER ist, können ein oder mehrere Betriebsparameter (z. B. Taktrate, Betriebsmittelzuordnungen, Erfassungs-/Übertragungsausführungszeiten usw.) des Kanals angepasst werden.
  • Obwohl verschiedene hier gezeigte Komponenten als Blockkomponenten dargestellt und in allgemeinen Begriffen beschrieben worden sind, können diese Komponenten einen oder mehrere Mikroprozessoren, Zustandsmaschinen oder andere Schaltungen, die dafür konfiguriert sind zu ermöglichen, dass diese Komponenten eine oder mehrere hier beschriebene Operationen ausführen, enthalten. Zum Beispiel können die Komponenten des Controllers 130 aus 1 und/oder des Systems 200 aus 2 physikalische Komponenten wie etwa Hardwarecontroller, Zustandsmaschinen, Logikschaltungen oder andere Strukturen darstellen, um verschiedene hier beschriebene Operationen zu ermöglichen.
  • Alternativ oder zusätzlich kann wenigstens ein Teil einer oder mehrerer Komponenten des Controllers 130 und/oder des Systems 200 unter Verwendung eines Mikroprozessors oder Mikrocontrollers implementiert sein. Zum Beispiel können beschriebene Operationen durch einen Prozessor ausgeführt werden, der Befehle (z. B. Firmware), die in einem Speicher wie etwa in dem Speicher 104 aus 1 gespeichert sind, ausführt. Alternativ oder zusätzlich können ausführbare Befehle, die durch den Prozessor ausgeführt werden, an einem getrennten Speicherort, der nicht Teil des Speichers 104 ist, wie etwa einem Nur-Lese-Speicher (ROM) des Controllers 130, gespeichert sein.
  • Es wird gewürdigt werden, dass in alternativen Implementierungen eine oder mehrere Operationen, die hier in der Weise beschrieben worden sind, dass sie durch den Controller 130 ausgeführt werden, bei der Speichereinrichtung 103 ausgeführt werden können. Als ein veranschaulichendes Beispiel können alternativ oder zusätzlich zum Ausführen solcher Operationen bei dem Controller 130 speicherinterne ECC-Operationen (z. B. Codierungsoperationen und/oder Decodierungsoperationen) bei der Speichereinrichtung 103 ausgeführt werden.
  • Zusammen mit den beschriebenen Aspekten kann eine Vorrichtung Mittel zum Speichern von Daten enthalten. Die Mittel zum Speichern von Daten können z. B. die Speichereinrichtung 103, den Speicher 104, einen oder mehrere der Speichereinzelchips 110-113 oder eine oder mehrere andere Einrichtungen, Strukturen oder Schaltungen, die zum Speichern von Daten konfiguriert sind, oder irgendeine Kombination davon enthalten.
  • Außerdem kann die Vorrichtung Mittel zum Schätzen einer ersten BER, die einem ersten Kanal entspricht, der den Mitteln zum Speichern von Daten zugeordnet ist, und zum Schätzen einer zweiten BER, die einem zweiten Kanal entspricht, der den Mitteln zum Speichern von Daten zugeordnet ist, enthalten. Die Mittel zum Schätzen können z. B. die BER-Schätzeinrichtung 140 aus 1 enthalten.
  • Zur Veranschaulichung können die Mittel zum Schätzen BERs auf der Grundlage von Syndromgewichten und/oder Decodierungsbetriebsarten, die in dem ersten Kanal und in dem zweiten Kanal in Verwendung sind, schätzen. In einigen Beispielen können die Mittel zum Schätzen in Übereinstimmung wenigstens mit einem Teil des Ablaufplans aus 7 arbeiten
  • Ferner kann die Vorrichtung Mittel enthalten, um auf der Grundlage der ersten BER und der zweiten BER zu bestimmen, ob eine erste Taktrate des ersten Kanals und/oder eine zweite Taktrate des zweiten Kanals angepasst werden soll. Die Mittel zum Bestimmen können z. B. die Durchsatz-Ausgleichseinrichtung 150 aus 1 enthalten. In einigen Beispielen können die Mittel zum Bestimmen in Übereinstimmung wenigstens mit einem Teil des Ablaufplans aus 7 arbeiten.
  • Der erste Kanal kann erste Mittel zum Puffern von Daten enthalten und der zweite Kanal kann zweite Mittel zum Puffern von Daten enthalten. Zum Beispiel können die ersten Mittel zum Puffern von Daten einen ersten der Jitter-Puffer 133 aus 1 oder den ersten Jitter-Puffer 233a aus 2 enthalten und können die zweiten Mittel zum Puffern von Daten einen zweiten der Jitter-Puffer 133 aus 1 oder den zweiten Jitter-Puffer 233b aus 2 enthalten.
  • In bestimmten Aspekten kann ein Speicher (z. B. ein Laufwerk der Speichereinrichtung 103) einen resistiven Schreib-Lese-Speicher (ReRAM), einen Flash-Speicher (z. B. einen NAND-Speicher, einen NOR-Speicher, einen Einebenenzellen-Flash-Speicher (SLC-Flash-Speicher), einen Mehrebenenzellen-Flash-Speicher (MLC-Flash-Speicher), einen NOR-Speicher mit geteilter Bitleitung (DINOR-Speicher), einen UND-Speicher, eine Einrichtung mit hohem kapazitiven Kopplungsverhältnis (HiCR-Einrichtung), eine Einrichtung mit asymmetrischen kontaktlosen Transistoren (ACT-Einrichtung) oder irgendeinen anderen Flash-Speicher), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM), einen elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM), einen Nur-Lese-Speicher(ROM), einen einmal programmierbaren Speicher (OTP), einen anderen Typ eines Speichers oder eine Kombination davon enthalten. In einer bestimmten Ausführungsform ist die Einrichtung 102 über ein Netz indirekt mit einer Zugriffseinrichtung (z. B. mit der Zugriffseinrichtung 180) gekoppelt. Die Einrichtung 102 kann z. B. eine Network-Attached-Storage-Einrichtung (NAS-Einrichtung) oder eine Komponente (z. B. eine Festkörperlaufwerkskomponente (SSD-Komponente) eines Datenzentrums-Seichersystems, eines Unternehmensspeichersystems oder eines Speicherbereichsnetzes sein.
  • Halbleiterspeichereinrichtungen enthalten flüchtige Speichereinrichtungen wie etwa dynamische Schreib-Lese-Speichereinrichtungen („DRAM“-Einrichtungen) oder statische Schreib-Lese-Speichereinrichtungen („SRAM“-Einrichtungen), nichtflüchtige Speichereinrichtungen wie etwa einen resistiven Schreib-Lese-Speicher („ReRAM“), einen magnetoresistiven Schreib-Lese-Speicher („MRAM“), einen elektrisch löschbaren programmierbaren Nur-Lese-Speicher („EEPROM“), einen Flash-Speicher (der ebenfalls als eine Teilmenge eines EEPROM angesehen werden kann), einen ferroelektrischen Schreib-Lese-Speicher („FRAM“) und andere Halbleiterelemente, die Informationen speichern können. Jeder Typ einer Speichereinrichtung kann andere Konfigurationen aufweisen. Zum Beispiel können Flash-Speichereinrichtungen in einer NAND- oder in einer NOR-Konfiguration konfiguriert sein.
  • Die Speichereinrichtungen können aus passiven und/oder aktiven Elementen in irgendwelchen Kombinationen gebildet sein. Als nichteinschränkendes Beispiel enthalten passive Halbleiterspeicherelemente ReRAM-Einrichtungselemente, die in einigen Ausführungsformen ein Speicherelement zum Schalten des spezifischen Widerstands wie etwa ein eine Antifuse, ein Phasenwechselmaterial usw. und optional ein Lenkelement wie etwa eine Diode usw. enthalten. Ferner enthalten aktive Halbleiterspeicherelemente als nichteinschränkendes Beispiel EEPROM- und Flash-Speichereinrichtungselemente, die in einigen Ausführungsformen Elemente, die ein Ladungsgebiet wie etwa ein Floating Gate, leitende Nanopartikel oder ein dielektrisches Ladungsspeichermaterial enthalten, enthalten.
  • Mehrere Speicherelemente können in der Weise, dass sie in Reihe geschaltet sind, oder in der Weise, dass auf jedes Element einzeln zugegriffen werden kann, konfiguriert sei. Als nichteinschränkendes Beispiel enthalten Flash-Speichereinrichtungen in einer NAND-Konfiguration (NAND-Speicher) üblicherweise Speicherelemente, die in Reihe geschaltet sind. Eine NAND-Speicheranordnung kann in der Weise, dass die Anordnung aus mehreren Strängen von Speichern besteht, in denen ein Strang aus mehreren Speicherelementen besteht, die eine einzige Bitleitung gemeinsam nutzen und auf die als eine Gruppe zugegriffen wird, konfiguriert sein. Alternativ können Speicherelemente in der Weise, dass auf jedes Element einzeln zugegriffen werden kann, z. B. als eine NOR-Speicheranordnung, konfiguriert sein. NAND- und NOR-Speicherkonfigurationen sind beispielhaft und Speicherelemente können auf andere Weise konfiguriert sein.
  • Die Halbleiterspeicherelemente, die sich innerhalb eines und/oder über einem Substrat befinden, können in zwei oder drei Dimensionen wie etwa in einer zweidimensionalen Speicherstruktur oder in einer dreidimensionalen Speicherstruktur angeordnet sein. In einer zweidimensionalen Speicherstruktur sind die Halbleiterspeicherelemente in einer einzelnen Fläche oder in einer einzelnen Speichereinrichtungsebene angeordnet. Üblicherweise sind Speicherelemente in einer zweidimensionalen Speicherstruktur in einer Fläche (z. B. in einer x-z-Richtungs-Fläche) angeordnet, die im Wesentlichen parallel zu einer Hauptoberfläche eines Substrats, das die Speicherelemente stützt, verläuft. Das Substrat kann ein Wafer sein, über oder in dem die Schicht der Speicherelemente gebildet ist, oder kann ein Trägersubstrat sein, das an dem Speicherelement befestigt wird, nachdem sie gebildet worden sind. Als ein nichteinschränkendes Beispiel kann das Substrat einen Halbleiter wie etwa Silicium enthalten.
  • Die Halbleiterelemente können in einer einzelnen Speichereinrichtungsebene in einer geordneten Anordnung wie etwa in mehreren Zeilen und/oder Spalten angeordnet sein. Allerdings können die Speicherelemente in unregelmäßigen oder nicht orthogonalen Konfigurationen angeordnet sein. Die Speicherelemente können jeweils zwei oder mehr Elektroden oder Kontaktleitungen wie etwa Bitleitungen und Wortleitungen aufweisen.
  • Eine dreidimensionale Speicheranordnung ist so ausgelegt, dass Speicherelemente mehrere Flächen oder mehrere Speichereinrichtungsebenen belegen und dadurch in drei Dimensionen (d. h. in der x-, in der y- und in der z-Richtung, wobei die y-Richtung im Wesentlichen senkrecht und die x- und die z-Richtung im Wesentlichen parallel zu der Hauptoberfläche des Substrats sind) eine Struktur bilden. Als ein nichteinschränkendes Beispiel kann eine dreidimensionale Speicherstruktur als ein Stapel mehrerer zweidimensionaler Speichereinrichtungsebenen vertikal angeordnet sein. Als ein weiteres nichteinschränkendes Beispiel kann eine dreidimensionale Speicheranordnung als mehrere vertikale Säulen (z. B. Säulen, die im Wesentlichen senkrecht zu der Hauptoberfläche des Substrats, d. h. in der y-Richtung, verlaufen) angeordnet sein, wobei jede Säule mehrere Speicherelemente in jeder Säule aufweist. Die Säulen können in einer zweidimensionalen Konfiguration, z. B. in einer x-z-Ebene angeordnet sein, was zu einer dreidimensionalen Anordnung von Speicherelementen mit Elementen in mehreren vertikal gestapelten Speicherflächen führt. Andere Konfigurationen von Speicherelementen in drei Dimensionen können ebenfalls eine dreidimensionale Speicheranordnung bilden.
  • Als nichteinschränkendes Beispiel können die Speicherelemente in einer dreidimensionalen NAND-Speicheranordnung in einer einzelnen horizontalen (z. B. x-z-)Speichereinrichtungsfläche miteinander gekoppelt sein, um einen NAND-Strang zu bilden. Alternativ können die Speicherelemente miteinander gekoppelt sein, um einen vertikalen NAND-Strang zu bilden, der quer über mehrere horizontale Speichereinrichtungsebenen verläuft. Andere dreidimensionale Konfigurationen können denkbar sein, wobei z. B. einige NAND-Stränge Speicherelemente in einem einzelnen Speicherniveau enthalten, während andere Stränge Speicherelemente enthalten, die sich über mehrere Speicherebenen erstrecken. Außerdem können dreidimensionale Speicheranordnungen in einer NOR-Konfiguration und in einer ReRAM-Konfiguration ausgelegt sein.
  • Üblicherweise sind in einer monolithischen dreidimensionalen Speicheranordnung eine oder mehrere Speichereinrichtungsebenen über einem einzelnen Substrat gebildet. Optional kann die monolithische dreidimensionale Speicheranordnung ebenfalls eine oder mehrere Speicherschichten wenigstens teilweise innerhalb des einzelnen Substrats aufweisen. Als ein nichteinschränkendes Beispiel kann das Substrat einen Halbleiter wie etwa Silicium enthalten. In einer monolithischen dreidimensionalen Anordnung sind die Schichten, die jede Speichereinrichtungsebene der Anordnung bilden, üblicherweise in den Schichten der darunterliegenden Speichereinrichtungsebenen der Anordnung gebildet. Allerdings können Schichten benachbarter Speichereinrichtungsebenen einer monolithischen dreidimensionalen Speicheranordnung gemeinsam genutzt werden oder zwischen Speichereinrichtungsebenen dazwischenliegende Schichten aufweisen.
  • Alternativ können zweidimensionale Anordnungen getrennt gebildet werden und daraufhin zusammengepackt werden, um eine nichtmonolithische Speichereinrichtung mit mehreren Schichten von Speicher zu bilden. Zum Beispiel können nichtmonolithische gestapelte Speicher durch Bilden von Speicherebenen auf getrennten Substraten und daraufhin Stapeln der Speicherebenen aufeinander konstruiert werden. Vor dem Stapeln können die Substrate verdünnt oder von den Speichereinrichtungsebenen entfernt werden, wobei die resultierenden Speicheranordnungen aber nichtmonolithische dreidimensionale Speicheranordnungen sind, da die Speichereinrichtungsebenen anfangs über getrennten Substraten gebildet werden. Ferner können mehrere zweidimensionale Speicheranordnungen oder dreidimensionale Speicheranordnungen (monolithisch oder nichtmonolithisch) auf getrennten Chips gebildet werden und daraufhin zusammengepackt werden, um eine Speichereinrichtung gestapelter Chips zu bilden.
  • Üblicherweise ist für den Betrieb der Speicherelemente und für die Kommunikation mit den Speicherelementen eine zugeordnete Schaltungsanordnung erforderlich. Als nichteinschränkende Beispiele können Speichereinrichtungen eine Schaltungsanordnung aufweisen, die zum Steuern und Ansteuern von Speicherelementen, um Funktionen wie etwa Programmieren und Lesen auszuführen, verwendet wird. Diese zugeordnete Schaltungsanordnung kann auf demselben Substrat wie die Speicherelemente und/oder auf einem getrennten Substrat sein. Zum Beispiel kann sich ein Controller für Speicher-Schreib-Lese-Operationen auf einem getrennten Controllerchip und/oder auf demselben Substrat wie die Speicherelemente befinden.
  • Der Fachmann auf dem Gebiet wird erkennen, dass diese Offenbarung nicht auf die beschriebenen zweidimensionalen und dreidimensionalen beispielhaften Strukturen beschränkt ist, sondern alle relevanten Speicherstrukturen im Erfindungsgedanken und Schutzumfang der Offenbarung wie hier beschrieben und vom Fachmann auf dem Gebiet verstanden umfasst. Die Darstellungen der hier beschriebenen Ausführungsformen sollen ein allgemeines Verständnis der verschiedenen Ausführungsformen schaffen. Es können andere Ausführungsformen genutzt werden und von der Offenbarung abgeleitet werden, so dass strukturelle und logische Ersetzungen und Änderungen vorgenommen werden können, ohne von dem Schutzumfang der Offenbarung abzuweichen. Diese Offenbarung soll jegliche nachfolgenden Anpassungen oder Änderungen verschiedener Ausführungsformen umfassen. Der Fachmann auf dem Gebiet erkennt, dass diese Änderungen im Schutzumfang der vorliegenden Offenbarung liegen.
  • Der oben offenbarte Gegenstand wird als veranschaulichend und nicht als beschränkend angesehen und die beigefügten Ansprüche sollen alle solchen Änderungen, Verbesserungen und andere Ausführungsformen, die im Schutzumfang der vorliegenden Offenbarung liegen, umfassen. Somit soll der Schutzumfang der vorliegenden Erfindung in dem maximalen vom Gesetz zugelassenen Umfang durch die weitestmögliche Interpretation der folgenden Ansprüche und ihrer Entsprechungen bestimmt werden und nicht durch die vorstehende ausführliche Beschreibung beschränkt oder begrenzt sein.

Claims (20)

  1. Einrichtung, die Folgendes enthält: einen Speicher; und einen Controller, der mit dem Speicher gekoppelt ist und dafür konfiguriert ist, unter Verwendung wenigstens eines ersten Kanals und eines zweiten Kanals mit dem Speicher zu kommunizieren, wobei der Controller aufweist: eine Bitfehlerraten-Schätzeinrichtung (BER-Schätzeinrichtung), die dafür konfiguriert ist, eine erste BER, die dem ersten Kanal entspricht, und eine zweite BER, die dem zweiten Kanal entspricht, zu schätzen; und eine Durchsatz-Ausgleichseinrichtung, die dafür konfiguriert ist, auf der Grundlage der ersten BER und der zweiten BER zu bestimmen, ob eine erste Taktrate des ersten Kanals und/oder eine zweite Taktrate des zweiten Kanals angepasst werden soll.
  2. Einrichtung nach Anspruch 1, wobei der Speicher mehrere Speichereinzelchips aufweist.
  3. Einrichtung nach Anspruch 2, wobei der erste Kanal Datenzugriffsoperationen in Bezug auf eine erste Teilmenge von Speichereinzelchips der mehreren Speichereinzelchips unterstützt und wobei der zweite Kanal Datenzugriffsoperationen in Bezug auf eine zweite Teilmenge von Speichereinzelchips der mehreren Speichereinzelchips unterstützt.
  4. Einrichtung nach Anspruch 2 oder 3, wobei der Controller ferner einen Pipelineplaner aufweist, der dafür konfiguriert ist, eine Erfassungs-/Übertragungsausführungszeit, die wenigstens einem der mehreren Speichereinzelchip zugeordnet ist, auf der Grundlage eines Vergleichs der ersten BER mit der zweiten BER anzupassen.
  5. Einrichtung nach einem der vorhergehenden Ansprüche, wobei der erste Kanal eine erste Speicherschnittstelle und einen ersten Decodierer enthält und wobei der zweite Kanal eine zweite Speicherschnittstelle und einen zweiten Decodierer enthält.
  6. Einrichtung nach Anspruch 5, wobei der erste Decodierer einen ersten Decodierer für Code einer Paritätsprüfung niedriger Dichte (LDPC-Decodierer) aufweist und wobei der zweite Decodierer einen zweiten LDPC-Decodierer aufweist.
  7. Einrichtung nach Anspruch 5 oder 6, wobei der erste Kanal ferner einen ersten Jitter-Puffer enthält, der zwischen der ersten Speicherschnittstelle und dem ersten Decodierer angeordnet ist, und wobei der zweite Kanal ferner einen zweiten Jitter-Puffer enthält, der zwischen der zweiten Speicherschnittstelle und dem zweiten Decodierer angeordnet ist.
  8. Einrichtung nach Anspruch 7, wobei der erste Jitter-Puffer und der zweite Jitter-Puffer Abschnitten eines gemeinsam genutzten Speicherpuffers entsprechen.
  9. Einrichtung nach Anspruch 7 oder 8, wobei die Durchsatz-Ausgleichseinrichtung ferner dafür konfiguriert ist, auf der Grundlage eines Vergleichs der ersten BER mit der zweiten BER zu bestimmen, ob eine Größe des ersten Jitter-Puffers und/oder des zweiten Jitter-Puffers angepasst werden soll.
  10. Einrichtung nach einem der vorhergehenden Ansprüche, wobei der Speicher einen Flash-Speicher aufweist.
  11. Einrichtung nach einem der vorhergehenden Ansprüche, wobei der erste Kanal und der zweite Kanal einen Übertragungspuffer gemeinsam nutzen.
  12. Einrichtung nach einem der vorhergehenden Ansprüche, wobei die BER-Schätzeinrichtung dafür konfiguriert ist, die erste BER auf der Grundlage eines Syndromgewichts zu schätzen, das während Decodierungsoperationen in dem ersten Kanal bestimmt wird.
  13. Einrichtung nach einem der vorhergehenden Ansprüche, wobei die BER-Schätzeinrichtung dafür konfiguriert ist, die erste BER auf der Grundlage einer Decodierungsbetriebsart oder einer Decodierungszeit, die Decodierungsoperationen in dem ersten Kanal zugeordnet ist, zu schätzen.
  14. Verfahren, das Folgendes umfasst: Schätzen einer ersten Bitfehlerrate (BER), die dem ersten Kanal zugeordnet ist, und einer zweiten BER, die dem zweiten Kanal zugeordnet ist, bei einem Controller, der mit einem Speicher gekoppelt ist und dafür konfiguriert ist, unter Verwendung eines ersten Kanals und/oder eines zweiten Kanals mit dem Speicher zu kommunizieren; und Bestimmen, ob eine erste Taktrate des ersten Kanals und/oder eine zweite Taktrate des zweiten Kanals angepasst werden soll, auf der Grundlage der ersten BER und der zweiten BER.
  15. Verfahren nach Anspruch 14, das ferner das Unterlassen des Anpassens der ersten Taktrate und der zweiten Taktrate in Ansprechen darauf, dass sich die erste BER und die zweite BER um weniger als einen Schwellenbetrag unterscheiden, umfasst.
  16. Verfahren nach Anspruch 14 oder 15, das ferner in Ansprechen darauf, dass die erste BER wenigstens um einen Schwellenbetrag höher als die zweite BER ist, umfasst: Erhöhen einer Taktrate des ersten Kanals; Verringern einer Taktrate des zweiten Kanals; oder eine Kombination davon.
  17. Verfahren nach einem der Ansprüche 14 bis 16, wobei der Speicher mehrere Speichereinzelchips enthält und wobei das Verfahren nach dem Anpassen der ersten Taktrate und/oder der zweiten Taktrate ferner umfasst: Bestimmen, dass sich die erste Decodierungszeit, die dem ersten Kanal zugeordnet ist, von einer zweiten Decodierungszeit, die dem zweiten Kanal zugeordnet ist, um wenigstens einen Schwellenbetrag unterscheidet; und Anpassen einer Erfassungs-/Übertragungsausführungszeit, die wenigstens einem Speichereinzelchip der mehreren Speichereinzelchips zugeordnet ist.
  18. Verfahren nach einem der Ansprüche 14 bis 17, das ferner nach dem Anpassen der ersten Taktrate und/oder der zweiten Taktrate umfasst: Bestimmen, dass sich eine erste Decodierungszeit, die dem ersten Kanal zugeordnet ist, von einer zweiten Decodierungszeit, die dem zweiten Kanal zugeordnet ist, wenigstens um einen Schwellenbetrag unterscheidet; und Anpassen einer Größe eines ersten Jitter-Puffers, der dem ersten Kanal zugeordnet ist, und/oder eines zweiten Jitter-Puffers, der dem zweiten Kanal zugeordnet ist.
  19. Vorrichtung, die Folgendes enthält: Mittel zum Speichern von Daten; Mittel zum Schätzen einer ersten Bitfehlerrate (BER), die einem ersten Kanal entspricht, der den Mitteln zum Speichern von Daten zugeordnet ist, und zum Schätzen einer zweiten BER, die einem zweiten Kanal entspricht, der den Mitteln zum Speichern von Daten zugeordnet ist; und Mittel, um auf der Grundlage der ersten BER und der zweiten BER zu bestimmen, ob eine erste Taktrate des ersten Kanals und/oder eine zweite Taktrate des zweiten Kanals angepasst werden soll.
  20. Vorrichtung nach Anspruch 19, wobei der erste Kanal erste Mittel zum Puffern von Daten aufweist, wobei der zweite Kanal zweite Mittel zum Puffern von Daten aufweist.
DE102017120960.3A 2016-12-20 2017-09-11 Mehrkanal-Speicheroperationen auf der Grundlage von Bitfehlerraten Active DE102017120960B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/385,324 2016-12-20
US15/385,324 US10002086B1 (en) 2016-12-20 2016-12-20 Multi-channel memory operations based on bit error rates

Publications (2)

Publication Number Publication Date
DE102017120960A1 true DE102017120960A1 (de) 2018-06-21
DE102017120960B4 DE102017120960B4 (de) 2023-08-03

Family

ID=62251347

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017120960.3A Active DE102017120960B4 (de) 2016-12-20 2017-09-11 Mehrkanal-Speicheroperationen auf der Grundlage von Bitfehlerraten

Country Status (3)

Country Link
US (1) US10002086B1 (de)
CN (1) CN108205505B (de)
DE (1) DE102017120960B4 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11003529B2 (en) * 2018-03-22 2021-05-11 Winbond Electronics Corp. Encoding method and memory storage apparatus using the same
US10824502B2 (en) * 2018-08-08 2020-11-03 Micron Technology, Inc. Enhanced codeword for media persistence and diagnostics
CN109358979B (zh) * 2018-09-17 2021-10-12 至誉科技(武汉)有限公司 温差均衡方法在数据纠错中的应用、系统及存储介质
US10884628B2 (en) * 2018-12-20 2021-01-05 Western Digital Technologies, Inc. Performance of a read in a memory system
US20200272564A1 (en) * 2019-02-22 2020-08-27 Micron Technology, Inc. Memory device interface and method
US10917203B2 (en) * 2019-05-17 2021-02-09 Oracle International Corporation Estimate bit error rates of network cables
US11163453B2 (en) 2019-11-01 2021-11-02 Samsung Electronics Co., Ltd. Memory device, memory system including memory device and vehicle-based system including memory system
KR20210053390A (ko) 2019-11-01 2021-05-12 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US10998920B1 (en) 2020-02-26 2021-05-04 Apple Inc. Overcoming saturated syndrome condition in estimating number of readout errors
US11204833B1 (en) 2020-06-19 2021-12-21 Western Digital Technologies, Inc. NVM endurance group controller using shared resource architecture
JP2022038210A (ja) * 2020-08-26 2022-03-10 キオクシア株式会社 メモリシステム及びメモリシステムの制御方法
CN112162935B (zh) * 2020-09-30 2021-06-08 深圳市时创意电子有限公司 存储芯片的数据处理方法、装置、计算机设备及存储介质
US11455124B2 (en) 2020-10-09 2022-09-27 Western Digital Technologies, Inc. Command prioritization to reduce latencies of zone commands
US11379305B2 (en) * 2020-11-16 2022-07-05 Western Digital Technologies, Inc. Fast verification of non-volatile data integrity
US11515891B2 (en) * 2020-12-22 2022-11-29 Intel Corporation Application of low-density parity-check codes with codeword segmentation
US11645009B2 (en) 2021-03-03 2023-05-09 Western Digital Technologies, Inc. Data storage with improved read parallelism
US11531499B2 (en) * 2021-03-04 2022-12-20 Western Digital Technologies, Inc. Data storage that controls decode performance by changing program PLC
CN114333930B (zh) * 2021-12-23 2024-03-08 合肥兆芯电子有限公司 多通道存储器存储装置、控制电路单元及其数据读取方法
US11838033B1 (en) 2022-09-20 2023-12-05 Western Digital Technologies, Inc. Partial speed changes to improve in-order transfer
CN117915400A (zh) * 2024-03-20 2024-04-19 荣耀终端有限公司 通信方法和通信装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3502583B2 (ja) * 1999-10-25 2004-03-02 松下電器産業株式会社 誤り訂正方法および誤り訂正装置
GB0031436D0 (en) * 2000-12-22 2001-02-07 Koninkl Philips Electronics Nv Method and apparatus for data reproduction
KR100790114B1 (ko) * 2002-03-16 2007-12-31 삼성전자주식회사 직교주파수 분할다중 접속 시스템에서 적응적 파일럿반송파 할당 방법 및 장치
CA2415105A1 (en) * 2002-12-24 2004-06-24 Voiceage Corporation A method and device for robust predictive vector quantization of linear prediction parameters in variable bit rate speech coding
US7505766B2 (en) * 2006-03-01 2009-03-17 Research In Motion Limited System for determining conducted radio frequency (RF) receiver sensitivity and related methods
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
CN201150078Y (zh) * 2007-12-10 2008-11-12 华中科技大学 一种环境感知可重构的移动终端通信处理器
US9152496B2 (en) 2007-12-21 2015-10-06 Cypress Semiconductor Corporation High performance flash channel interface
CN101673245B (zh) * 2008-09-09 2016-02-03 株式会社东芝 包括存储器管理装置的信息处理装置和存储器管理方法
JP5221332B2 (ja) * 2008-12-27 2013-06-26 株式会社東芝 メモリシステム
KR101616100B1 (ko) * 2009-09-25 2016-04-28 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
US8187936B2 (en) * 2010-06-30 2012-05-29 SanDisk Technologies, Inc. Ultrahigh density vertical NAND memory device and method of making thereof
US9118240B2 (en) * 2011-08-31 2015-08-25 Comarco Wireless Technologies, Inc. Power supply equipment providing multiple identification signals
CN102523076B (zh) * 2012-01-04 2014-05-14 西安电子科技大学 通用可配置的高速率Turbo码译码方法
US8832506B2 (en) * 2012-01-20 2014-09-09 International Business Machines Corporation Bit error rate based wear leveling for solid state drive memory
CN104303229B (zh) * 2012-05-18 2017-09-12 杜比实验室特许公司 用于维持与参数音频编码器相关联的可逆动态范围控制信息的系统
US9361167B2 (en) 2012-10-24 2016-06-07 SanDisk Technologies, Inc. Bit error rate estimation for wear leveling and for block selection based on data type
CN104572334B (zh) * 2013-10-14 2017-11-21 群联电子股份有限公司 解码方法、存储器存储装置与存储器控制电路单元
US20150169406A1 (en) 2013-12-16 2015-06-18 Sandisk Technologies Inc. Decoding techniques for a data storage device

Also Published As

Publication number Publication date
US10002086B1 (en) 2018-06-19
CN108205505A (zh) 2018-06-26
CN108205505B (zh) 2020-11-03
DE102017120960B4 (de) 2023-08-03
US20180173655A1 (en) 2018-06-21

Similar Documents

Publication Publication Date Title
DE102017120960B4 (de) Mehrkanal-Speicheroperationen auf der Grundlage von Bitfehlerraten
DE102017112013B4 (de) Adaptive Temperatur- und Speicherparameterdrosselung
DE102017128939A1 (de) System und Verfahren zum dynamischen und adaptiven Zusammenführen von Interrupts
DE102019116213A1 (de) Qualität von für Enterprise-Halbleiterlaufwerke optimierten dienstbasierten Arbitrierungen
DE112018000228T5 (de) System und Verfahren zur Verarbeitung und Arbitrierung von Übermittlungs- und Beendigungswarteschlangen
DE112018000180T5 (de) System und verfahren zum adaptiven senden frühzeitiger beendigung unter verwendung eines steuerungsspeicherpuffers
DE112016002631B4 (de) Speicherfunktionszustandsüberwachung
US10284233B2 (en) ECC adjustment based on dynamic error information
DE112018000834T5 (de) System und verfahren zur adaptiven befehlsabruf-aggregation
DE112018000233T5 (de) System und Verfahren zur Verarbeitung und Arbitrierung von Übermittlungs- und Beendigungswarteschlangen
DE112016000696B4 (de) Ablaufplanungsschema(ta) für eine Mehrchip-Speichervorrichtung
DE112016004148T5 (de) Systeme und Verfahren zur Befehlsautorisierung
DE112016004760T5 (de) System und Verfahren für direktes Schreiben auf einen MLC-Speicher
DE112018004251T5 (de) Adaptive vorrichtungsdienstqualität durch host-speicherpufferbereich
DE112018000181T5 (de) System und verfahren für die schnelle ausführung von kapselinternen befehlen
DE112016004629T5 (de) Datencodiertechniken für eine Vorrichtung
DE102020130044A1 (de) Techniken zum verhindern von lese-störung in nand-speicher
DE102018105871A1 (de) Speichersystem und Verfahren zur Vermeidung von Befehlskollisionen in nicht flüchtigen Datenspeichern mit expliziter Kachelgruppierung
DE112019000161T5 (de) Speicher-cache-verwaltung
DE112018000839T5 (de) Datenspeichervorrichtung, die eingerichtet ist, um Vorgänge unter Verwendung einer drahtlosen Schnittstelle durchzuführen
DE112015003569B4 (de) Verfahren und System zum Verwenden von NAND-Seitenpuffern, um die Übertragungspuffernutzung eines Festkörperlaufwerks zu verbessern
DE112015003147T5 (de) Selektive Leseverstärkeraktivierung
DE112021000776T5 (de) Verwaltung von schreib-operationen in einer nichtflüchtigen speichervorrichtung unter verwendung eines variablen vor-lese-spannungspegels
DE102021118940A1 (de) Speichersteuerung und speichereinrichtung mit derselben
DE102017120971A1 (de) Pipelineverzögerungsdetektion während des Decodierens durch eine Datenspeichereinrichtung

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 PARTNERSCHAFT MBB, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final