DE102021125786A1 - Speichercontroller, eine nichtflüchtige Speichervorrichtung und eine Speicherungsvorrichtung davon - Google Patents

Speichercontroller, eine nichtflüchtige Speichervorrichtung und eine Speicherungsvorrichtung davon Download PDF

Info

Publication number
DE102021125786A1
DE102021125786A1 DE102021125786.7A DE102021125786A DE102021125786A1 DE 102021125786 A1 DE102021125786 A1 DE 102021125786A1 DE 102021125786 A DE102021125786 A DE 102021125786A DE 102021125786 A1 DE102021125786 A1 DE 102021125786A1
Authority
DE
Germany
Prior art keywords
command
data
instruction
volatile memory
queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021125786.7A
Other languages
English (en)
Inventor
Wan-soo Choi
Young Wook Kim
Hyun Seon Park
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102021125786A1 publication Critical patent/DE102021125786A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/106Data output latches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1087Data input latches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Es ist ein Verfahren zum Betreiben eines Speichercontrollers bereitgestellt, wobei das Verfahren enthält: Empfangen eines ersten Befehls von einem ersten Host; Speichern des ersten Befehls in einer Warteschlange; wenn der erste Befehl eine höhere Priorität aufweist als ein zweiter Befehl, der gegenwärtig durchgeführt wird, Pausieren einer Operation des zweiten Befehls und Durchführen einer Leseoperation des ersten Befehls; und Fortsetzen der Operation des zweiten Befehls, nachdem die Leseoperation des ersten Befehls abgeschlossen ist.

Description

  • 1. Technisches Gebiet
  • Das vorliegende erfinderische Konzept bezieht sich auf einen Speicherungscontroller und eine nichtflüchtige Speichervorrichtung.
  • 2. Beschreibung der verwandten Technik
  • Ein Flash-Speicher ist ein elektronisches nichtflüchtiges Computerspeicher-Speichermedium, das elektrisch gelöscht und programmiert werden kann. Ein Flash-Speicher speichert Daten durch Verändern von Schwellenspannungen von Speicherzellen und liest die Daten unter Verwendung eines vorbestimmten Leseniveaus. Seit Kurzem sind Speicherungsvorrichtungen, die einen Flash-Speicher enthalten, wie ein Festkörperlaufwerk (SSD) und eine Speicherkarte, weitverbreitet. Dies ist, weil der Flash-Speicher ein nichtflüchtiges Element ist und hervorragende Eigenschaften aufweist, wie einen niedrigen Leistungsverbrauch und eine hohe Integration.
  • Ein Speichercontroller steuert Operationen des Flash-Speichers. Der Speichercontroller empfängt Befehle von einer Mehrzahl an Hosts und führt eine Operation des Befehls gemäß einer Sequenz durch, in der die Befehle empfangen werden.
  • Kurzfassung
  • Ausführungsformen des vorliegenden erfinderischen Konzepts stellen einen Speichercontroller bereit, der zum Empfangen einer Mehrzahl an Befehlen und Reduzieren einer Datenzugriffslatenz gemäß einer Host-Anforderung in einer komplexen Arbeitslastsituation imstande ist.
  • Ausführungsformen des vorliegenden erfinderischen Konzepts stellen außerdem eine nichtflüchtige Speichervorrichtung bereit, die zum Empfangen einer Mehrzahl an Befehlen und Reduzieren einer Datenzugriffslatenz gemäß einer Host-Anforderung in einer komplexen Arbeitslastsituation imstande ist.
  • Eine Ausführungsform des vorliegenden erfinderischen Konzepts stellt ein Verfahren zum Betreiben eines Speichercontrollers bereit, wobei das Verfahren aufweist: Empfangen eines ersten Befehls von einem ersten Host; Speichern des ersten Befehls in einer Warteschlange; wenn der erste Befehl eine höhere Priorität aufweist als ein zweiter Befehl, der gegenwärtig durchgeführt wird, Pausieren einer Operation des zweiten Befehls und Durchführen einer Leseoperation des ersten Befehls; und Fortsetzen der Operation des zweiten Befehls, nachdem die Leseoperation des ersten Befehls abgeschlossen ist.
  • Eine Ausführungsform des vorliegenden erfinderischen Konzepts stellt einen Speichercontroller bereit, der enthält: eine Host-Schnittstelle, die eine Mehrzahl an Befehlen empfängt und Daten, die den Befehlen entsprechen, ausgibt; eine Warteschlange, welche die an der Host-Schnittstelle empfangenen Befehle speichert; einen Scheduler, der eine Operationssequenz abhängig von einer Priorität der Befehle in der Warteschlange plant; und eine zentrale Verarbeitungseinheit (CPU), die Daten gemäß den Befehlen in der Warteschlange auf der Basis der geplanten Sequenz aus einer nichtflüchtigen Speichervorrichtung liest, wobei, wenn ein erster Befehl empfangen wird, der eiliger ist als ein zweiter Befehl, der gegenwärtig durchgeführt wird, eine Operation des zweiten Befehls angehalten wird und eine Operation des ersten Befehls durchgeführt wird.
  • Eine Ausführungsform des vorliegenden erfinderischen Konzepts stellt eine nichtflüchtige Speichervorrichtung bereit, die enthält: ein Speicherzellenarray, das eine Mehrzahl an Speicherzellen enthält und Daten speichert; eine Mehrzahl an Seitenpuffern, welche die aus dem Speicherzellenarray gelesenen Daten speichern; eine Befehlssteuerungseinheit, die als Reaktion auf einen ersten Befehl eine Operation eines zweiten Befehls, der gegenwärtig durchgeführt wird, verschiebt und eine Operation des ersten Befehls durchführt; eine Pufferauswählvorrichtung, die einen einer Mehrzahl an Seitenpuffern zum Speichern von Daten, die dem ersten Befehl oder dem zweiten Befehl entsprechen, unter Steuerung der Befehlssteuerungseinheit auswählt; und eine Ausgabesteuerungseinheit, die Daten eines ausgewählten Seitenpuffers unter Steuerung der Befehlssteuerungseinheit ausgibt.
  • Eine Ausführungsform des vorliegenden erfinderischen Konzepts stellt ein Datenzentrum bereit, das enthält: einen ersten Host, der einen ersten Lesebefehl sendet; einen zweiten Host, der einen zweiten Lesebefehl sendet; und eine Speicherungsvorrichtung, die eine Mehrzahl an Aufgaben erzeugt, die dem ersten und zweiten Befehl entsprechen, und eine Operationssequenz der Aufgaben gemäß einer Priorität zum Durchführen einer Operation plant, wobei, wenn eine eiligere zweite Aufgabe empfangen wird, während eine Operation der ersten Aufgabe durchgeführt wird, die Speicherungsvorrichtung die Operation der zweiten Aufgabe durchführt, bevor sie die Operation der ersten Aufgabe abschließt, und dann die Operation der ersten Aufgabe fortsetzt.
  • Figurenliste
    • 1 ist ein Diagramm zum Erläutern eines Speichersystems nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
    • 2 ist ein Diagramm zum Erläutern einer Speicherungsvorrichtung nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
    • 3 ist ein Diagramm zum Erläutern eines Speichercontrollers nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
    • 4 und 5 sind Diagramme zum Erläutern der Operation einer Warteschlange nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
    • 6 und 7 sind Diagramme zum Erläutern der Operation der Speicherungsvorrichtung nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
    • 8 und 9 sind Diagramme zum Erläutern der Operation der Speicherungsvorrichtung nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
    • 10 ist ein Diagramm zum Erläutern einer nichtflüchtigen Speichervorrichtung nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
    • 11 ist ein Diagramm zum Erläutern einer nichtflüchtigen Speichervorrichtung nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
    • 12 ist ein Diagramm zum Erläutern der Leseoperation der nichtflüchtigen Speichervorrichtung nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
    • 13, 14 und 15 sind Diagramme zum Erläutern der Leseoperation der nichtflüchtigen Speichervorrichtung nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
    • 16 ist ein Flussdiagramm zum Erläutern eines Verfahrens zum Betreiben des Speichercontrollers nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
    • 17 ist ein Diagramm zum Erläutern einer elektronischen Vorrichtung, die eine Speicherungsvorrichtung enthält, nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
    • 18 ist ein Diagramm zum Erläutern eines Datenzentrums, das eine Speicherungsvorrichtung enthält, nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
  • Ausführliche Beschreibung der Ausführungsformen
  • 1 ist ein Diagramm zum Erläutern eines Speichersystems nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
  • Das Speichersystem kann einen Host 1 und eine Speicherungsvorrichtung 10 enthalten. Ferner kann die Speicherungsvorrichtung 10 einen Speichercontroller 100 und eine nichtflüchtige Speichervorrichtung (NVM) 200 enthalten. Ferner kann der Host 1 nach einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts eine Mehrzahl an Hosts sein.
  • Die Speicherungsvorrichtung 10 kann ein Speichermedium zum Speichern von Daten als Reaktion auf die Anforderung vom Host 1 enthalten. Zum Beispiel kann die Speicherungsvorrichtung 10 mindestens eines von einem Festkörperlaufwerk (SSD), einem eingebetteten Speicher und einem entfernbaren externen Speicher sein. Wenn die Speicherungsvorrichtung 10 ein SSD ist, kann die Speicherungsvorrichtung 10 eine Vorrichtung sein, die einem nichtflüchtigen Speicherexpress(NVMe)-Standard entspricht. Wenn die Speicherungsvorrichtung 10 ein eingebetteter Speicher oder ein externer Speicher ist, kann die Speicherungsvorrichtung 10 eine Vorrichtung sein, die einem Universal-Flash-Speicher(UFS)- oder einem eingebetteten Multimediakarten(eMMC)-Standard entspricht. Der Host 1 und die Speicherungsvorrichtung 10 können jeweils Pakete gemäß dem Standardprotokoll, das eingesetzt wird, erzeugen und senden.
  • Der Speichercontroller 100 steuert einen Antrieb der nichtflüchtigen Speichervorrichtung 200. Der Speichercontroller 100 kann Operationen zum Lesen von Daten aus der nichtflüchtigen Speichervorrichtung 200 und zum Schreiben oder Löschen der Daten durchführen. Zusätzlich kann der Speichercontroller 100 eine Speicherzugriffsoperation der nichtflüchtigen Speichervorrichtung 200 und verschiedene Hintergrundoperationen für eine Verwaltung durchführen. Die spezifischen Details des Speichercontrollers 100 werden unten mit Bezug auf 3 beschrieben.
  • Wenn die nichtflüchtige Speichervorrichtung 200 der Speicherungsvorrichtung 10 einen Flash-Speicher enthält, kann der Flash-Speicher ein zweidimensionales (2D) NAND-Speicherarray oder ein dreidimensionales (3D) (oder vertikales) NAND(VNAND)-Speicherarray enthalten. Zum Beispiel kann die Speicherungsvorrichtung 10 verschiedene andere Arten von nichtflüchtigen Speichern enthalten. Zum Beispiel können ein magnetischer Direktzugriffsspeicher (MRAM), ein Spin-Transfer-Torque-MRAM, ein leitfähiger Brücken-RAM (CBRAM), ein ferroelektrischer RAM (FeRAM), ein Phasenübergangs-RAM (PRAM), ein resistiver RAM (RRAM) und verschiedene andere Arten von Speichern auf die Speicherungsvorrichtung 10 angewandt werden. Die spezifischen Details der nichtflüchtigen Speichervorrichtung 200 werden in 10 beschrieben.
  • 2 ist ein Diagramm zum Erläutern einer Speicherungsvorrichtung nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
  • Bezugnehmend auf 2 kann die Speicherungsvorrichtung 20 eine nichtflüchtige Speichervorrichtung 200 und einen Speichercontroller 100 enthalten. Die nichtflüchtige Speichervorrichtung 200 kann einer von nichtflüchtigen Speichervorrichtungen NVM11 bis NVMmn entsprechen, die mit dem Speichercontroller 100 mittels eines von einer Mehrzahl an Kanälen CH1 bis CHm kommunizieren. Die nichtflüchtige Speichervorrichtung 200 kann einen ersten, zweiten, dritten, vierten, fünften, sechsten, siebten und achten Pin P11, P12, P13, P14, P15, P16, P17 und P18, eine Speicherschnittstellenschaltung 210, eine Steuerlogik 220 und ein Speicherzellenarray 230 enthalten.
  • Die Speicherschnittstellenschaltung 210 kann ein Chipaktivierungssignal nCE durch den ersten Pin P11 vom Speichercontroller 100 empfangen. Die Speicherschnittstellenschaltung 210 kann Signale durch den zweiten bis achten Pin P12 bis P18 gemäß dem Chipaktivierungssignal nCE an den Speichercontroller 100 senden und von jenem empfangen. Wenn zum Beispiel das Chipaktivierungssignal nCE in einem Aktivierungszustand (z.B. einem niedrigen Pegel) ist, kann die Speicherschnittstellenschaltung 210 Signale durch den zweiten bis achten Pin P12 bis P18 an den Speichercontroller 100 senden und von jenem empfangen.
  • Die Speicherschnittstellenschaltung 210 kann ein Command-Latch-Enable-Signal CLE, ein Address-Latch-Enable-Signal ALE und ein Schreibaktivierungssignal nWE durch den zweiten bis vierten Pin P12 bis P14 vom Speichercontroller 100 empfangen. Die Speicherschnittstellenschaltung 210 kann durch einen siebten Pin P17 ein Datensignal DQ vom Speichercontroller 100 empfangen oder das Datensignal DQ an den Speichercontroller 100 senden. Der Befehl CMD, die Adresse ADDR und die Daten DATA können durch das Datensignal DQ übertragen werden. Zum Beispiel kann das Datensignal DQ durch eine Mehrzahl an Datensignalleitungen übertragen werden. In diesem Fall kann der siebte Pin P17 eine Mehrzahl an Pins enthalten, die der Mehrzahl an Datensignalleitungen entspricht.
  • Die Speicherschnittstellenschaltung 210 kann den Befehl CMD auf der Basis von Umschaltzeitpunkten des Schreibaktivierungssignals nWE aus dem Datensignal DQ erhalten, das in einem Aktivierungszustand (z.B. einem hohen Pegelzustand) des Command-Latch-Enable-Signals CLE empfangen wird. Die Speicherschnittstellenschaltung 210 kann die Adresse ADDR auf der Basis der Umschaltzeitpunkte des Schreibaktivierungssignals nWE aus dem Datensignal DQ erhalten, das im Aktivierungszustand (z.B. einem hohen Pegelzustand) des Address-Latch-Enable-Signals ALE empfangen wird.
  • In einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts hält das Schreibaktivierungssignal nWE einen statischen Zustand (z.B. einen hohen Pegel oder einen niedrigen Pegel) (hält diesen z.B. aufrecht) und kann dann zwischen dem hohen Pegel und dem niedrigen Pegel umgeschaltet werden. Zum Beispiel kann das Schreibaktivierungssignal nWE zu einem Zeitpunkt umgeschaltet werden, wenn der Befehl CMD oder die Adresse ADDR gesendet werden. Dementsprechend kann die Speicherschnittstellenschaltung 210 den Befehl CMD oder die Adresse ADDR auf der Basis der Umschaltzeitpunkte des Schreibaktivierungssignals nWE erhalten.
  • Die Speicherschnittstellenschaltung 210 kann ein Leseaktivierungssignal nRE durch einen fünften Pin P15 vom Speichercontroller 100 empfangen. Die Speicherschnittstellenschaltung 210 kann durch einen sechsten Pin P16 das Daten-Strobe-Signal DQS vom Speichercontroller 100 empfangen oder das Daten-Strobe-Signal DQS an den Speichercontroller 100 senden.
  • In einer Daten(DATA)-Ausgabeoperation der nichtflüchtigen Speichervorrichtung 200 kann die Speicherschnittstellenschaltung 210 das umgeschaltete Leseaktivierungssignal nRE durch den fünften Pin P15 empfangen, bevor sie die Daten DATA ausgibt. Die Speicherschnittstellenschaltung 210 kann das umgeschaltete Daten-Strobe-Signal DQS gemäß dem Umschalten des Leseaktivierungssignals nRE erzeugen. Zum Beispiel kann die Speicherschnittstellenschaltung 210 das Daten-Strobe-Signal DQS erzeugen, das ein Umschalten nach einer vorbestimmten Verzögerung (z.B. tDQSRE) in Bezug auf die Umschaltstartzeit des Leseaktivierungssignals nRE startet. Die Speicherschnittstellenschaltung 210 kann ein Datensignal DQ, das die Daten DATA enthält, auf der Basis des Umschaltzeitpunkts des Daten-Strobe-Signals DQS senden. Dementsprechend können die Daten DATA zum Umschaltzeitpunkt des Daten-Strobe-Signals DQS angeordnet und an den Speichercontroller 100 gesendet werden.
  • In einer Daten(DATA)-Eingabeoperation der nichtflüchtigen Speichervorrichtung 200, wenn das Datensignal DQ, das die Daten DATA enthält, vom Speichercontroller 100 empfangen wird, kann die Speicherschnittstellenschaltung 210 das umgeschaltete Daten-Strobe-Signal DQS zusammen mit den Daten DATA vom Speichercontroller 100 empfangen. Die Speicherschnittstellenschaltung 210 kann die Daten DATA auf der Basis des Umschaltzeitpunkts des Daten-Strobe-Signals DQS aus dem Datensignal DQ erhalten. Zum Beispiel kann die Speicherschnittstellenschaltung 210 die Daten DATA durch Abtasten des Datensignals DQ an einer ansteigenden Flanke und einer abfallenden Flanke des Daten-Strobe-Signals DQS erhalten.
  • Die Speicherschnittstellenschaltung 210 kann ein Ready/Busy-Ausgabesignal nR/B durch einen achten Pin P18 an den Speichercontroller 100 senden. Die Speicherschnittstellenschaltung 210 kann die Zustandsinformationen der Speichervorrichtung 200 durch das Ready/Busy-Ausgabesignal nR/B an den Speichercontroller 100 senden. Wenn die nichtflüchtige Speichervorrichtung 200 in einem Busy-Zustand ist (z.B. wenn die internen Operationen der Speichervorrichtung 200 durchgeführt werden), kann die Speicherschnittstellenschaltung 210 das Ready/Busy-Ausgabesignal nR/B, das den Busy-Zustand angibt, an den Speichercontroller 100 senden. Wenn die Speichervorrichtung 200 im Ready-Zustand ist (z.B. wenn die internen Operationen der Speichervorrichtung 200 nicht durchgeführt werden oder abgeschlossen sind), kann die Speicherschnittstellenschaltung 210 das Ready/Busy-Ausgabesignal nR/B, das den Ready-Zustand angibt, an den Speichercontroller 100 senden. Zum Beispiel kann die Speicherschnittstellenschaltung 210 das Ready/Busy-Ausgabesignal nR/B, das den Busy-Zustand (z.B. einen niedrigen Pegel) angibt, an den Speichercontroller 100 senden, während die Speichervorrichtung 200 die Daten DATA als Reaktion auf einen Seitenlesebefehl aus dem Speicherzellenarray 230 liest. Zum Beispiel kann die Speicherschnittstellenschaltung 210 das Ready/Busy-Ausgabesignal nR/B, das den Busy-Zustand angibt, an den Speichercontroller 100 senden, während die Speichervorrichtung 200 die Daten DATA als Reaktion auf eine Programmieranweisung in das Speicherzellenarray 230 programmiert.
  • Die Steuerlogik 220 kann verschiedene Operationen der Speichervorrichtung 200 steuern. Die Steuerlogik 220 kann den Befehl/die Adresse CMD/ADDR von der Speicherschnittstellenschaltung 210 empfangen. Die Steuerlogik 220 kann Steuersignale zum Steuern anderer Komponenten der Speichervorrichtung 200 gemäß dem empfangenen Befehl/der empfangenen Adresse CMD/ADDR erzeugen. Zum Beispiel kann die Steuerlogik 220 verschiedene Steuersignale zum Programmieren der Daten DATA in das Speicherzellenarray 230 oder Lesen der Daten DATA aus dem Speicherzellenarray 230 erzeugen.
  • Das Speicherzellenarray 230 kann die aus der Speicherschnittstellenschaltung 210 erhaltenen Daten DATA gemäß der Steuerung der Steuerlogik 220 speichern. Das Speicherzellenarray 230 kann die gespeicherten Daten DATA gemäß der Steuerung der Steuerlogik 220 an die Speicherschnittstellenschaltung 210 ausgeben.
  • Das Speicherzellenarray 230 kann eine Mehrzahl an Speicherzellen enthalten. Zum Beispiel können die Mehrzahl an Speicherzellen Flash-Speicherzellen sein. Das vorliegende erfinderische Konzept ist jedoch nicht darauf beschränkt und die Speicherzellen können eine RRAM-Zelle, eine FRAM-Zelle, eine Thyristor-RAM(TRAM)-Zelle und eine MRAM-Zelle sein. Nachfolgend werden Ausführungsformen des vorliegenden erfinderischen Konzepts mit einem Fokus auf einer Ausführungsform beschrieben, in der die Speicherzellen NAND-Flash-Speicherzellen sind.
  • Der Speichercontroller 100 kann einen ersten, zweiten, dritten, vierten, fünften, sechsten, siebten und achten Pin P21, P22, P23, P24, P25, P26, P27 und P28 und eine Controllerschnittstellenschaltung 110 enthalten. Der erste bis achte Pin P21 bis P28 können dem ersten bis achten Pin P11 bis P18 der nichtflüchtigen Speichervorrichtung 200 entsprechen.
  • Die Controllerschnittstellenschaltung 110 kann das Chipaktivierungssignal nCE durch den ersten Pin P21 an die nichtflüchtige Speichervorrichtung 200 senden. Die Controllerschnittstellenschaltung 110 kann Signale durch den zweiten bis achten Pin P22 bis P28 an die nichtflüchtige Speichervorrichtung 200, die durch das Chipaktivierungssignal nCE ausgewählt wird, senden oder von jener empfangen.
  • Die Controllerschnittstellenschaltung 110 kann das Command-Latch-Enable-Signal CLE, das Address-Latch-Enable-Signal ALE und das Schreibaktivierungssignal nWE durch den zweiten bis vierten Pin P22 bis P24 an die nichtflüchtige Speichervorrichtung 200 senden. Die Controllerschnittstellenschaltung 110 kann das Datensignal DQ durch den siebten Pin P27 an die Speichervorrichtung 200 senden oder kann das Datensignal DQ von der nichtflüchtigen Speichervorrichtung 200 empfangen.
  • Die Controllerschnittstellenschaltung 110 kann das Datensignal DQ, das den Befehl CMD oder die Adresse ADDR enthält, zusammen mit dem umgeschalteten Aktivierungssignal nWE an die nichtflüchtige Speichervorrichtung 200 senden. Die Controllerschnittstellenschaltung 110 kann das Datensignal DQ, das den Befehl CMD enthält, durch Senden des Command-Latch-Enable-Signals CLE mit dem aktivierten Zustand an die nichtflüchtige Speichervorrichtung 200 senden und kann das Datensignal DQ, das die Adresse ADDR enthält, durch Senden des Address-Latch-Enable-Signals ALE mit dem aktivierten Zustand an die Speichervorrichtung 200 senden.
  • Die Controllerschnittstellenschaltung 110 kann das Leseaktivierungssignal nRE durch den fünften Pin P25 an die Speichervorrichtung 200 senden. Die Controllerschnittstellenschaltung 110 kann das Daten-Strobe-Signal DQS durch den sechsten Pin P26 von der nichtflüchtigen Speichervorrichtung 200 empfangen oder kann das Daten-Strobe-Signal DQS durch den sechsten Pin P26 an die nichtflüchtige Speichervorrichtung 200 senden.
  • In der Daten(DATA)-Ausgabeoperation der nichtflüchtigen Speichervorrichtung 200 kann die Controllerschnittstellenschaltung 110 ein umgeschaltetes Leseaktivierungssignal nRE erzeugen und das Leseaktivierungssignal nRE an die nichtflüchtige Speichervorrichtung 200 senden. Zum Beispiel kann die Controllerschnittstellenschaltung 110 das Leseaktivierungssignal nRE erzeugen, das sich vom statischen Zustand (z.B. einem hohen Pegel oder einem niedrigen Pegel) zum umgeschalteten Zustand ändert, bevor die Daten DATA ausgegeben werden. Dementsprechend kann das umgeschaltete Daten-Strobe-Signal DQS auf der Basis des Leseaktivierungssignals nRE in der nichtflüchtigen Speichervorrichtung 200 erzeugt werden. Die Controllerschnittstellenschaltung 110 kann das Datensignal DQ, das die Daten DATA enthält, zusammen mit dem umgeschalteten Daten-Strobe-Signal DQS von der nichtflüchtigen Speichervorrichtung 200 empfangen. Die Controllerschnittstellenschaltung 110 kann die Daten DATA auf der Basis des Umschaltzeitpunkts des Daten-Strobe-Signals DQS aus dem Datensignal DQ erhalten.
  • In der Daten(DATA)-Eingabeoperation der nichtflüchtigen Speichervorrichtung 200 kann die Controllerschnittstellenschaltung 110 ein umgeschaltetes Daten-Strobe-Signal DQS erzeugen. Zum Beispiel kann die Controllerschnittstellenschaltung 110 ein Daten-Strobe-Signal DQS erzeugen, das sich vom statischen Zustand (z.B. einem hohen Pegel oder einem niedrigen Pegel) zum Umschaltzustand ändert, bevor die Daten DATA gesendet werden. Die Controllerschnittstellenschaltung 110 kann das Datensignal DQ, das die Daten DATA enthält, auf der Basis des Umschaltzeitpunkts des Daten-Strobe-Signals DQS an die nichtflüchtige Speichervorrichtung 200 senden.
  • Die Controllerschnittstellenschaltung 110 kann ein Ready/Busy-Ausgabesignal nR/B durch den achten Pin P28 von der nichtflüchtigen Speichervorrichtung 200 empfangen. Die Controllerschnittstellenschaltung 110 kann die Zustandsinformationen der nichtflüchtigen Speichervorrichtung 200 auf der Basis des Ready/Busy-Ausgabesignals nR/B differenzieren.
  • 3 ist ein Diagramm zum Erläutern eines Speichercontrollers nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
  • Der Speichercontroller 100 kann eine Host-Schnittstelle 115, eine Speicherschnittstellenschaltung 110 und eine zentrale Verarbeitungseinheit (CPU) 120 enthalten. Ferner kann der Speichercontroller 100 einen Pufferspeicher 150, eine Fehlerkorrekturcode(ECC)-Engine 160 und eine Flash-Übersetzungsschicht (FTL) 170 enthalten. Der Speichercontroller 100 kann ferner einen Arbeitsspeicher enthalten, in den die FTL 170 geladen wird, und wenn die CPU 120 eine Flash-Übersetzungsschicht ausführt, können Datenaufzeichnungs- und -leseoperationen der nichtflüchtigen Speichervorrichtung 200 gesteuert werden.
  • Die Host-Schnittstelle 115 kann Pakete an den Host 1 (siehe 1) senden und von jenem empfangen. Die vom Host 1 an die Host-Schnittstelle 115 gesendeten Pakete können einen Befehl, in die nichtflüchtige Speichervorrichtung 200 zu schreibende Daten oder dergleichen enthalten. Die von der Host-Schnittstelle 115 an den Host 1 gesendeten Pakete können eine Antwort auf den Befehl, aus der nichtflüchtigen Speichervorrichtung 200 gelesene Daten oder dergleichen enthalten. Die Speicherschnittstellenschaltung 110 kann die in die nichtflüchtige Speichervorrichtung 200 zu schreibenden Daten an die nichtflüchtige Speichervorrichtung 200 senden oder die gelesenen Daten von der nichtflüchtigen Speichervorrichtung 200 empfangen. Solch eine Speicherschnittstellenschaltung 110 kann derart umgesetzt werden, dass sie einem Standardprotokoll, wie Toggle oder Open NAND Flash Interface Working Group (ONFI), entspricht.
  • Die CPU 120 steuert den Gesamtbetrieb des Speichercontrollers 100. Zum Beispiel kann die CPU 120 Operationen im Zusammenhang mit einem Antrieb der nichtflüchtigen Speichervorrichtung 200 steuern. Mit anderen Worten kann die CPU 120 derart gesteuert werden, dass sie die Daten gemäß dem von der Host-Schnittstelle 115 empfangenen Befehl (zum Beispiel einem Lesebefehl) aus der nichtflüchtigen Speichervorrichtung 200 liest.
  • Die CPU 120 kann Befehle in der Sequenz, die von einem Scheduler 130 nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts geplant wird, an die nichtflüchtige Speichervorrichtung 200 ausgeben. Wenn zum Beispiel die Priorität eines Befehls CMD1, der vom Host 1 empfangen wird, eilig ist, kann die CPU 120 die Operation eines Befehls CMD2, der gegenwärtig durchgeführt wird, unterbrechen und die Operation des Befehls CMD1 bevorzugt durchführen. Wenn zum Beispiel die Operation des Befehls CMD1 abgeschlossen ist, nimmt die CPU 120 die Operation des unterbrochenen Befehls CMD2 wieder auf.
  • Nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts kann der Befehl CMD2 ein interner Befehl für die Verwaltung einer nichtflüchtigen Speichervorrichtung sein und der Befehl CMD2 kann ein vom Host angeforderter Lesebefehl sein. Der interne Befehl kann zum Beispiel ein Befehl im Zusammenhang mit einer Speicherbereinigungsoperation sein. Nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts ist der Befehl CMD2 ein Befehl, der von einem ersten Host empfangen wird, der Befehl CMD1 ist ein Befehl, der von einem zweiten Host empfangen wird, und die Anforderung des zweiten Hosts kann derart eingestellt sein, dass sie Vorrang gegenüber der Anforderung des ersten Hosts hat.
  • Bevor zum Beispiel die Operation des Befehls CMD2 wiederaufgenommen wird, wenn es einen Befehl CMD3 gibt, der anschließend an den Befehl CMD1 durchgeführt werden soll, führt die CPU 120 die Operation des Befehls CMD3 durch und nimmt dann die Operation des Befehls CMD2 wieder auf.
  • Der Befehl CMD3 kann ein Befehl sein, der vom selben Host empfangen wird und im Zusammenhang ist mit dem Befehl CMD1. Zusätzlich kann der Befehl CMD3 ein Befehl sein, der von einem anderen Host, z.B. einem dritten Host, empfangen worden ist, jedoch eiliger ist als der Befehl CMD2.
  • Der Scheduler 130 prüft die Priorität von durch die Host-Schnittstelle 115 empfangenen Befehlen und plant deren Operationssequenz abhängig von einer Priorität nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts. Der Scheduler 130 erzeugt als Reaktion auf durch die Host-Schnittstelle 115 empfangene Befehle eine Aufgabe, die erforderlich ist zum Erzeugen von Befehlen, welche an die nichtflüchtige Speichervorrichtung 200 übermittelt werden sollen, und kann eine Steuerung derart durchführen, dass die Aufgaben gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts durch die CPU 120 verarbeitet werden.
  • Eine Warteschlange 140 speichert eine Mehrzahl an Befehlen, die von der Host-Schnittstelle 115 empfangen werden, nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts. Die Warteschlange 140 kann eine Mehrzahl an Aufgaben speichern, die erforderlich sind zum Erzeugen von Befehlen, welche an die nichtflüchtige Speichervorrichtung 200 übermittelt werden sollen, nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts. Nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts kann die Warteschlange 140 eine Mehrzahl an Warteschlangen sein.
  • Zum Beispiel kann der Scheduler 130 einen eiligeren Befehl in einer ersten Warteschlange (Queue1 oder Eilige Warteschlange) auf der Basis des Befehls CMD2, der gegenwärtig durchgeführt wird, speichern und kann einen nicht-eiligen Befehl in einer zweiten Warteschlange (Queue2 oder Normale Warteschlange) auf der Basis des Befehls CMD2, der gegenwärtig durchgeführt wird, speichern.
  • Wenn zum Beispiel der Befehl CMD1 in der ersten Warteschlange gespeichert wird, während der Befehl CMD2 durchgeführt wird, kann der Scheduler 130 die CPU 120 darüber benachrichtigen, dass der Befehl CMD1 in der ersten Warteschlange ist. Die CPU 120 kann die nichtflüchtige Speichervorrichtung 200 derart steuern, dass die Operation des Befehls CMD2 als Reaktion auf die Benachrichtigung des Schedulers 130 verschoben (oder angehalten) wird, und die Operation des Befehls CMD1 bevorzugt durchführen.
  • Wenn der Scheduler 130 einen Befehl CMD3 empfängt, der im Anschluss an den Befehl CMD1 durchgeführt werden muss, bevor die Operation des Befehls CMD2 wiederaufgenommen wird, kann der Scheduler 130 den Befehl CMD3 in der ersten Warteschlange speichern und die CPU 120 darüber benachrichtigen, dass der Befehl CMD3 in der ersten Warteschlange ist. Zu diesem Zeitpunkt kann der Befehl CMD3 außerdem ein Befehl sein, der abhängig ist von dem Befehl CMD1 nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts. Zum Beispiel können der Befehl CMD1 und der Befehl CMD3 eine aufgabenabhängige erste Aufgabe Task1 und zweite Aufgabe Task2 unter einer Mehrzahl an Aufgaben sein, die als Reaktion auf den vom ersten Host empfangenen Befehl erzeugt werden. Zum Beispiel kann die erste Aufgabe Task1 eine Adressen-Mapping(L2P)-Aufgabe enthalten, die eine vom Host 1 bereitgestellte Logikadresse einer physikalischen Adresse zuordnet, die in der nichtflüchtigen Speichervorrichtung 200 verwendet wird, und die zweite Aufgabe Task2 kann eine Aufgabe enthalten, die einen Pegel einer Lesespannung bestimmt, die an eine nichtflüchtige Speicherzelle der nichtflüchtigen Speichervorrichtung 200 angelegt wird.
  • Alternativ kann der Scheduler 130 einen Befehl CMD3 mit einer höheren Priorität als ein Befehl CMD2 nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts aufweisen. Zum Beispiel kann eine Mehrzahl an Hosts 1 jeweilige Prioritäten nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts aufweisen. Wenn der Befehl CMD2 vom ersten Host angefordert wird und der Befehl CMD3 vom zweiten Host angefordert wird, kann der zweite Host eine höhere Priorität aufweisen als der erste Host. In diesem Fall kann der Scheduler 130 eine Planung derart durchführen, dass die Befehle des zweiten Hosts, z.B. der Befehl CMD3 im obigen Beispiel, zunächst früher verarbeitet werden als die Befehle des ersten Hosts, z.B. der Befehl CMD2 im obigen Beispiel. Um wie oben beschrieben zu planen, unterscheidet der Scheduler 130 zwischen Befehlen, die vor dem Befehl, der gegenwärtig durchgeführt wird, verarbeitet werden sollen, und Befehlen, die nicht zuerst verarbeitet werden müssen, und kann diese abhängig von der ihnen zugeordneten Priorität in unterschiedlichen Warteschlangen 140 speichern.
  • Der Pufferspeicher 150 kann ein Arbeitsspeicher des Speichercontrollers 100 sein. Der Pufferspeicher 150 kann einen flüchtigen Speicher enthalten, wie einen statischen RAM (SRAM) und/oder einen dynamischen RAM (DRAM), kann jedoch auch einen nichtflüchtigen Speicher enthalten, wie einen Flash-Speicher, einen PRAM und/oder einen RRAM.
  • Die ECC-Engine 160 kann Fehlererfassungs- und -korrekturfunktionen der Lesedaten, die aus der nichtflüchtigen Speichervorrichtung 200 gelesen werden, durchführen. Zum Beispiel kann die ECC-Engine 160 Paritätsbits für die Schreibdaten, welche in die nichtflüchtigen Speichervorrichtung 200 geschrieben werden sollen, erzeugen und die somit erzeugten Paritätsbits können zusammen mit den Schreibdaten in der nichtflüchtigen Speichervorrichtung 200 gespeichert werden. Wenn die Daten aus der nichtflüchtigen Speichervorrichtung 200 gelesen werden, kann die ECC-Engine 160 einen Fehler der Lesedaten unter Verwendung der Paritätsbits, die aus der nichtflüchtigen Speichervorrichtung 200 zusammen mit den Lesedaten gelesen werden, korrigieren und die Lesedaten mit einem korrigierten Fehler ausgeben.
  • Die Flash-Übersetzungsschicht (FTL) 170 kann verschiedene Funktionen durchführen, wie ein Adressen-Mapping, einen Abnutzungsgrad und eine Freispeichersammlung. Die Adressen-Mapping-Operation ist eine Operation zum Ändern einer Logikadresse, die von einem Host empfangen wird, in eine physikalische Adresse, die zum tatsächlichen Speichern der Daten in der nichtflüchtigen Speichervorrichtung 200 verwendet wird. Der Abnutzungsgrad ist eine Technik zum Sicherstellen, dass Blöcke in der nichtflüchtigen Speichervorrichtung 200 gleichmäßig verwendet werden, um eine exzessive Verschlechterung eines bestimmten Blocks zu verhindern, und kann zum Beispiel durch eine Firmware-Technik zum Ausgleichen der Löschzählungen der physikalischen Blöcke umgesetzt werden. Die Freispeichersammlung ist eine Technik zum Sicherstellen einer verfügbaren Kapazität in der nichtflüchtigen Speichervorrichtung 200 durch ein Verfahren zum Kopieren der gültigen Daten des Blocks in einen neuen Block und dann Löschen des bestehenden Blocks.
  • Die Speicherschnittstellenschaltung 110 kann durch ein Direct-Attached-Storage(DAS)-Verfahren umgesetzt werden, in dem die nichtflüchtige Speichervorrichtung 200 mit einem dedizierten Kabel direkt verbunden ist. Ferner kann die Speicherschnittstellenschaltung 110 zum Beispiel durch verschiedene Schnittstellenverfahren umgesetzt werden, wie ein Advanced Technology Attachment (ATA), ein Serial ATA (SATA), ein externes SATA (e-SATA), eine Small Computer Small Interface (SCSI), eine Serial Attached SCSI (SAS), eine Peripheral Component Interconnection (PCI), einen PCI-Express (PCIe), einen NVM-Express (NVMe), ein IEEE 1394, einen Universal Serial Bus (USB), eine Secure-Digital(SD)-Karte, eine Multimediakarte (MMC), eine eingebettete Multimediakarte (eMMC), einen Universal Flash Storage (UFS), einen eingebetteten Universal Flash Storage (eUFS) und eine Compact-Flash(CF)-Kartenschnittstelle.
  • 4 und 5 sind Diagramme zum Erläutern der Operation einer Warteschlange nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts. Der Einfachheit der Erläuterung halber wird angenommen, dass der Befehl, der gegenwärtig durchgeführt wird, NCMD1 ist und die Befehle in der Sequenz von T1 bis T4 empfangen werden.
  • Bezugnehmend auf 4 und 5 kann die Warteschlange 140 eine erste Warteschlange (141 oder eine eilige Warteschlange) und eine zweite Warteschlange (145 oder eine normale Warteschlange) enthalten. Der Scheduler 130 kann auf der Basis des Befehls NCMD1, der zum Zeitpunkt T1 empfangen wird, Befehle mit eiliger Priorität in der eiligen Warteschlange 141 speichern und kann Befehle mit nicht-eiliger Priorität in der normalen Warteschlange 145 speichern.
  • Zum Beispiel bezugnehmend auf 4 ist ein Fall vorgeschlagen, in dem normale Befehle NCMD1, NCMD2 und NCMD3 zu den Zeitpunkten T1, T2 und T3 empfangen werden und ein eiliger Befehl UCMD1 zum Zeitpunkt T4 empfangen wird. In diesem Fall kann der eilige Befehl UCMD1 in der eiligen Warteschlange gespeichert werden, da der Befehl UCMD1 eine höhere Operationspriorität aufweist (mit anderen Worten: eiliger ist) als der Befehl NCMD1, der gegenwärtig durchgeführt wird.
  • Wenn UCMD 1 empfangen wird, während NCMD 1 gegenwärtig durchgeführt wird, speichert der Scheduler 130 UCMD1 in der eiligen Warteschlange 141 und benachrichtigt die CPU 120 darüber, dass UCMD1 in der eiligen Warteschlange 141 ist. Die CPU 120 verschiebt (oder hält) die Leseoperation von NCMD1, selbst bevor die Leseoperation NCMD1, die gegenwärtig durchgeführt wird, abgeschlossen ist. Als nächstes steuert die CPU 120 die nichtflüchtige Speichervorrichtung 200 derart, dass sie die Operation von UCMD1, welcher in der eiligen Warteschlange 141 vorliegt, zuerst durchführt. Zum Beispiel kann die nichtflüchtige Speichervorrichtung 200 eine Leseoperation von UCMD1 durchführen, während die Leseoperation NCMD1 pausiert ist.
  • Wenn die anschließend empfangenen NCMD2 und NCMD3 eine niedrigere Priorität aufweisen als der verschobene NCMD1, speichert der Scheduler 130 diese in der normalen Warteschlange 145 und kann die Operationssequenz derart planen, dass die Leseoperationen von NCMD2 und NCMD3 durchgeführt werden, nachdem die Leseoperation von NCMD1 abgeschlossen ist. Mit anderen Worten, wenn der eilige Befehl UCMD1 nicht empfangen wird, werden die Leseoperationen von NCMD2 und NCMD3 durchgeführt, nachdem die Leseoperation von NCMD1 abgeschlossen ist. Zusätzlich, wenn die Leseoperation NCMD1 bis zum Abschluss der Leseoperation von UCMD1 pausiert ist, werden die Leseoperationen von NCMD2 und NCMD3 nicht durchgeführt, bis nachdem die Leseoperation von NCMD1 wiederaufgenommen und abgeschlossen ist.
  • Als ein weiteres Beispiel, bezugnehmend auf 5, wird ein Fall angenommen, in dem die Befehle als die normalen Befehle NCMD1 und NCMD2 zu den Zeitpunkten T1 und T2 empfangen werden und die eiligen Befehle UCMD1 und UCMD2 zu den Zeitpunkten T3 und T4 empfangen werden. Wenn UCMD1 empfangen wird, während NCMD 1 gegenwärtig durchgeführt wird, wird UCMD1 geprüft, um zu sehen, ob er eine höhere Operationspriorität als NCMD1 aufweist. Wenn UCMD1 der Befehl ist, der vor NCMD1 verarbeitet werden muss, speichert der Scheduler 130 UCMD1 in der eiligen Warteschlange 141 und benachrichtigt die CPU 120 über UCMD1. Die CPU 120 prüft den in der eiligen Warteschlange 141 gespeicherten Befehl UCMD1 und verschiebt die Leseoperation von NCMD1, die gegenwärtig durchgeführt wird. Als nächstes steuert die CPU 120 die nichtflüchtige Speichervorrichtung 200 derart, dass sie die Leseoperation von UCMD1, welcher in der eiligen Warteschlange 141 vorliegt, durchführt.
  • Selbst wenn UCMD2 (T4) später empfangen wird als NCMD2 (T2), wenn UCMD2 eine höhere Priorität aufweist als NCMD1 und NCMD2, speichert der Scheduler 130 UCMD2 in der eiligen Warteschlange 141 und gibt UCMD2 an die nichtflüchtige Speichervorrichtung 200 aus, bevor NCMD2 durchgeführt wird. Die nichtflüchtige Speichervorrichtung 200 kann die Leseoperation von UCMD2 bevorzugt durchführen, bevor sie die verschobene Leseoperation von NCMD1 wiederaufnimmt. Zum Beispiel kann UCMD2 ein Befehl sein, der eine höhere Priorität aufweist als NCMD1 und NCMD2 und zuerst verarbeitet wird. Zum Beispiel kann UCMD2 ein Befehl sein, der UCMD1 zugeordnet ist und zuerst verarbeitet werden muss. Der zugeordnete Befehl kann zum Beispiel Bezug zu einer Lokalität eines Datenzugriffs der nichtflüchtigen Speichervorrichtung 200 haben. Alternativ kann der zugeordnete Befehl zum Beispiel Bezug zu einer Aufgabenabhängigkeit zwischen Befehlen haben. Alternativ, wenn die Priorität von UCMD2 weniger eilig ist als NCMD1 und eiliger ist als NCMD2, nachdem die Leseoperation von UCMD1 abgeschlossen ist, wird die Leseoperation von NCMD1 wiederaufgenommen und abgeschlossen und danach kann die Leseoperation von UCMD2 durchgeführt werden. Die Leseoperation von NCMD2 kann bei Abschluss der Leseoperation von UCMD2 durchgeführt werden.
  • 6 und 7 sind Diagramme zum Erläutern der Operation der Speicherungsvorrichtung nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
  • Der Speichercontroller 100 kann jeden Befehl von einer Mehrzahl an Hosts empfangen. Wenn zum Beispiel der Lesebefehl vom ersten Host (Host1) und zweiten Host (Host2) empfangen wird, kann der Speichercontroller 100 eine Mehrzahl an Aufgaben erzeugen, die jedem Lesebefehl entsprechen. Es wird zum Beispiel angenommen, dass TID11 und TID12 bis TIDlm als Reaktion auf den Lesebefehl des ersten Hosts erzeugt werden und TID21 und TID22 bis TID2n als Reaktion auf den Lesebefehl des zweiten Hosts erzeugt werden (wobei m und n natürliche Zahlen sind).
  • Nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts kann eine Priorität einer Operationssequenz zwischen den Hosts in einer Mehrzahl an Hosts eingestellt sein. In dem gezeigten Beispiel wird angenommen, dass eine Host-spezifische Operationspriorität des ersten Hosts P1 ist und eine Host-spezifische Operationspriorität des zweiten Hosts P2 ist. Die Informationen über eine Host-spezifische Priorität können in Lesebefehlen enthalten sein, die vom Host nach einer Ausführungsform des vorliegenden erfinderischen Konzepts gesendet werden, und die Informationen über eine Host-spezifische Priorität können nach einer weiteren Ausführungsform des vorliegenden erfinderischen Konzepts im Speichercontroller 100 gespeichert sein.
  • Die vom Speichercontroller 100 erzeugte Mehrzahl an Aufgaben kann Informationen über eine Host-spezifische Priorität enthalten. Die Informationen über eine Host-spezifische Priorität können zum Beispiel in der Form eines Tags oder eines Datenkopfes enthalten sein und können Informationen sein, die im Speichercontroller 100 als eine Zuordnungstabelle gespeichert werden oder zum Beispiel in einem Register oder dergleichen gespeichert werden.
  • Als ein Beispiel wird angenommen, dass die Host-spezifische Priorität P2 des zweiten Hosts höher (oder eiliger) ist als die Host-spezifische Priorität P1 des ersten Hosts. Zusätzlich kann der Speichercontroller 100 eine Mehrzahl an Aufgaben als Reaktion auf den von jedem Host empfangenen Lesebefehl gleichzeitig oder sequenziell erzeugen. Es wird zum Beispiel angenommen, dass jede der Aufgaben TID11, TID12, TID13, TID21, TID22 und TID14 zu den Zeitpunkten T1 bis T6 erzeugt wird.
  • Zuerst kann der Scheduler 130 planen, die erste erzeugte Aufgabe TID11 an die nichtflüchtige Speichervorrichtung 200 auszugeben. Während die nichtflüchtige Speichervorrichtung 200 den Befehl, der Aufgabe TID11 entspricht, empfängt und verarbeitet, kann der Scheduler 130 die nächste Aufgabe empfangen und sie gemäß der zugeordneten Priorität planen. Da zum Beispiel P2 eiliger ist als P1, können die nächsten kommenden Aufgaben TID12, TID13, TID21, TID22 und TID14 in Bezug auf die Aufgabe TID11, die gegenwärtig verarbeitet wird, aufgeteilt in der Warteschlange 140 gespeichert werden. Da zum Beispiel Aufgabe TID12 die Host-spezifische Priorität P1 vom selben ersten Host aufweist und weniger eilig ist als Aufgabe TID11, speichert der Scheduler 130 die Aufgabe TID12 in der normalen Warteschlange 145. Da Aufgabe TID13 die Host-spezifische Priorität P1 vom selben ersten Host aufweist und weniger eilig ist als TID11, speichert der Scheduler 130 die Aufgabe T13 in der normalen Warteschlange 145.
  • Da Aufgabe TID21 die Host-spezifische Priorität P2 vom zweiten Host aufweist, die eine höhere Priorität ist als P1, und eiliger ist als Aufgabe TID11, speichert der Scheduler 130 die Aufgabe TID21 in der eiligen Warteschlange 141. Da Aufgabe TID22 die Host-spezifische Priorität P2 vom zweiten Host aufweist, die eine höhere Priorität ist als P1, und eiliger ist als Aufgabe TID11, speichert der Scheduler 130 die Aufgabe TID22 in der eiligen Warteschlange 141.
  • Da es eine Aufgabe gibt, die in der eiligen Warteschlange 141 gespeichert ist, selbst während die Aufgabe TID11 in der nichtflüchtigen Speichervorrichtung 200 verarbeitet wird, sendet der Speichercontroller 100 den Befehl, welcher der in der eiligen Warteschlange 141 gespeicherten Aufgabe TID21 entspricht, an die nichtflüchtige Speichervorrichtung 200. Wenn die nichtflüchtige Speichervorrichtung 200 die Aufgabe TID21 mit einer höheren Priorität empfängt, während sie die Leseoperation durchführt, die der Aufgabe TID11 entspricht, verschiebt die nichtflüchtige Speichervorrichtung 200 die Operation, die der Aufgabe TID 11 entspricht, und führt die Operation, die der Aufgabe TID21 entspricht, zuerst durch.
  • Anschließend sendet der Speichercontroller 100 den Befehl, welcher der in der eiligen Warteschlange 141 gespeicherten Aufgabe TID22 entspricht, an die nichtflüchtige Speichervorrichtung 200 und kann dann die in der normalen Warteschlange 145 gespeicherten Aufgaben TID12, TID13 und TID14 sequenziell an die nichtflüchtige Speichervorrichtung 200 senden.
  • Nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts weist die Aufgabe TID22 eine aufgabeabhängige Beziehung mit der Aufgabe TID21 auf und kann nach TID21 durchgeführt werden. Alternativ, nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts, da die Aufgabe TID22 eine höhere Priorität P2 aufweist als die in der normalen Warteschlange gespeicherte Aufgabe TID12, kann diese vor TID12 verarbeitet werden.
  • Zum Beispiel führt die nichtflüchtige Speichervorrichtung 200 bei Abschluss der Operation, die der Aufgabe TID11 entspricht, die Operation durch, die der Aufgabe TID21 entspricht, nimmt die Operation, die der Aufgabe TID11 entspricht, wieder auf und schließt diese ab und führt dann die Operationen, die den Aufgaben TID12, TID 13 und TID 14 entsprechen, in dieser Reihenfolge durch.
  • 8 und 9 sind Diagramme zum Erläutern der Operation der Speicherungsvorrichtung nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
  • Bezugnehmend auf 8 kann der Speichercontroller 100 jeden Befehl von einer Mehrzahl an Hosts empfangen. Wenn zum Beispiel ein Lesebefehl vom ersten Host (Host1) und vom zweiten Host (Host2) empfangen wird, kann der Speichercontroller 100 eine Mehrzahl an Aufgaben erzeugen, die jedem Lesebefehl entsprechen. Es wird zum Beispiel angenommen, dass TID11 und TID12 bis TID1m als Reaktion auf den Lesebefehl des ersten Hosts erzeugt werden und TID21 und TID22 bis TID2n als Reaktion auf den Lesebefehl des zweiten Hosts erzeugt werden (wobei m und n natürliche Zahlen sind).
  • Anders als in 6 können der erste Host und der zweite Host jedoch zum Beispiel dieselbe Host-spezifische Priorität aufweisen oder die Host-spezifische Priorität wird zum Beispiel nicht eingestellt. In einer Ausführungsform des vorliegenden erfinderischen Konzepts kann der Speichercontroller 100 eine Mehrzahl an Aufgaben als Reaktion auf die von jedem Host empfangenen Lesebefehle gleichzeitig oder sequenziell erzeugen. Es wird zum Beispiel angenommen, dass die Aufgaben TID11, TID21, TID12, TID22, TID13 und TID14 jeweils zu den Zeitpunkten T1 bis T6 erzeugt werden.
  • Zunächst kann der Scheduler 130 planen, die TID11, die zuerst erzeugt wird, an die nichtflüchtige Speichervorrichtung 200 auszugeben. Während die nichtflüchtige Speichervorrichtung 200 den Befehl, der Aufgabe TID11 entspricht, empfängt und verarbeitet, kann der Scheduler 130 die nächsten Aufgaben empfangen und diese gemäß den zugeordneten Prioritäten planen. In dem gezeigten Beispiel kann der Scheduler 130 die nächsten kommenden Aufgaben TID21, TID12, TID22, TID13 und TID14 auf der Basis der Aufgabe TID11, die gegenwärtig verarbeitet wird, aufgeteilt in der Warteschlange 140 speichern.
  • Wenn zum Beispiel die Aufgabe TID12 vom selben ersten Host empfangen worden ist, jedoch als eiliger als die Aufgabe TID11, die gegenwärtig durchgeführt wird, bestimmt wird, speichert der Scheduler 130 die Aufgabe TID12 in der eiligen Warteschlange 141. Wenn die Aufgabe TID13 eine Aufgabe ist, die ebenfalls vom selben ersten Host empfangen worden ist, jedoch der Aufgabe TID12 zugeordnet ist, speichert der Scheduler 130 die Aufgabe TID13 in der eiligen Warteschlange 141.
  • Ferner, wenn es eine in der eiligen Warteschlange 141 gespeicherte Aufgabe gibt, sendet der Speichercontroller 100 den Befehl, welcher der in der eiligen Warteschlange 141 gespeicherten Aufgabe TID12 entspricht, an die nichtflüchtige Speichervorrichtung 200, selbst während die Aufgabe TID11 in der nichtflüchtigen Speichervorrichtung 200 verarbeitet wird. Wenn die nichtflüchtige Speichervorrichtung 200 die Aufgabe TID12 mit einer höheren Priorität empfängt, während die Leseoperation, die der Aufgabe TID 11 entspricht, durchgeführt wird, verschiebt die nichtflüchtige Speichervorrichtung 200 die Operation, die der Aufgabe TID 11 entspricht, und führt die Operation, die der Aufgabe TID12 entspricht, zuerst durch. Ferner, da die Aufgabe TID13, die als nächstes empfangen wird, ebenfalls eine höhere Priorität aufweist als die Aufgabe TID11, führt die nichtflüchtige Speichervorrichtung 200 die Operation, die der Aufgabe TID13 entspricht, zuerst durch und die Operation, die der Aufgabe TID11 entspricht, bleibt bis zum Abschluss der Aufgabe TID13 verschoben.
  • 10 ist ein Diagramm zum Erläutern einer nichtflüchtigen Speichervorrichtung nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
  • Bezugnehmend auf 10 kann die nichtflüchtige Speichervorrichtung 200 eine Steuerlogik 220, ein Speicherzellenarray 230, einen Seitenpuffer 240, einen Spannungsgenerator 250 und einen Zeilendekodierer 260 enthalten. Die nichtflüchtige Speichervorrichtung 200 kann ferner eine in 2 gezeigte Speicherschnittstellenschaltung 210 enthalten und kann ferner eine Spaltenlogik, einen Vordekodierer, einen Temperatursensor, einen Befehlsdekodierer, einen Adressendekodierer und dergleichen enthalten.
  • Die Steuerlogik 220 kann verschiedene Operationen im Innern der nichtflüchtigen Speichervorrichtung 200 steuern. Die Steuerlogik 220 kann verschiedene Steuersignale als Reaktion auf den Befehl CMD und/oder die Adresse ADDR von der Speicherschnittstellenschaltung 210 ausgeben. Zum Beispiel kann die Steuerlogik 220 ein Spannungssteuersignal CTRL_vol, eine Zeilenadresse X-ADDR und eine Spaltenadresse Y-ADDR ausgeben.
  • Das Speicherzellenarray 230 kann eine Mehrzahl an Speicherblöcken BLK1 bis BLKz (z ist eine positive ganze Zahl) enthalten und jeder der Mehrzahl an Speicherblöcken BLK1 bis BLKz kann eine Mehrzahl an Speicherzellen enthalten. Das Speicherzellenarray 230 kann durch Bitleitungen BL mit dem Seitenpuffer 240 verbunden sein und kann durch Wortleitungen WL, String-Auswahlleitungen SSL und Masseauswahlleitungen GSL mit dem Zeilendekodierer 260 verbunden sein.
  • In einer Ausführungsform des vorliegenden erfinderischen Konzepts kann das Speicherzellenarray 230 ein dreidimensionales Speicherzellenarray enthalten und das dreidimensionale Speicherzellenarray kann eine Mehrzahl an NAND-Strings enthalten. Jeder NAND-String kann Speicherzellen enthalten, die mit auf dem Substrat vertikal gestapelten Wortleitungen verbunden sind. Die U.S.-Patente Nr. 7.679.133, 8.553.466, 8.654.587, 8.559.235 und die U.S.-Patentanmeldungsveröffentlichung Nr. 2011/0233648 , die dreidimensionale Speicherzellenarrays offenbaren, sind durch Verweis in ihrer Gesamtheit hierin aufgenommen. In einer Ausführungsform des erfinderischen Konzepts kann das Speicherzellenarray 230 ein zweidimensionales Speicherzellenarray enthalten und das zweidimensionale Speicherzellenarray kann eine Mehrzahl an NAND-Strings enthalten, die entlang Zeilen- und Spaltenrichtungen angeordnet sind.
  • Der Seitenpuffer 240 kann durch die Bitleitungen BL mit jeder der Speicherzellen verbunden sein. Der Seitenpuffer 240 kann mindestens eine Bitleitung unter den Bitleitungen BL als Reaktion auf die Spaltenadresse Y-ADDR auswählen. Der Seitenpuffer 240 kann abhängig vom Betriebsmodus als ein Eintragstreiber oder ein Erfassungsverstärker operieren. Zum Beispiel kann der Seitenpuffer 240 zum Zeitpunkt der Programmieroperation eine Bitleitungsspannung, die den zu programmierenden Daten entspricht, an die ausgewählte Bitleitung anlegen. Zum Zeitpunkt der Leseoperation kann der Seitenpuffer 240 den Strom oder die Spannung der ausgewählten Bitleitung erfassen und die in der Speicherzelle gespeicherten Daten erfassen. Nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts kann der Seitenpuffer 240 eine Mehrzahl an Seitenpuffern enthalten. Der Seitenpuffer 240 aktiviert eine Mehrzahl an Seitenpuffern derart selektiv, dass sie Befehlen entsprechen, die an der nichtflüchtigen Speichervorrichtung 200 vom der eiligen Warteschlange 141 oder der normalen Warteschlange 145, die oben beschrieben werden, empfangen werden, speichert die gelesenen Daten und kann dann die Daten an den Speichercontroller 100 ausgeben. Der spezifische Betrieb desselben wird in 11 beschrieben.
  • Der Spannungsgenerator 250 kann verschiedene Arten von Spannungen zum Durchführen von Programmier-, Lese- und Löschoperationen auf der Basis des Spannungssteuersignals CTRL_vol erzeugen. Zum Beispiel kann der Spannungsgenerator 250 eine Programmierspannung, eine Lesespannung, eine Programmierverifizierungsspannung, eine Löschspannung und dergleichen als eine Wortleitungsspannung VWL erzeugen.
  • Der Zeilendekodierer 260 kann eine der Wortleitungen WL als Reaktion auf die Zeilenadresse X-ADDR auswählen und eine der String-Auswahlleitungen SSL auswählen. Zum Beispiel kann der Zeilendekodierer 260 eine Programmierspannung und eine Programmierverifizierungsspannung zum Zeitpunkt der Programmieroperation an die ausgewählte Wortleitung anlegen und kann eine Lesespannung zum Zeitpunkt der Leseoperation an die ausgewählte Wortleitung anlegen.
  • 11 ist ein Diagramm zum Erläutern einer nichtflüchtigen Speichervorrichtung nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts. Die Erläuterung konzentriert sich auf die Unterschiede zu 10 und eine wiederholte Erläuterung für diese Elemente ist womöglich nicht bereitgestellt.
  • Die nichtflüchtige Speichervorrichtung 200 nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts kann ferner eine Befehlssteuereinheit 270, eine Pufferauswählvorrichtung 280 und eine Eingabe/Ausgabe(I/O)-Steuereinheit 290 enthalten.
  • Wenn die Befehlssteuereinheit 270 den Befehl CMD1 vom Speichercontroller 100 empfängt, kann die Befehlssteuereinheit 270 die Operationssequenz des Befehls derart steuern, dass der Befehl CMD2, der gegenwärtig die Leseoperation durchführt, verschoben wird, und die Operation des Befehls CMD1 bevorzugt durchführen. Dies ist, weil der Befehl CMD1 einen höheren Prioritätsgrad aufweist als der Befehl CMD2.
  • Der Befehl CMD1 kann eine eiligere Priorität (oder höhere Priorität) aufweisen als der Befehl CMD2. Die Operationssequenz des Befehls CMD und des Befehls CMD2 kann durch die Host-spezifische Priorität in einer Ausführungsform des vorliegenden erfinderischen Konzepts definiert werden oder kann durch den Speichercontroller 100 in einer weiteren Ausführungsform des vorliegenden erfinderischen Konzepts definiert werden. In noch einer weiteren Ausführungsform des vorliegenden erfinderischen Konzepts kann die Operationssequenz zwischen den Befehlen auf der Basis der Priorität gemäß den Kriterien, welche durch die Befehlssteuereinheit 270 eingestellt werden, definiert werden.
  • Die Befehlssteuereinheit 270 kann ein Modul sein, das in der Steuerlogik 220 nach einer Ausführungsform des vorliegenden erfinderischen Konzepts enthalten ist, und kann ein Modul sein, das nach einer weiteren Ausführungsform des vorliegenden erfinderischen Konzepts getrennt von einer Steuerlogik 220 angeordnet ist.
  • Der Seitenpuffer 240 kann eine Mehrzahl an Seitenpuffern enthalten. Wenn zum Beispiel ein erster Seitenpuffer 241 und ein zweiter Seitenpuffer 245 enthalten sind, können die jeweiligen Seitenpuffer 241 und 245 durch die Pufferauswählvorrichtung 280 aktiviert werden, um die aus dem Speicherzellenarray 230 zu lesenden Daten zu speichern, oder können aktiviert werden, um die in das Speicherzellenarray 230 zu programmierenden Daten zu empfangen.
  • Die Pufferauswählvorrichtung 280 kann einen des ersten und zweiten Seitenpuffers 241 und 245 gemäß der Steuerung der Befehlssteuereinheit 270 auswählen.
  • Die I/O-Steuereinheit 290 gibt die Daten des ausgewählten Seitenpuffers unter dem ersten und zweiten Seitenpuffer 241 und 245 durch die Speicherschnittstellenschaltung 210 gemäß der Steuerung der Befehlssteuereinheit 270 aus oder empfängt die zu programmierenden Daten durch die Speicherschnittstellenschaltung 210 und speichert die Daten im ausgewählten Seitenpuffer.
  • Nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts können die Daten DATA1 des Befehls CMD1 im ersten Seitenpuffer 241 gespeichert werden und die Daten DATA2 des Befehls CMD2 können im zweiten Seitenpuffer 245 gespeichert werden, gemäß der Auswahl der Pufferauswählvorrichtung 280. Nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts speichert die Pufferauswählvorrichtung 280 die Daten DATA2 zum Zeitpunkt der Leseoperation des Befehls CMD2 im zweiten Seitenpuffer 245 und wenn die Operation des Befehls CMD2 unterbrochen wird, deaktiviert die Pufferauswählvorrichtung 280 den zweiten Seitenpuffer 245 an einem Punkt, an dem lediglich ein Teil der Daten DATA2 gespeichert ist. Die Pufferauswählvorrichtung 280 wählt dann den ersten Seitenpuffer 241 aus und speichert die Daten DATA zum Zeitpunkt der Leseoperation des Befehls CMD1, der aufgrund seiner höheren Priorität zuerst durchgeführt werden soll, und wenn die Leseoperation des Befehls CMD1 abgeschlossen ist, gibt die I/O-Steuereinheit 290 die im ersten Seitenpuffer 241 gespeicherten Daten an die Speicherschnittstellenschaltung 210 aus. Die Operation des unterbrochenen Befehls CMD2 wird gemäß der Steuerung der Befehlssteuereinheit 270 wiederaufgenommen und der zweite Seitenpuffer 245 wird wieder aktiviert, um den Rest der Daten DATA2 zu speichern.
  • 12 ist ein Diagramm zum Erläutern der Leseoperation der nichtflüchtigen Speichervorrichtung nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
  • Bezugnehmend auf 12 senden und empfangen der Speichercontroller 100 und die nichtflüchtige Speichervorrichtung 200 nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts Befehle und Daten durch einen Kanal (z.B. DQ-Bus, P17 aus 2). Das dargestellte Symbol tR kann der Zeitpunkt sein, zu dem die aus dem Speicherzellenarray 230 in der nichtflüchtigen Speichervorrichtung 200 gelesenen Daten im Seitenpuffer 240 gespeichert werden. Das dargestellte Symbol D-OUT kann der Zeitpunkt sein, zu dem die Speicherschnittstellenschaltung 210 der nichtflüchtigen Speichervorrichtung 200 Daten durch den Kanal ausgibt.
  • Wenn die nichtflüchtige Speichervorrichtung 200 (NAND) den zweiten Befehl (Host Read) gemäß der Leseanforderung vom Host 1 empfängt, während sie den gegenwärtigen ersten Befehl GC_tR durchführt, wenn der zweite Befehl als eiliger als der erste Befehl bestimmt wird, verschiebt der Speichercontroller 100 die Operation des gegenwärtigen Befehls GC tR und führt die Operation des zweiten Befehls Host Read (Host tR) zum Ausgeben von Daten (D-OUT) bevorzugt durch und nimmt die verschobene Leseoperation des ersten Befehls GC_tR zum Ausgaben von Daten (GC D-OUT) wieder auf.
  • 13 bis 15 sind Diagramme zum Erläutern der Leseoperation der nichtflüchtigen Speichervorrichtung nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
  • Bezugnehmend auf 13, wenn der Speichercontroller den zweiten Befehl (Read ◯,2) empfängt, während die Datenleseoperation des gegenwärtigen ersten Befehls (z.B. GC_tR aus 8) durchgeführt wird (Read ◯,1), wird die Operation von Read ◯,1 verschoben und ein Datenzugriff (Host tR, Read ◯,2) des zweiten Befehls wird zuerst durchgeführt. Die nichtflüchtige Speichervorrichtung nimmt die verschobene Operation des ersten Befehls wieder auf, während sie die Daten, die dem zuerst durchgeführten zweiten Befehl (D-Out ◯,2) entsprechen, ausgibt, und liest die Daten, die dem ersten Befehl (D-Out ◯,1) entsprechen, und gibt jene aus.
  • Bezugnehmend auf 14, wenn der erste Befehl (z.B. 32h des DQ-Busses) durch den DQ-Bus gemäß dem vereinfachten Zeitpunktdiagramm aus 13 gesendet wird, wie im Ready/Busy-Ausgabesignal RnB gezeigt, werden die Daten, die dem ersten Befehl entsprechen, aus der nichtflüchtigen Speichervorrichtung 200 (tDBSY) gelesen. Wenn jedoch ein eiligerer zweiter Befehl anschließend empfangen wird (zum Beispiel 50h des DQ-Busses), wird die Ausgabe der Daten des ersten Befehls verschoben und die Leseoperation des zweiten Befehls wird zuerst (tR) durchgeführt und die Lesedaten werden ausgegeben (R-DATA◯,2). Danach wird die verschobene Datenleseoperation des ersten Befehls zum Ausgeben der Daten (R-Data◯,1) durchgeführt.
  • Bezugnehmend auf 15, anders als in 13, ist der Zeitpunkt, zu dem die nichtflüchtige Speichervorrichtung 200 den zweiten Befehl (Read ◯,2) vom Speichercontroller empfängt, der Zeitpunkt, während dem der erste Befehl (Read ◯,1) durchgeführt wird und die ersten Daten gelesen (D-Out ◯,1-1) werden. In dem gezeigten Beispiel wählt die Pufferauswählvorrichtung einen anderen zweiten Seitenpuffer als den ersten Seitenpuffer, der gegenwärtig ausgewählt ist, aus und speichert die ersten Daten, führt die Leseoperation des zweiten Befehls (Read ◯,2) zuerst durch und speichert diese im zweiten Seitenpuffer. Sobald die Extraktion der zweiten Daten des zweiten Befehls in den zweiten Seitenpuffer abgeschlossen ist (D-Out ◯,2), deaktiviert die Pufferauswählvorrichtung den zweiten Seitenpuffer, wählt den ersten Seitenpuffer aus und kann die Operation des ersten Befehls (D-Out ◯,1-2) wiederaufnehmen.
  • 16 ist ein Flussdiagramm zum Erläutern eines Verfahrens zum Betreiben des Speichercontrollers nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts.
  • Bezugnehmend auf 16 empfängt der Speichercontroller nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts den Befehl CMD1 vom ersten Host unter der Mehrzahl an Hosts (S10). Der Speichercontroller prüft die Priorität des Befehls CMD1 auf der Basis des zweiten Befehls, der gegenwärtig durchgeführt wird (S20).
  • Die Priorität kann eine Host-spezifische Priorität sein, die zwischen der Mehrzahl an Hosts gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts definiert ist. Zum Beispiel kann der Befehl P2 des zweiten Hosts derart eingestellt sein, dass er vor dem Befehl P1 des ersten Hosts verarbeitet wird. Alternativ kann die Priorität abhängig von den Befehlstypen gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts bestimmt werden. Wenn der Befehl zum Beispiel ein interner Befehl zum Verwalten der nichtflüchtigen Speichervorrichtung ist, kann der vom externen Host empfangene Befehl derart eingestellt sein, dass er bevorzugt verarbeitet wird. Wenn zum Beispiel ein zweiter Befehl, der dem ersten Befehl zugeordnet ist, für den ersten Befehl empfangen wird, der vom externen Host bevorzugt empfangen wird und vor dem internen Befehl durchgeführt wird, nachdem eine Operation des ersten Befehls abgeschlossen ist, kann der zweite Befehl vor dem internen Befehl durchgeführt werden.
  • Der Speichercontroller kann den durchzuführenden Befehl auf der Basis der Priorität des Befehls CMD1 in der Warteschlange speichern (S30). Nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts wird geprüft, ob der empfangene Befehl CMD1 ein eiligerer Befehl ist als der Befehl CMD2, der gegenwärtig durchgeführt wird (S40).
  • Wenn der Befehl CMD1 eiliger ist als der Befehl CMD2, wird die Operation des Befehls CMD2, die gegenwärtig durchgeführt wird, verschoben (S50) und die Operation des Befehls CMD1 wird zuerst durchgeführt. Wenn das Datenlesen gemäß der Operation des Befehls CMD1 in der nichtflüchtigen Speichervorrichtung abgeschlossen ist, nimmt die nichtflüchtige Speichervorrichtung die verschobene Operation des Befehls CMD2 wieder auf.
  • Andererseits, nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts, wenn es einen Befehl CMD3 gibt, der anschließend an den Befehl CMD1 durchgeführt werden muss, bevor die verschobene Operation des Befehls CMD2 wiederaufgenommen wird, kann die Operation des Befehls CMD2 nach dem Durchführen der Operation des Befehls CMD3 wiederaufgenommen werden.
  • Der Befehl CMD3 kann ein Befehl sein, der vom selben Host empfangen wird und dem Befehl CMD1 nach einer Ausführungsform des vorliegenden erfinderischen Konzepts zugeordnet ist. Zusätzlich kann der Befehl CMD3 nach einer weiteren Ausführungsform des vorliegenden erfinderischen Konzepts ein Befehl sein, der von einem anderen Host empfangen wird, jedoch eine höhere Priorität aufweist als der Befehl CMD2.
  • Nach dem Verfahren zum Betreiben des Speichercontrollers nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts kann selbst in einer komplizierten Arbeitslastsituation, in der eine Mehrzahl an Lesebefehlen von der Speicherungsvorrichtung empfangen wird, da die eilige Datenleseanforderung bevorzugt verarbeitet wird, eine Latenz einer Datenzugriffsoperation verbessert werden und eine Dienstqualität (Qos) kann verbessert werden.
  • 17 ist ein Diagramm zum Erläutern einer elektronischen Vorrichtung, die eine Speicherungsvorrichtung nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts enthält.
  • Ein System 1000 aus 17 kann ein mobiles System sein, wie ein Mobiltelefon, ein Smartphone, ein Tablet-Personal-Computer (PC), eine tragbare Vorrichtung, eine Gesundheitsvorrichtung oder eine Internet-der-Dinge(IOT)-Vorrichtung. Das System 1000 aus 17 ist jedoch nicht zwangsläufig auf ein mobiles Telefonsystem beschränkt, sondern kann außerdem ein Personal-Computer, ein Laptop, ein Server, ein Media-Player oder eine Automobilvorrichtung, wie eine Navigation, sein.
  • Bezugnehmend auf 17 kann das System 1000 einen Hauptprozessor 1100, Speicher 1200a und 1200b und Speicherungsvorrichtungen 1300a, 1300b enthalten und kann zusätzlich eines oder mehrere von einer Bildaufnahmevorrichtung 1410, einer Benutzereingabevorrichtung 1420, einem Sensor 1430, einer Kommunikationsvorrichtung 1440, einer Anzeige 1450, einem Lautsprecher 1460, einer Leistungsversorgungsvorrichtung 1470 und einer Verbindungsschnittstelle 1480 enthalten.
  • Der Hauptprozessor 1100 kann den Gesamtbetrieb des Systems 1000 steuern, zum Beispiel die Operation anderer Komponenten, aus denen das System 1000 besteht. Solch ein Hauptprozessor 1100 kann durch einen Universalprozessor, einen dedizierten Prozessor, einen Anwendungsprozessor oder dergleichen umgesetzt werden.
  • Der Hauptprozessor 1100 kann einen oder mehrere CPU-Kerne 1110 enthalten und kann ferner einen Controller 1120 zum Steuern der Speicher 1200a und 1200b und/oder Speicherungsvorrichtungen 1300a und 1300b enthalten. Der Hauptprozessor 1100 kann ferner einen Beschleunigerblock 1130 enthalten, der eine dedizierte Schaltung für eine Hochgeschwindigkeitsdatenberechnung ist, wie eine Datenberechnung für eine künstliche Intelligenz (KI). Solch ein Beschleunigerblock 1130 kann eine Grafikverarbeitungseinheit (GPU), eine neuronale Verarbeitungseinheit (NPU) und/oder eine Datenverarbeitungseinheit (DPU) und dergleichen enthalten und kann als getrennte Chips umgesetzt sein, die physikalisch unabhängig sind von anderen Komponenten des Hauptprozessors 1100.
  • Die Speicher 1200a und 1200b können als eine Hauptspeichereinheit des Systems 1000 verwendet werden und können einen flüchtigen Speicher enthalten, wie einen SRAM und/oder einen DRAM, können jedoch außerdem einen nichtflüchtigen Speicher enthalten, wie einen Flash-Speicher, einen PRAM und/oder RRAM. Die Speicher 1200a und 1200b können außerdem im selben Package umgesetzt werden wie der Hauptprozessor 1100.
  • Die Speicherungsvorrichtungen 1300a und 1300b können als eine nichtflüchtige Speicherungsvorrichtung zum Speichern von Daten unabhängig davon, ob eine Leistung zugeführt wird, fungieren und können eine relativ große Kapazität verglichen mit den Speichern 1200a und 1200b aufweisen. Die Speicherungsvorrichtungen 1300a und 1300b können Speicherungscontroller 1310a und 1310b und Speichermedien 1320a und 1320b für nichtflüchtige Speicher (NVM) enthalten, welche die Daten unter der Steuerung der Speicherungscontroller 1310a und 1310b speichern. Die nichtflüchtigen Speicher 1320a und 1320b können einen V-NAND-Flash-Speicher einer 2D-Struktur oder einer 3D-Struktur enthalten, können jedoch außerdem andere Arten von nichtflüchtigen Speichern enthalten, wie einen PRAM und/oder einen RRAM.
  • Die Speicherungsvorrichtungen 1300a und 1300b können im System 1000 in einem Zustand enthalten sein, in dem sie physisch vom Hauptprozessor 1100 getrennt sind, und können im selben Package wie der Hauptprozessor 1100 umgesetzt sein. Ferner weisen die Speicherungsvorrichtungen 1300a und 1300b eine Form wie eine Festkörpervorrichtung (SSD) oder eine Speicherkarte auf und können somit außerdem durch eine Schnittstelle, wie eine Verbindungsschnittstelle 1480, die später beschrieben wird, abnehmbar mit anderen Komponenten des Systems 1000 gekoppelt sein. Solche Speicherungsvorrichtungen 1300a und 1300b können Vorrichtungen sein, auf die Standardprotokolle, wie ein UFS, eine eMMC oder ein NVMe, angewandt werden, sind jedoch nicht darauf beschränkt.
  • Die Bildaufnahmevorrichtung 1410 (oder optische Eingabevorrichtung) kann Standbilder oder bewegliche Bilder aufnehmen und kann eine Kamera, eine Videokamera (z.B. Kamerarecorder) und/oder eine Webcam oder dergleichen sein.
  • Die Benutzereingabevorrichtung 1420 kann verschiedene Arten von Daten empfangen, die von Benutzern des Systems 1000 eingegeben werden, und kann ein Touch-Pad, ein Tastenfeld, eine Tastatur, eine Maus und/oder ein Mikrofon sein.
  • Der Sensor 1430 kann verschiedene Arten von physikalischen Größen erfassen, die von außerhalb des Systems 1000 erhalten werden, und die erfassten physikalischen Größen in elektrische Signale umwandeln. Solch ein Sensor 1430 kann ein Temperatursensor, ein Drucksensor, ein Beleuchtungssensor, ein Positionssensor, ein Beschleunigungssensor, ein Biosensor und/oder ein Gyroskop sein.
  • Die Kommunikationsvorrichtung 1440 kann Signale an andere Vorrichtungen außerhalb des Systems 1000 nach verschiedenen Kommunikationsprotokollen senden und von jenen empfangen. Solch eine Kommunikationsvorrichtung 1440 kann durch Enthalten einer Antenne, eines Sendeempfängers und/oder eines Modems und dergleichen umgesetzt werden.
  • Die Anzeige 1450 und der Lautsprecher 1460 können als Ausgabevorrichtungen fungieren, die jeweils visuelle und auditive Informationen an den Benutzer des Systems 1000 ausgeben.
  • Die Leistungsversorgungsvorrichtung 1470 kann die von einer Batterie und/oder einer im System 1000 ausgestatteten externen Leistungsversorgung zugeführte Leistung umwandeln und die Leistung an jede Komponente des Systems 1000 zuführen.
  • Die Verbindungsschnittstelle 1480 kann eine Verbindung zwischen dem System 1000 und einer externen Vorrichtung, die mit dem System 1000 verbunden ist, bereitstellen und kann Daten an das System 1000 senden und von jenem empfangen. Die Verbindungsschnittstelle 1480 kann durch verschiedene Schnittstellenverfahren umgesetzt werden, wie einem ATA, einem SATA, einem e-SATA, einer SCSI, einem SAS, einer PCI, einem PCIe, einem NVMe, einem IEEE 1394, einem USB, einer SD-Karte, einer MMC, einer eMMC, einem UFS, einem eUFS und einer CF-Kartenschnittstelle.
  • 18 ist ein Diagramm zum Erläutern eines Datenzentrums, das eine Speicherungsvorrichtung enthält, nach einigen Ausführungsformen des vorliegenden erfinderischen Konzepts. Eine Speicherungsvorrichtung 3250 aus 18 kann als die Speicherungsvorrichtung 10 nach einigen der oben beschriebenen Ausführungsformen umgesetzt werden.
  • Bezugnehmend auf 18 ist ein Datenzentrum 3000 eine Einrichtung, die verschiedene Arten von Daten sammelt und Dienstleistungen bereitstellt und kann als ein Datenspeicherzentrum bezeichnet werden. Das Datenzentrum 3000 kann ein System für Suchmaschinen und Datenbasisoperationen sein und kann ein Berechnungssystem sein, das von Unternehmen, wie Banken oder Regierungsbehörden, verwendet wird. Das Datenzentrum 3000 kann Anwendungsserver 3100 bis 3100n und Speicherserver 3200 bis 3200m enthalten. Die Anzahl an Anwendungsservern 3100 bis 3100n und die Anzahl an Speicherservern 3200 bis 3200m können verschiedenartig ausgewählt werden und die Anzahl an Anwendungsservern 3100 bis 3100n und die Anzahl an Speicherservern 3200 bis 3200m können sich voneinander unterscheiden.
  • Der Anwendungsserver 3100 oder der Speicherserver 3200 können mindestens einen der Prozessoren 3110 und 3210 und der Speicher 3120 und 3220 enthalten. Den Speicherserver 3200 als ein Beispiel nehmend, kann der Prozessor 3210 den Gesamtbetrieb des Speicherservers 3200 steuern und auf den Speicher 3220 zugreifen, um Befehle und/oder Daten, die in den Speicher 3220 geladen werden, auszuführen. Der Speicher 3220 kann ein Synchron-DRAM mit doppelter Datenrate (DDR-SDRAM), ein Speicher mit hoher Bandbreite (HBM), ein Hybridspeicherwürfel (HMC), ein Dual-In-Line-Memory-Modul (DIMM), ein Optane-DIMM oder ein nichtflüchtiges DIMM (NVM-DIMM) sein. Die Anzahl an Prozessoren 3210 und die Anzahl an Speichern 3220, die im Speicherserver 3200 enthalten sind, können verschiedenartig ausgewählt werden. In einer Ausführungsform des vorliegenden erfinderischen Konzepts können der Prozessor 3210 und der Speicher 3220 ein Prozessor-Speicher-Paar bereitstellen. In einer Ausführungsform des vorliegenden erfinderischen Konzepts können sich die Anzahl an Prozessoren 3210 und die Anzahl an Speichern 3220 voneinander unterscheiden. Der Prozessor 3210 kann einen Einzelkernprozessor oder einen Mehrkernprozessor enthalten. Die zuvor genannte Erläuterung des Speicherservers 3200 kann außerdem ähnlich auf den Anwendungsserver 3100 angewandt werden. Der Anwendungsserver 3100 enthält womöglich keine Speicherungsvorrichtung 3150. Der Speicherserver 3200 kann mindestens eine oder mehrere Speicherungsvorrichtungen 3250 enthalten. Die im Speicherserver 3200 enthaltene Anzahl an Speicherungsvorrichtungen 3250 kann verschiedenartig ausgewählt werden.
  • Die Anwendungsserver 3100 bis 3100n und die Speicherserver 3200 bis 3200m können durch ein Netzwerk 3300 miteinander kommunizieren. Das Netzwerk 3300 kann unter Verwendung eines Faserkanals (FC), eines Ethernets oder dergleichen umgesetzt werden. Zu diesem Zeitpunkt ist der FC ein Medium, das für eine Datenübertragung mit relativ hoher Geschwindigkeit verwendet wird, und kann einen optischen Schalter verwenden, der hohe Performance/hohe Verfügbarkeit bereitstellt. Die Speicherserver 3200 bis 3200m können abhängig von einem Zugriffstyp des Netzwerks 3300 als Dateispeicher, ein Blockspeicher oder ein Objektspeicher bereitgestellt sein.
  • Zum Beispiel kann das Netzwerk 1300 gemäß Protokollen umgesetzt werden, wie einem FC-Über-Ethernet (FCoE), einem Network-Attached-Storage (NAS) und einem NVMe-Over-Fabrics (NVMe-oF).
  • Nachfolgend werden hauptsächlich der Anwendungsserver 3100 und der Speicherserver 3200 beschrieben. Die Erläuterung des Anwendungsservers 3100 kann außerdem auf einen weiteren Anwendungsserver 3100n angewandt werden und die Erläuterung des Speicherservers 3200 kann außerdem auf einen weiteren Speicherserver 3200m angewandt werden.
  • Der Anwendungsserver 3100 kann die von einem Benutzer oder einem Auftraggeber zum Speichern angeforderten Daten durch das Netzwerk 3300 in einem der Speicherserver 3200 bis 3200m speichern. Ferner kann der Anwendungsserver 3100 die vom Benutzer oder Auftraggeber zum Lesen angeforderten Daten durch das Netzwerk 3300 aus einem der Speicherserver 3200 bis 3200m erhalten. Zum Beispiel kann der Anwendungsserver 3100 durch einen Webserver oder ein Datenbasisverwaltungssystem (DBMS) umgesetzt werden.
  • Der Anwendungsserver 3100 kann durch das Netzwerk 3300 auf den Speicher 3120n oder die Speicherungsvorrichtung 3150n, die in einem weiteren Anwendungsserver 3100n enthalten sind, zugreifen oder kann durch das Netzwerk 3300 auf die Speicher 3220 bis 3220m oder die Speicherungsvorrichtungen 3250 bis 3250m, die in den Speicherservern 3200 bis 3200m enthalten sind, zugreifen. Dementsprechend kann der Anwendungsserver 3100 verschiedene Operationen der in den Anwendungsservern 3100 bis 3100n und/oder den Speicherservern 3200 bis 3200m gespeicherten Daten durchführen. Zum Beispiel kann der Anwendungsserver 3100 Befehle zum Verschieben oder Kopieren der Daten zwischen den Anwendungsservern 3100 bis 3100n und/oder den Speicherservern 3200 bis 3200m ausführen. Zum Beispiel können die Daten mittels der Speicher 3220 bis 3220m der Speicherserver 3200 bis 3200m von den Speicherungsvorrichtungen 3250 bis 3250m der Speicherserver 3200 bis 3200m oder direkt in die Speicher 3120 bis 3120n der Anwendungsserver 3100 bis 3100 verschoben werden. Daten, die sich durch das Netzwerk 3300 bewegen, können zur Sicherheit und Privatsphäre verschlüsselte Daten sein.
  • Den Speicherserver 3200 als Beispiel nehmend, kann eine Schnittstelle 3254 eine physische Verbindung zwischen dem Prozessor 3210 und einem Controller 3251 und eine physische Verbindung zwischen einer NIC 3240 und dem Controller 3251 bereitstellen.
  • Der Speicherserver 3200 kann ferner einen Schalter 3230 und die NIC 3240 enthalten. Der Schalter 3230 kann den Prozessor 3210 und die Speicherungsvorrichtung 3250 selektiv verbinden oder kann die NIC 3240 und die Speicherungsvorrichtung 3250 gemäß der Steuerung des Prozessors 3210 selektiv verbinden. Die Anwendungsserver 3100 bis 3100n können ferner Schalter 3130 bis 3130n enthalten.
  • In einer Ausführungsform des vorliegenden erfinderischen Konzepts kann die NIC 3240 eine Netzwerkschnittstellenkarte, einen Netzwerkadapter und dergleichen enthalten. Die NIC 3240 kann durch eine verdrahtete Schnittstelle, eine drahtlose Schnittstelle, eine Bluetooth-Schnittstelle, eine optische Schnittstelle oder dergleichen mit dem Netzwerk 3300 verbunden sein. Die NIC 3240 kann einen internen Speicher, einen Digitalsignalprozessor (DSP), eine Host-Bus-Schnittstelle oder dergleichen enthalten und kann durch die Host-Bus-Schnittstelle mit dem Prozessor 3210 und/oder dem Schalter 3230 oder dergleichen verbunden sein. Die Host-Bus-Schnittstelle kann außerdem als eines der oben beschriebenen Beispiele für die Schnittstelle 3254 umgesetzt werden. In einer Ausführungsform des vorliegenden erfinderischen Konzepts kann die NIC 3240 außerdem mit mindestens einem von dem Prozessor 3210, dem Schalter 3230 und der Speicherungsvorrichtung 3250 integriert werden.
  • In den Speicherservern 3200 bis 3200m oder den Anwendungsservern 3100 bis 3100n können die Prozessoren 3110 und 3210 die Befehle an die Speicherungsvorrichtungen 3150 bis 3150n und 3250 bis 3250 oder die Speicher 3120 bis 3120n und 3220 bis 3220m senden, um die Daten zu programmieren oder zu lesen. Zu diesem Zeitpunkt können die Daten Daten sein, in denen ein Fehler durch eine ECC-Engine korrigiert wird. Die Daten sind Daten, die einer Datenbusinversion (DBI) oder einem Datenmaskierungs(DM)-Prozess unterzogen werden, und können CRC(Cyclic-Redundanzy-Code)-Informationen enthalten. Die Daten können Daten sein, die zur Sicherheit und Privatsphäre verschlüsselt sind.
  • Die Speicherungsvorrichtungen 3150 bis 3150m und 3250 bis 3250m können das Steuersignal und das Befehl-/Adresssignal als Reaktion auf den vom Prozessor empfangenen Lesebefehl an NAND-Flash-Speichervorrichtungen 3252 bis 3252m senden. Dementsprechend, wenn Daten aus den NAND-Flash-Speichervorrichtungen 3252 bis 3252m gelesen werden, wird das Leseaktivierungs(RE)-Signal als ein Datenausgabesteuersignal eingegeben und kann dazu dienen, die Daten an den DQ-Bus auszugeben. Ein Daten-Strobe (DQS) kann unter Verwendung des RE-Signals erzeugt werden. Befehls- und Adresssignale können abhängig von einer steigenden Flanke oder einer abfallenden Flanke eines Schreibaktivierungs(WE)-Signals im Seitenpuffer zwischengespeichert werden.
  • Der Controller 3251 kann den Betrieb der Speicherungsvorrichtung 3250 steuern. In einer Ausführungsform des vorliegenden erfinderischen Konzepts kann der Controller 3251 ein SRAM sein. Der Controller 3251 kann Daten als Reaktion auf einen Schreibbefehl in den NAND-Flash 3252 schreiben oder kann die Daten als Reaktion auf einen Lesebefehl aus dem NAND-Flash 3252 lesen. Zum Beispiel können der Schreibbefehl und/oder der Lesebefehl vom Prozessor 3210 im Speicherserver 3200, vom Prozessor 3210m in einem weiteren Speicherserver 3200m oder von den Prozessoren 3110 bis 3110n in den Anwendungsservern 3100 bis 3100n bereitgestellt werden. Ein DRAM 3253 kann die in den NAND-Flash 3252 zu schreibenden Daten oder die aus dem NAND-Flash 3253 gelesenen Daten vorübergehend speichern (z.B. puffern). Zusätzlich kann der DRAM 3253 Metadaten speichern. Die Metadaten können Benutzerdaten oder durch den Controller 3251 zum Verwalten des NAND-Flash 3252 erzeugte Daten sein. Die Speicherungsvorrichtung 3250 kann ein Sicherheitselement (SE) für Sicherheit oder Privatsphäre enthalten.
  • Es versteht sich, dass ein Fachmann würdigen wird, dass viele Variationen und Modifikationen in den hierin beschriebenen Ausführungsformen vorgenommen werden können, ohne dabei vom Umfang des vorliegenden erfinderischen Konzepts abzuweichen. Somit ist das vorliegende erfinderische Konzept nicht auf die hierin beschriebenen Ausführungsformen beschränkt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 7679133 [0082]
    • US 8553466 [0082]
    • US 8654587 [0082]
    • US 8559235 [0082]
    • US 2011/0233648 [0082]

Claims (20)

  1. Verfahren zum Betreiben eines Speichercontrollers, wobei das Verfahren aufweist: Empfangen eines ersten Befehls von einem ersten Host; Speichern des ersten Befehls in einer Warteschlange; wenn der erste Befehl eine höhere Priorität aufweist als ein zweiter Befehl, der gegenwärtig durchgeführt wird, Pausieren einer Operation des zweiten Befehls und Durchführen einer Leseoperation des ersten Befehls; und Fortsetzen der Operation des zweiten Befehls, nachdem die Leseoperation des ersten Befehls abgeschlossen ist.
  2. Verfahren zum Betreiben eines Speichercontrollers nach Anspruch 1, wobei die Warteschlange enthält: eine eilige Warteschlange, die einen eiligen Befehl mit einer höheren Priorität als der zweite Befehl, der gegenwärtige durchgeführt wird, speichert; und eine normale Warteschlange, die einen normalen Befehl ohne höhere Priorität als der zweite Befehl speichert.
  3. Verfahren zum Betreiben eines Speichercontrollers nach Anspruch 2, wobei der Speichercontroller die Operation des zweiten Befehls pausiert und die Operation des eiligen Befehls durchführt, wenn der eilige Befehl in der eiligen Warteschlange gespeichert ist.
  4. Speichercontroller, aufweisend: eine Host-Schnittstelle, die eine Mehrzahl an Befehlen empfängt und Daten, die den Befehlen entsprechen, ausgibt; eine Warteschlange, welche die an der Host-Schnittstelle empfangenen Befehle speichert; einen Scheduler, der eine Operationssequenz abhängig von einer Priorität der Befehle in der Warteschlange plant; und eine zentrale Verarbeitungseinheit (CPU), die Daten gemäß den Befehlen in der Warteschlange auf der Basis der geplanten Sequenz aus einer nichtflüchtigen Speichervorrichtung liest, wobei, wenn ein erster Befehl empfangen wird, der eiliger ist als ein zweiter Befehl, der gegenwärtig durchgeführt wird, eine Operation des zweiten Befehls angehalten wird und eine Operation des ersten Befehls durchgeführt wird.
  5. Speichercontroller nach Anspruch 4, wobei die Warteschlange enthält: eine eilige Warteschlange, die einen eiligen Befehl speichert; und eine normale Warteschlange, die einen normalen Befehl speichert.
  6. Speichercontroller nach Anspruch 5, wobei, wenn eine Priorität des ersten Befehls eiliger ist als eine Priorität des zweiten Befehls, der Scheduler den ersten Befehl in der eiligen Warteschlange speichert, und wenn die Priorität des ersten Befehls weniger eilig ist als der zweite Befehl, der Scheduler den ersten Befehl sequenziell in der normalen Warteschlange speichert.
  7. Speichercontroller nach Anspruch 6, wobei die CPU die Operation des ersten Befehls durchführt und dann eine verbleibende Operation des angehaltenen zweiten Befehls durchführt.
  8. Speichercontroller nach Anspruch 6, wobei, wenn ein dritter Befehl empfangen wird, der eine eiligere Priorität aufweist als der zweite Befehl, der Scheduler den dritten Befehl nach dem ersten Befehl in der eiligen Warteschlange speichert, und der Scheduler die Operation des ersten Befehls als durchzuführend einreiht und dann die Operation des dritten Befehls einreiht als durchzuführend nachdem die Operation des ersten Befehls abgeschlossen ist.
  9. Speichercontroller nach Anspruch 6, wobei, wenn ein dritter Befehl empfangen wird und vom ersten Befehl abhängig ist, der Scheduler den dritten Befehl in der eiligen Warteschlange speichert, und der Scheduler die Operation des ersten Befehls als durchzuführend einreiht und dann die Operation des dritten Befehls einreiht als durchzuführend nachdem die Operation des ersten Befehls abgeschlossen ist.
  10. Nichtflüchtige Speichervorrichtung, aufweisend: ein Speicherzellenarray, das eine Mehrzahl an Speicherzellen enthält und Daten speichert; eine Mehrzahl an Seitenpuffern, welche die aus dem Speicherzellenarray gelesenen Daten speichern; eine Befehlssteuerungseinheit, die als Reaktion auf einen ersten Befehl eine Operation eines zweiten Befehls, der gegenwärtig durchgeführt wird, verschiebt und eine Operation des ersten Befehls durchführt; eine Pufferauswählvorrichtung, die einen einer Mehrzahl an Seitenpuffern zum Speichern von Daten, die dem ersten Befehl oder dem zweiten Befehl entsprechen, unter Steuerung der Befehlssteuerungseinheit auswählt; und eine Ausgabesteuerungseinheit, die Daten eines ausgewählten Seitenpuffers unter Steuerung der Befehlssteuerungseinheit ausgibt.
  11. Nichtflüchtige Speichervorrichtung nach Anspruch 10, wobei der zweite Befehl durch einen Speichercontroller pausiert wird und die Operation des ersten Befehls in der nichtflüchtigen Speichervorrichtung durchgeführt wird.
  12. Nichtflüchtige Speichervorrichtung nach Anspruch 10, wobei die Befehlssteuerungseinheit die Operation des ersten Befehls vor der Operation des zweiten Befehls durchführt, wenn der erste Befehl eiliger ist als der zweite Befehl.
  13. Nichtflüchtige Speichervorrichtung nach Anspruch 10, wobei die Mehrzahl an Seitenpuffern enthält: einen ersten Seitenpuffer, der erste Daten des ersten Befehls speichert; und einen zweiten Seitenpuffer, der zweite Daten des zweiten Befehls speichert.
  14. Nichtflüchtige Speichervorrichtung nach Anspruch 13, wobei die Pufferauswählvorrichtung den ersten Seitenpuffer auswählt, während die Operation des ersten Befehls durchgeführt wird, und die Pufferauswählvorrichtung den zweiten Seitenpuffer auswählt, während die Operation des zweiten Befehls durchgeführt wird.
  15. Nichtflüchtige Speichervorrichtung nach Anspruch 14, wobei die Pufferauswählvorrichtung den zweiten Seitenpuffer nicht auswählt, während die Operation des zweiten Befehls unterbrochen ist, und die Pufferauswählvorrichtung den zweiten Seitenpuffer auswählt, wenn die Operation des zweiten Befehls wiederaufgenommen wird.
  16. Nichtflüchtige Speichervorrichtung nach Anspruch 14, wobei die Ausgabesteuerungseinheit die im ersten Seitenpuffer gespeicherten ersten Daten vor den zweiten Daten an einen Speichercontroller ausgibt.
  17. Nichtflüchtige Speichervorrichtung nach Anspruch 10, wobei die Pufferauswählvorrichtung einen leeren Seitenpuffer unter der Mehrzahl an Seitenpuffern zum Speichern der Daten des ersten Befehls auswählt, wenn die Operation des zweiten Befehls unterbrochen wird und die Operation des ersten Befehls durchgeführt wird.
  18. Nichtflüchtige Speichervorrichtung nach Anspruch 10, wobei die Ausgabesteuerungseinheit zunächst Daten ausgibt, die einem eiligen Befehl unter dem ersten Befehl oder dem zweiten Befehl entsprechen.
  19. Datenzentrum, aufweisend: einen ersten Host, der einen ersten Lesebefehl sendet; einen zweiten Host, der einen zweiten Lesebefehl sendet; und eine Speicherungsvorrichtung, die eine Mehrzahl an Aufgaben erzeugt, die dem ersten und zweiten Befehl entsprechen, und eine Operationssequenz der Aufgaben gemäß einer Priorität zum Durchführen einer Operation plant, wobei, wenn eine eiligere zweite Aufgabe empfangen wird, während eine Operation der ersten Aufgabe durchgeführt wird, die Speicherungsvorrichtung die Operation der zweiten Aufgabe durchführt, bevor sie die Operation der ersten Aufgabe abschließt, und dann die Operation der ersten Aufgabe fortsetzt.
  20. Datenzentrum nach Anspruch 19, wobei die Speicherungsvorrichtung enthält: einen Speichercontroller, der die Mehrzahl an Aufgaben gemäß dem ersten und zweiten Lesebefehl erzeugt und die Operationssequenz der Aufgaben gemäß einer Abhängigkeit zwischen jeweiligen Aufgaben oder einer Priorität des ersten und zweiten Hosts plant und ausgibt; und eine nichtflüchtige Speichervorrichtung, die eine Operation einer gegenwärtigen Aufgabe pausiert und die Operation der zweiten Aufgabe bevorzugt durchführt, wenn die eiligere zweite Aufgabe empfangen wird.
DE102021125786.7A 2020-12-29 2021-10-05 Speichercontroller, eine nichtflüchtige Speichervorrichtung und eine Speicherungsvorrichtung davon Pending DE102021125786A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200186245A KR20220094726A (ko) 2020-12-29 2020-12-29 메모리 컨트롤러, 비휘발성 메모리 장치 및 그 스토리지 장치
KR10-2020-0186245 2020-12-29

Publications (1)

Publication Number Publication Date
DE102021125786A1 true DE102021125786A1 (de) 2022-06-30

Family

ID=81972245

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021125786.7A Pending DE102021125786A1 (de) 2020-12-29 2021-10-05 Speichercontroller, eine nichtflüchtige Speichervorrichtung und eine Speicherungsvorrichtung davon

Country Status (4)

Country Link
US (1) US11989451B2 (de)
KR (1) KR20220094726A (de)
CN (1) CN114694700A (de)
DE (1) DE102021125786A1 (de)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7679133B2 (en) 2007-11-08 2010-03-16 Samsung Electronics Co., Ltd. Vertical-type non-volatile memory devices
US20110233648A1 (en) 2010-03-26 2011-09-29 Samsung Electronics Co., Ltd. Three-Dimensional Semiconductor Memory Devices And Methods Of Fabricating The Same
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US8559235B2 (en) 2010-08-26 2013-10-15 Samsung Electronics Co., Ltd. Nonvolatile memory device, operating method thereof and memory system including the same
US8654587B2 (en) 2010-08-11 2014-02-18 Samsung Electronics Co., Ltd. Nonvolatile memory devices, channel boosting methods thereof, programming methods thereof, and memory systems including the same

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043599B1 (en) 2002-06-20 2006-05-09 Rambus Inc. Dynamic memory supporting simultaneous refresh and data-access transactions
KR100672149B1 (ko) 2005-02-17 2007-01-19 주식회사 하이닉스반도체 불휘발성 메모리 장치의 페이지 버퍼 동작 방법
US8495332B2 (en) 2009-07-24 2013-07-23 Apple Inc. Controller for optimizing throughput of read operations
US8850103B2 (en) 2009-08-28 2014-09-30 Microsoft Corporation Interruptible NAND flash memory
KR20140142960A (ko) 2013-06-05 2014-12-15 중소기업은행 병렬 파이프라인 더블래치로 구동되는 spi 낸드 플래시 메모리
US9753653B2 (en) 2015-04-14 2017-09-05 Sandisk Technologies Llc High-priority NAND operations management
WO2016191620A1 (en) * 2015-05-26 2016-12-01 Gluent Inc. System and method for transparent context aware filtering of data requests
US10514862B2 (en) * 2016-07-21 2019-12-24 Micron Technology, Inc. Memory device including concurrent suspend states for different operations
US10360045B2 (en) * 2017-04-25 2019-07-23 Sandisk Technologies Llc Event-driven schemes for determining suspend/resume periods
US10423508B2 (en) 2017-08-11 2019-09-24 Alibaba Group Holding Limited Method and system for a high-priority read based on an in-place suspend/resume write
US10901656B2 (en) * 2017-11-17 2021-01-26 SK Hynix Inc. Memory system with soft-read suspend scheme and method of operating such memory system
CN109976661B (zh) * 2017-12-27 2020-08-14 华为技术有限公司 基于nof的读取控制方法、装置及系统
KR20190090614A (ko) * 2018-01-25 2019-08-02 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR102485411B1 (ko) * 2018-03-02 2023-01-06 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10922013B2 (en) 2018-04-09 2021-02-16 Western Digital Technologies, Inc. Suspending and resuming a read operation for a non-volatile memory
TWI684860B (zh) * 2018-10-15 2020-02-11 慧榮科技股份有限公司 用來進行讀取加速之方法以及資料儲存裝置及其控制器
CN111161781A (zh) * 2018-11-07 2020-05-15 爱思开海力士有限公司 用于处理编程错误的存储器系统及其方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7679133B2 (en) 2007-11-08 2010-03-16 Samsung Electronics Co., Ltd. Vertical-type non-volatile memory devices
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US20110233648A1 (en) 2010-03-26 2011-09-29 Samsung Electronics Co., Ltd. Three-Dimensional Semiconductor Memory Devices And Methods Of Fabricating The Same
US8654587B2 (en) 2010-08-11 2014-02-18 Samsung Electronics Co., Ltd. Nonvolatile memory devices, channel boosting methods thereof, programming methods thereof, and memory systems including the same
US8559235B2 (en) 2010-08-26 2013-10-15 Samsung Electronics Co., Ltd. Nonvolatile memory device, operating method thereof and memory system including the same

Also Published As

Publication number Publication date
US20220206716A1 (en) 2022-06-30
US11989451B2 (en) 2024-05-21
CN114694700A (zh) 2022-07-01
KR20220094726A (ko) 2022-07-06

Similar Documents

Publication Publication Date Title
US11947837B2 (en) Memory system and method for controlling nonvolatile memory
DE112018000180T5 (de) System und verfahren zum adaptiven senden frühzeitiger beendigung unter verwendung eines steuerungsspeicherpuffers
US20200356484A1 (en) Timed Data Transfer between a Host System and a Memory Sub-System
DE102015012566A1 (de) Mehrlagenkonzept für logische speicherungsverwaltung
KR20170053278A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20210133096A1 (en) Memory system and operating method thereof
US20200364145A1 (en) Information processing apparatus and method for controlling storage device
KR102526608B1 (ko) 전자 장치 및 그것의 동작 방법
DE112019005511T5 (de) Halten von schreibbefehlen in gezonten namensräumen
DE102016009807A1 (de) Korrelieren von physikalischen seitenadressen für soft-decision-dekodierung
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
CN112035381A (zh) 一种存储系统及存储数据处理方法
DE102021118940A1 (de) Speichersteuerung und speichereinrichtung mit derselben
US11494318B2 (en) Controller and operation method thereof
CN109471819B (zh) 为来自主机的读取请求提供短的读取响应时间的存储设备
DE102020211544A1 (de) Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben
DE112020005044T5 (de) Zonenanhang-befehlsplanung basierend auf zonenzustand
DE112020005395T5 (de) Kapazitätserweiterung für speicher-untersysteme
US20220229595A1 (en) Controller and operation method thereof
US20240086113A1 (en) Synchronous write method and device, storage system and electronic device
DE102021127472A1 (de) Speichercontroller mit einer Datenvorabrufsteuerfunktion, Betriebsverfahren des Speichercontrollers und Betriebsverfahren einer Speicherungsvorrichtung
DE112020006053T5 (de) Aktiver eingabe/ausgabe-expander eines speicher-untersystems
US20230126685A1 (en) Storage device and electronic system
DE102021125786A1 (de) Speichercontroller, eine nichtflüchtige Speichervorrichtung und eine Speicherungsvorrichtung davon
DE102021121608A1 (de) Verfahren zum schreiben von daten in eine nicht-flüchtige speichervorrichtung und dieses ausführende nicht-flüchtige speichervorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed