DE102019127080A1 - Speichersystem und Betriebsverfahren dafür - Google Patents

Speichersystem und Betriebsverfahren dafür Download PDF

Info

Publication number
DE102019127080A1
DE102019127080A1 DE102019127080.4A DE102019127080A DE102019127080A1 DE 102019127080 A1 DE102019127080 A1 DE 102019127080A1 DE 102019127080 A DE102019127080 A DE 102019127080A DE 102019127080 A1 DE102019127080 A1 DE 102019127080A1
Authority
DE
Germany
Prior art keywords
data
host
storage device
memory
flush
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
DE102019127080.4A
Other languages
English (en)
Inventor
Min-O SONG
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.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of DE102019127080A1 publication Critical patent/DE102019127080A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • 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
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

Ein Speichersystem beinhaltet: eine Speichervorrichtung, die zum Speichern von Hostdaten geeignet ist, welche von einem Host bereitgestellt werden; und eine Speichersteuerung, die geeignet ist zum Verwalten und Übertragen der Hostdaten zwischen dem Host und der Speichervorrichtung, wobei die Speichersteuerung umfasst: einen Schreibpuffer, der geeignet ist zum Zwischenspeichern der an die Speichervorrichtung zu übertragenden Hostdaten; eine Pufferüberwachungsvorrichtung, die geeignet ist zum Überprüfen eines Nutzungsumfangs des Schreibpuffers während einer vorbestimmten Periode; eine Puffernutzungsvergleichsvorrichtung, die geeignet ist zum Erzeugen eines Flush-Steuersignals basierend auf einem Nutzungsumfangsvergleichsergebnis, indem sie den Nutzungsumfang, der während einer aktuellen Periode überprüft wurde, welcher der vorbestimmten Periode entspricht, mit dem Nutzungsumfang vergleicht, der während einer früheren Periode überprüft wurde, welche der vorbestimmten Periode entspricht; und eine erste Flush-Vorrichtung, die geeignet ist zum Übertragen der im Schreibpuffer zwischengespeicherten Hostdaten an die Speichervorrichtung als Reaktion auf das Flush-Steuersignal.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Die vorliegende Anmeldung beansprucht die Priorität gemäß 35 U.S.C. §119(a) der am 24. Oktober 2018 eingereichten koreanischen Patentanmeldung Nr. 10-2018-0127720 , die hierin durch Bezugnahme in ihrer Gesamtheit eingeschlossen ist.
  • HINTERGRUND
  • Anwendungsgebiet
  • Exemplarische Ausführungsformen der vorliegenden Erfindung beziehen sich auf ein Speichersystem, insbesondere auf ein Speichersystem, das in der Lage ist, einen Flush-Vorgang effizient durchzuführen, und ein Verfahren zum Betreiben des Speichersystems.
  • Beschreibung des Standes der Technik
  • Das Paradigma der Computerumgebung hat sich auf Ubiquitous Computing verlagert, das es ermöglicht, Computersysteme jederzeit und überall einzusetzen. Infolgedessen hat die Nutzung tragbarer elektronischer Vorrichtungen wie Mobiltelefone, Digitalkameras und Laptops rasant zugenommen. Diese tragbaren elektronischen Vorrichtungen verwenden im Allgemeinen ein Speichersystem mit einem oder mehreren Speichervorrichtungen zum Speichern von Daten. Ein Speichersystem kann als Hauptspeichervorrichtung oder als Zusatzspeichervorrichtung einer tragbaren elektronischen Vorrichtung verwendet werden.
  • Speichersysteme bieten ausgezeichnete Stabilität, Langlebigkeit, hohe Zugriffsgeschwindigkeit und geringen Stromverbrauch, da sie im Vergleich zu einer Festplatte keine beweglichen Teile aufweisen. Beispiele für Speichersysteme mit solchen Vorteilen sind Universal Serial Bus (USB)-Speichervorrichtungen, Speicherkarten mit verschiedenen Schnittstellen und Solid State Drives (SSDs).
  • ZUSAMMENFASSUNG
  • Ausführungsformen der vorliegenden Erfindung richten sich auf ein Speichersystem, das in der Lage ist, einen Flush-Vorgang effizient durchzuführen.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung beinhaltet eine Speichervorrichtung: eine Speichervorrichtung, die zum Speichern von Hostdaten geeignet ist, welche von einem Host bereitgestellt werden; und eine Speichersteuerung, die geeignet ist zum Verwalten und Übertragen der Hostdaten zwischen dem Host und der Speichervorrichtung, wobei die Speichersteuerung umfasst: einen Schreibpuffer, der geeignet ist zum Zwischenspeichern der an die Speichervorrichtung zu übertragenden Hostdaten; eine Pufferüberwachungsvorrichtung, die geeignet ist zum Überprüfen eines Nutzungsumfangs des Schreibpuffers während einer vorbestimmten Periode; eine Puffernutzungsvergleichsvorrichtung, die geeignet ist zum Erzeugen eines Flush-Steuersignals basierend auf einem Nutzungsumfangsvergleichsergebnis, indem sie den Nutzungsumfang, der während einer aktuellen Periode überprüft wurde, welche der vorbestimmten Periode entspricht, mit dem Nutzungsumfang vergleicht, der während einer früheren Periode überprüft wurde, welche der vorbestimmten Periode entspricht; und eine erste Flush-Vorrichtung, die geeignet ist zum Übertragen der im Schreibpuffer zwischengespeicherten Hostdaten an die Speichervorrichtung als Reaktion auf das Flush-Steuersignal.
  • Gemäß einer weiteren Ausführungsform der vorliegenden Erfindung beinhaltet ein Verfahren zum Betreiben eines Speichersystems: Puffern von Hostdaten, die von einem Host in einem Schreibpuffer bereitgestellt werden; Überprüfen eines Nutzungsumfangs des Schreibpuffers während einer vorbestimmten Periode; Erzeugen eines Flush-Steuersignals basierend auf einem Nutzungsumfangsvergleichsergebnis, durch Vergleichen des während einer aktuellen Periode überprüften Nutzungsumfangs entsprechend der vorbestimmten Periode mit dem während einer vorhergehenden Periode überprüften Nutzungsumfang entsprechend der vorbestimmten Periode; und Ausführen eines ersten Flush-Vorgangs zum Übertragen der im Schreibpuffer zwischengespeicherten Hostdaten an eine Speichervorrichtung als Reaktion auf das Flush-Steuersignal.
  • Gemäß einer weiteren Ausführungsform der vorliegenden Erfindung beinhaltet eine Speichervorrichtung: eine Speichervorrichtung; einen Puffer, der zum Puffern externer Daten geeignet ist; und eine Steuerung, die zum Steuern der Speichervorrichtung geeignet ist, um periodisch einen internen Flush-Vorgang zum Flushen der gepufferten Daten darin durchzuführen, wobei die Steuerung ferner die Speichervorrichtung steuert, um den internen Flush-Vorgang einer aktuellen Periode zu überspringen, wenn die Differenz zwischen den Größen der gepufferten Daten der letzten zwei oder mehr Perioden innerhalb eines Schwellenwerts variiert.
  • Figurenliste
    • 1 ist ein Blockdiagramm, das ein Datenverarbeitungssystem mit einem Speichersystem gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
    • 2 ist ein Diagramm, das eine Speichervorrichtung darstellt, die in dem in 1 dargestellten Speichersystem verwendet wird.
    • 3 ist ein Schaltplan, der eine Speicherzellenanordnung eines Speicherblocks in der in 1 dargestellten Speichervorrichtung darstellt.
    • 4 ist ein Blockdiagramm, das eine Struktur einer Speichervorrichtung eines Speichersystems gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
    • 5 ist ein Blockdiagramm, das eine Struktur eines Speichersystems gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
    • 6 ist ein Blockdiagramm, das den Aufbau einer ersten Flush-Vorrichtung 506 veranschaulicht.
    • 7 ist ein Blockdiagramm, das den Aufbau einer zweiten Flush-Vorrichtung 512 veranschaulicht.
    • 8 ist ein Flussdiagramm, das den Betrieb eines Speichersystems gemäß einer Ausführungsform der vorliegenden Erfindung beschreibt.
    • 9 bis 17 sind Diagramme, die exemplarische Anwendungen eines Datenverarbeitungssystems gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung veranschaulichen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Exemplarische Ausführungsformen der vorliegenden Erfindung werden im Folgenden unter Bezugnahme auf die beiliegenden Figuren näher beschrieben. Die vorliegende Erfindung kann jedoch in verschiedenen Formen ausgeführt werden und sollte nicht als auf die hier dargelegten Ausführungsformen beschränkt verstanden werden. Vielmehr werden diese Ausführungsformen so vorgestellt, dass diese Offenbarung vollständig und genau ist und den Umfang der vorliegenden Erfindung denjenigen, die im Fachgebiet erfahren sind, vollständig vermittelt. Während der gesamten Offenbarung beziehen sich gleichartige Referenznummern auf gleichartige Teile in den verschiedenen Figuren und Ausführungsformen der vorliegenden Erfindung.
  • Es wird darauf hingewiesen, dass die Bezugnahme auf „eine Ausführungsform“ nicht unbedingt nur eine Ausführungsform bedeutet, und verschiedene Bezugnahmen auf „eine Ausführungsform“ nicht unbedingt auf dieselbe Ausführungsform(en).
  • Es versteht sich, dass, obwohl die Begriffe „erste“ und/oder „zweite“ hierin zur Beschreibung verschiedener Elemente verwendet werden können, diese Elemente nicht durch diese Begriffe eingeschränkt werden sollten. Diese Begriffe werden nur zur Unterscheidung eines Elements von einem anderen Element verwendet. So könnte beispielsweise ein erstes, im Folgenden erörtertes Element als zweites Element bezeichnet werden, ohne von den Lehren der vorliegenden Offenbarung abzuweichen. Ebenso könnte das zweite Element auch als das erste Element bezeichnet werden.
  • Es versteht sich, dass, wenn ein Element als „gekoppelt“ oder „verbunden“ mit einem anderen Element bezeichnet wird, es direkt gekoppelt oder mit dem anderen Element verbunden werden kann oder dazwischenliegende Elemente vorhanden sein können. Im Gegensatz dazu ist zu verstehen, dass, wenn ein Element als „direkt gekoppelt“ oder „direkt verbunden“ mit einem anderen Element bezeichnet wird, keine dazwischenliegenden Elemente vorhanden sind. Andere Ausdrücke, die die Beziehung zwischen den Elementen beschreiben, wie „zwischen“, „direkt zwischen“, „angrenzend an“ oder „direkt angrenzend an“, sollten auf die gleiche Weise interpretiert werden.
  • Die hier verwendete Terminologie dient nur der Beschreibung bestimmter Ausführungsformen und soll nicht einschränkend verstanden werden. In der vorliegenden Offenbarung sollen die Singularformen auch die Pluralformen umfassen, sofern der Kontext nichts anderes besagt. Es wird weiter zu verstehen, dass die Begriffe „umfassen“, „einschließen“, „aufweisen“ usw., wenn sie in dieser Spezifikation verwendet werden, das Vorhandensein von angegebenen Merkmalen, Zahlen, Schritten, Operationen, Elementen, Komponenten und / oder Kombinationen davon spezifizieren, aber das Vorhandensein oder Hinzufügen eines oder mehrerer anderer Merkmale, Zahlen, Schritte, Operationen, Elemente, Komponenten und/oder Kombinationen davon nicht ausschließen.
  • Die vorstehend beschriebenen exemplarischen Ausführungsformen dienen lediglich dem Verständnis des technischen Geistes der vorliegenden Offenbarung, und der Anwendungsbereich der vorliegenden Offenbarung sollte nicht auf die oben beschriebenen exemplarischen Ausführungsformen beschränkt werden. Für diejenigen, die in dem Fachgebiet erfahren sind, auf das sich die vorliegende Offenbarung bezieht, wird es offensichtlich sein, dass neben den oben beschriebenen exemplarischen Ausführungsformen weitere Änderungen, die auf dem technischen Geist der vorliegenden Offenbarung beruhen, vorgenommen werden können.
  • Sofern nicht anders definiert, haben alle hierin verwendeten Begriffe, einschließlich technischer und wissenschaftlicher Begriffe, die gleiche Bedeutung, wie sie allgemein verstanden werden von demjenigen, der in dem Fachgebiet erfahren ist, auf das sich die vorliegende Offenbarung bezieht. Sofern in der vorliegenden Offenbarung nicht anders definiert, dürfen die Begriffe nicht als vollkommen oder übermäßig formell ausgelegt werden.
  • Im Folgenden werden die verschiedenen Ausführungsformen der vorliegenden Erfindung unter Bezugnahme auf die beigefügten Figuren ausführlich beschrieben.
  • 1 ist ein Blockdiagramm, das ein Datenverarbeitungssystem 100 mit einem Speichersystem 110 gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
  • Unter Bezugnahme auf 1 kann das Datenverarbeitungssystem 100 einen Host 102 und das Speichersystem 110 einschließen.
  • Der Host 102 kann eines von einer Vielzahl von tragbaren elektronischen Vorrichtungen wie ein Mobiltelefon, einen MP3-Player und einen Laptop oder eines von einer Vielzahl von nicht tragbaren elektronischen Vorrichtungen wie einen Desktopcomputer, einen Spielautomat, einen Fernseher und einen Projektor einschließen.
  • Der Host 102 kann mindestens ein Betriebssystem OS (Operating System) oder eine Vielzahl von Betriebssystemen beinhalten. Der Host 102 kann ein Betriebssystem ausführen, um eine Operation durchzuführen, die der Anforderung eines Benutzers auf dem Speichersystem 110 entspricht. Hier kann der Host 102 eine Vielzahl von Befehlen bereitstellen, die der Anforderung eines Benutzers an das Speichersystem 110 entsprechen. Somit kann das Speichersystem 110 bestimmte Operationen ausführen, die der Vielzahl von Befehlen entsprechen, die der Anforderung des Benutzers entsprechen. Das Betriebssystem kann allgemeine Funktionen und Operationen des Hosts 102 verwalten und steuern. Das Betriebssystem kann eine Operation zwischen dem Host 102 und einem Benutzer unter Verwendung des Datenverarbeitungssystems 100 oder des Speichersystems 110 unterstützen.
  • Das Speichersystem 110 kann eine bestimmte Funktion oder Operation als Reaktion auf eine Anforderung des Hosts 102 betätigen oder ausführen und insbesondere Daten speichern, auf die der Host 102 zugreifen kann. Das Speichersystem 110 kann als Hauptspeichersystem oder als Zusatzspeichersystem des Hosts 102 verwendet werden. Das Speichersystem 110 kann mit einer von verschiedenen Arten von Speichervorrichtungen implementiert werden, die gemäß einem Protokoll einer Host-Schnittstelle elektrisch mit dem Host 102 gekoppelt werden können. Nicht einschränkende Beispiele für das Speichersystem 110 sind ein Solid State Drive (SSD), eine Multimedia-Karte (MMC) und eine Embedded MMC (eMMC).
  • Das Speichersystem 110 kann verschiedene Arten von Speichervorrichtungen einschließen. Nicht einschränkende Beispiele für solche Speichervorrichtungen sind flüchtige Speichervorrichtungen wie ein dynamischer DRAM-Zugriffsspeicher (DRAM) und ein statisches RAM (SRAM) und nichtflüchtige Speichervorrichtungen wie ein Read Only Memory (ROM), ein Masken-ROM (MROM), ein programmierbarer ROM (PROM), ein löschbarer programmierbarer ROM (EPROM), ein elektrisch löschbarer programmierbarer ROM (EEPROM), ein Ferroelektrisches RAM (FRAM), ein Phasenwechsel-RAM (PRAM), ein Magnetoresistives RAM (MRAM), ein Resistive RAM (RRAM) und einen Flash-Speicher.
  • Das Speichersystem 110 kann eine Speichervorrichtung 150 und eine Steuerung 130 einschließen.
  • Die Steuerung 130 und die Speichervorrichtung 150 können in eine einzige Halbleitervorrichtung integriert werden, die wie oben beschrieben in jedes der verschiedenen Speichersysteme eingeschlossen sein kann. So können beispielsweise die Steuerung 130 und die Speichervorrichtung 150 als eine einzige Halbleitervorrichtung integriert sein, um eine SSD, eine PCMCIA-Karte (Personal Computer Memory Card International Association), eine SD-Karte mit einer Mini-SD Karte, einer Micro-SD und einer SDHC sowie eine UFS-Vorrichtung zu bilden. Das Speichersystem 110 kann als Teil eines Computers, eines Smartphones, einer tragbaren Spielevorrichtung oder eines von verschiedenen Komponenten konfiguriert werden, die ein Computersystem bilden.
  • Die Speichervorrichtung 150 kann eine nichtflüchtige Speichervorrichtung sein, die gespeicherte Daten speichern kann, obwohl keine Stromversorgung vorhanden ist. Die Speichervorrichtung 150 kann Daten speichern, die von dem Host 102 durch einen Schreibvorgang bereitgestellt werden, und darin gespeicherte Daten durch einen Lesevorgang an den Host 102 ausgeben. In einer Ausführungsform kann die Speichervorrichtung 150 eine Vielzahl von Speicherelementen (nicht dargestellt) einschließen, und jedes Speicherelement kann eine Vielzahl von Ebenen (nicht dargestellt) einschließen. Jede Ebene kann eine Vielzahl von Speicherblöcken 152 bis 156 einschließen, von denen jeder eine Vielzahl von Seiten einschließen kann, von denen jede eine Vielzahl von Speicherzellen einschließen kann, die mit einer Wortleitung gekoppelt sind. In einer Ausführungsform kann die Speichervorrichtung 150 ein Flash-Speicher mit einer dreidimensionalen (3D) Stapelstruktur sein.
  • Die Struktur der Speichervorrichtung 150 und die 3D Stapelstruktur der Speichervorrichtung 150 werden im Folgenden anhand der 2 bis 4 ausführlich beschrieben.
  • Die Steuerung 130 kann die Speichervorrichtung 150 als Reaktion auf eine Anforderung des Hosts 102 steuern. So kann beispielsweise die Steuerung 130 Daten, die von der Speichervorrichtung 150 gelesen wurden, an den Host 102 liefern und Daten, die von dem Host 102 bereitgestellt werden, in der Speichervorrichtung 150 speichern. Für diesen Vorgang kann die Steuerung 130 Lese-, Schreib-, Programmier- und Löschvorgänge der Speichervorrichtung 150 steuern.
  • Insbesondere kann die Steuerung 130 eine Host-Schnittstelle (I/F) 132, einen Prozessor 134, eine Speicherschnittstelle 142 und einen Speicher 144 einschließen, die alle funktionsfähig über einen internen Bus gekoppelt oder in Eingriff stehen. Insbesondere kann die Speichersteuerung 130 eine Host-Schnittstelle (I/F) 132, einen Prozessor 134, eine Speicherschnittstelle (I/F) 142 und einen Speicher 144 einschließen. Die Speichersteuerung 130 kann ferner eine Pufferüberwachungsvorrichtung 502, eine Puffernutzungsvergleichsvorrichtung 504 und eine Puffersteuervorrichtung 514 einschließen, die später mit Bezug auf 5 beschrieben werden, und der Speicher 144 kann einen Schreibpuffer 508 beinhalten.
  • Die Host-Schnittstelle 132 kann einen Befehl und Daten des Hosts 102 verarbeiten. Die Host-Schnittstelle 132 kann mit dem Host 102 über eines oder mehrere verschiedene Schnittstellenprotokolle wie Universal Serial Bus (USB), Multimedia-Karte (MMC), Peripheral Component Interconnect Express (PCI-e oder PCle), Small Computer System Interface (SCSI), Serial-Attached SCSI (SAS), Serial Advanced Technology Attachment (SATA), Parallel Advanced Technology Attachment (PATA), Enhanced Small Disk Interface (ESDI) und Integrated Drive Electronics (IDE) kommunizieren. Die Host-Schnittstelle 132 kann über eine Firmware gesteuert werden, d.h. eine Host Interface Layer (HIL) zum Datenaustausch mit dem Host 102.
  • Die Speicherschnittstelle 142 kann als Speicher/Speicherschnittstelle zwischen der Steuerung 130 und der Speichervorrichtung 150 dienen, so dass die Steuerung 130 die Speichervorrichtung 150 als Reaktion auf eine Anforderung des Host 102 steuern kann.
  • Der Speicher 144 kann als ein Arbeitsspeicher des Speichersystems 110 und der Steuerung 130 dienen und Daten zum Steuern des Speichersystems 110 und der Steuerung 130 speichern.
  • Der Speicher 144 kann ein flüchtiger Speicher sein. So kann beispielsweise der Speicher 144 ein statisches RAM (SRAM) oder ein dynamisches RAM (DRAM) sein. Der Speicher 144 kann innerhalb oder außerhalb der Steuerung 130 angeordnet sein. 1 zeigt den innerhalb der Steuerung 130 angeordneten Speicher 144. In einer Ausführungsform kann der Speicher 144 ein externer flüchtiger Speicher mit einer Speicherschnittstelle zum Übertragen von Daten zwischen dem Speicher 144 und der Steuerung 130 sein.
  • Wie vorstehend beschrieben, kann der Speicher 144 einen Programmspeicher, einen Datenspeicher, einen Schreibpuffer/Cache, einen Lesepuffer/Cache, einen Datenpuffer/Cache und einen Map-Puffer/Cache einschließen, um einige Daten zu speichern, die zum Ausführen von Datenschreib- und -lesevorgängen zwischen dem Host 102 und der Speichervorrichtung 150 erforderlich sind, sowie andere Daten, die für die Steuerung 130 und die Speichervorrichtung 150 zum Ausführen dieser Vorgänge erforderlich sind.
  • Der Prozessor 134 kann die Gesamtabläufe des Speichersystems 110 steuern. Der Prozessor 134 kann Firmware verwenden, um die Gesamtabläufe des Speichersystems 110 zu steuern. Die Firmware kann als Flash Translation Layer (FTL) bezeichnet werden. Der Prozessor 134 kann mit einem Mikroprozessor oder einer Zentraleinheit (CPU) implementiert werden.
  • So kann beispielsweise die Steuerung 130 eine vom Host 102 in der Speichervorrichtung 150 angeforderte Operation durch den Prozessor 134 ausführen, der als Mikroprozessor, CPU oder dergleichen implementiert ist. Außerdem kann die Steuerung 130 einen Hintergrundbetrieb auf der Speichervorrichtung 150 durch den Prozessor 134 durchführen, die als Mikroprozessor oder CPU realisiert werden kann. Der auf der Speichervorrichtung 150 durchgeführte Hintergrundbetrieb kann einen Vorgang zum Kopieren und Verarbeiten von Daten einschließen, die in einigen Speicherblöcken von den Speicherblöcken 152 bis 156 der Speichervorrichtung 150 gespeichert sind, in andere Speicherblöcke, z.B. einen Garbage Collection (GC)-Vorgang, einen Vorgang zum Ausführen eines Austausches zwischen den Speicherblöcken 152 bis 156 oder zwischen den Daten der Speicherblöcke 152 bis 156, z.B. einen Wear-Leveling (WL)-Vorgang, einen Vorgang zum Speichern der in der Steuerung 130 gespeicherten Map-Daten in den Speicherblöcken 152 bis 156, z.B. einen Map Flush-Vorgang, oder einen Vorgang zum Verwalten von fehlerhaften Blocks der Speichervorrichtung 150, z.B. einen Bad Block Management Vorgang zum Erfassen und Verarbeiten von fehlerhaften Blocks von den Speicherblöcken 152 bis 156 in der Speichervorrichtung 150.
  • Die Speichervorrichtung des Speichersystems gemäß einer Ausführungsform der vorliegenden Erfindung wird unter Bezugnahme auf die 2 bis 4 ausführlich beschrieben.
  • 2 ist ein schematisches Diagramm, das die Speichervorrichtung 150 veranschaulicht. 3 ist ein Schaltplan, der eine exemplarische Konfiguration einer Speicherzellenanordnung eines Speicherblocks 330 in der Speichervorrichtung 150 darstellt. 4 ist ein schematisches Diagramm, das eine exemplarische 3D Struktur der Speichervorrichtung 150 veranschaulicht.
  • Unter Bezugnahme auf 2 kann die Speichervorrichtung 150 eine Vielzahl von Speicherblöcken BLOCKO bis BLOCKN-1 einschließen, wobei N eine ganze Zahl größer als 1 ist. Jeder der Blöcke BLOCKO bis BLOCKN-1 kann eine Vielzahl von Seiten beinhalten, zum Beispiel 2M- oder M-Seiten, deren Anzahl je nach Schaltungsdesign variieren kann, wobei M eine ganze Zahl größer als 1 ist.
  • Außerdem können Speicherzellen in den jeweiligen Speicherblöcken BLOCKO bis BLOCKN-1 einer oder mehrere von einem Single Level Cell (SLC) Speicherblock sein, der 1-Bit-Daten speichert, oder ein Multi-Level Cell (MLC) Speicherblock, der 2-Bit-Daten speichert. Daher kann die Speichervorrichtung 150 SLC-Speicherblöcke oder MLC-Speicherblöcke einschließen, abhängig von der Anzahl der Bits, die in jeder der Speicherzellen in den Speicherblöcken ausgedrückt oder gespeichert werden können. Die SLC-Speicherblöcke können eine Vielzahl von Seiten beinhalten, die durch Speicherzellen verkörpert werden, die jeweils 1-Bit-Daten speichern. Die SLC-Speicherblöcke können im Allgemeinen eine höhere Datenverarbeitungsleistung und eine längere Lebensdauer aufweisen als die MLC-Speicherblöcke. Die MLC-Speicherblöcke können eine Vielzahl von Seiten beinhalten, die durch Speicherzellen verkörpert werden, die jeweils Multi-Bit-Daten speichern (z.B. 2 oder mehr Bit). Die MLC-Speicherblöcke können im Allgemeinen einen größeren Datenspeicherplatz, d.h. eine höhere Integrationsdichte, aufweisen als die SLC-Speicherblöcke. In einer weiteren Ausführungsform kann die Speichervorrichtung 150 eine Vielzahl von Triple Level Cell (TLC)-Speicherblöcken einschießen. In noch einer weiteren Ausführungsform kann die Speichervorrichtung 150 eine Vielzahl von Quadruple Level Cell (QLC)-Speicherblöcken einschließen. Die TLC-Speicherblöcke können eine Vielzahl von Seiten einschließen, die durch Speicherzellen verkörpert werden, die jeweils 3-Bit-Daten speichern können. Die QLC-Speicherblöcke können eine Vielzahl von Seiten beinhalten, die durch Speicherzellen verkörpert werden, die jeweils 4-Bit-Daten speichern können.
  • Anstelle eines nichtflüchtigen Speichers kann die Speichervorrichtung 150 durch einen beliebigen von einem Phase-change Random Access Memory (PCRAM), einem Resistive Random Access Memory (RRAM(ReRAM)), einem ferroelektrisches RAM (FRAM) und einem Spin Transfer Torque Magnetic Random Access Memory (STT-RAM(STT-MRAM)) implementiert werden.
  • Die Speicherblöcke 210, 220, 230, 240 können die vom Host 102 durch einen Programmbetrieb übertragenen Daten speichern und die darin gespeicherten Daten durch einen Lesevorgang an den Host 102 übertragen.
  • Unter Bezugnahme auf 3 kann der Speicherblock 330 eine Vielzahl von Cell-Strings 340 beinhalten, die mit einer Vielzahl von entsprechenden Bitleitungen BL0 bis BLm-1 gekoppelt sind. Der Cell-String 340 jeder Spalte kann einen oder mehrere Drain-Selection-Transistoren DST und einen oder mehrere Source-Selection-Transistoren SST einschließen. Zwischen den Drain- und Source-Selection-Transistoren DST und SST können eine Vielzahl von Speicherzellen MC0 bis MCn-1 in Reihe geschaltet werden. In einer Ausführungsform kann jeder der Source-Selection-Transistoren MC0 bis MCn-1 durch einen MLC verkörpert werden, der in der Lage ist, Dateninformationen einer Vielzahl von Bits zu speichern. Jeder der Cell-Strings 340 kann elektrisch mit einer entsprechenden Bitleitung aus der Vielzahl der Bitleitungen BL0 bis BLm-1 gekoppelt werden. Wie in 3 dargestellt, ist beispielsweise der erste Cell-String mit der ersten Bitleitung BL0 und der letzte Cell-String mit der letzten Bitleitung BLm-1 gekoppelt.
  • Obwohl 3 NAND-Flash-Speicherzellen veranschaulicht, ist die vorliegende Offenbarung nicht darauf beschränkt. Es wird darauf hingewiesen, dass die Speicherzellen NOR-Flash-Speicherzellen oder Hybrid-Flash-Speicherzellen sein können, die zwei oder mehr Arten von Speicherzellen beinhalten, die darin kombiniert sind. Außerdem wird darauf hingewiesen, dass die Speichervorrichtung 150 eine Flash-Speichervorrichtung mit einem leitfähigen Floating-Gate, wie beispielsweise einer Ladungsspeicherschicht, oder eine Charge Trap Flash (CTF)-Speichervorrichtung mit einer Isolierschicht als Ladungsspeicherschicht sein kann.
  • Die Speichervorrichtung 150 kann ferner eine Spannungsversorgung 310 einschließen, die verschiedene Wortleitungsspannungen erzeugt, einschließlich einer Programmspannung, einer Lesespannung und einer Durchgangsspannung, um die Wortleitungen gemäß einer Betriebsart zu versorgen. Der Spannungserzeugungsbetrieb der Spannungsversorgung 310 kann durch eine Steuerschaltung (nicht dargestellt) gesteuert werden. Unter der Steuerung der Steuerschaltung kann die Spannungsversorgung 310 mindestens einen der Speicherblöcke (oder Sektoren) der Speicherzellenanordnung auswählen, mindestens eine der Wortleitungen des ausgewählten Speicherblocks auswählen und die Wortleitungsspannungen der / den ausgewählten Wortleitung(en) und den nicht ausgewählten Wortleitungen bei Bedarf zuführen.
  • Die Speichervorrichtung 150 kann eine Lese-/Schreibschaltung 320 beinhalten, die von der Steuerschaltung gesteuert wird. Während eines Verifikations-/Normallesevorgangs kann die Lese-/Schreibschaltung 320 als Leseverstärker zum Lesen (Erfassen und Verstärken) von Daten aus der Speicherzellenanordnung betrieben werden. Während eines Programmbetriebs kann die Lese-/Schreibschaltung 320 als Schreib-Treiber zum Zuführen einer Spannung oder eines Stroms zu Bitleitungen gemäß den in der Speicherzellenanordnung zu speichernden Daten arbeiten. Während eines Programmbetriebs kann die Lese-/Schreibschaltung 320 aus einem Puffer (nicht dargestellt) Daten empfangen, die in der Speicherzellenanordnung gespeichert werden sollen, und kann Bitleitungen entsprechend den empfangenen Daten ansteuern. Die Lese-/Schreibschaltung 320 kann eine Vielzahl von Seitenpuffern 322 bis 326 einschließen, die jeweils den Spalten (oder Bitleitungen) oder Spaltenpaaren (oder Bitleitungspaaren) entsprechen. Jeder der Seitenpuffer 322 bis 326 kann eine Vielzahl von Zwischenspeichern (nicht dargestellt) einschließen.
  • Die Speichervorrichtung 150 kann durch eine 2D oder 3D Speichervorrichtung verkörpert werden. Insbesondere, wie in 4 dargestellt, kann die Speichervorrichtung 150 durch eine nichtflüchtige Speichervorrichtung mit einer 3D Stapelstruktur verkörpert werden. Wenn die Speichervorrichtung 150 eine 3D Struktur aufweist, kann die Speichervorrichtung 150 eine Vielzahl von Speicherblöcken BLK0 bis BLKN-1 einschließen. Hierin ist 4 ein Blockdiagramm, das die Speicherblöcke 152, 154 und 156 der in 1 dargestellten Speichervorrichtung 150 veranschaulicht. Jeder der Speicherblöcke 152, 154 und 156 kann in einer 3D Struktur (oder vertikalen Struktur) realisiert werden. So können beispielsweise die Speicherblöcke 152, 154 und 156 Strukturen einer dreidimensionalen Struktur beinhalten, die sich in den ersten bis dritten Richtungen erstrecken, z.B. eine x-Achsenrichtung, eine y-Achsenrichtung und eine z-Achsenrichtung.
  • Jeder in der Speichervorrichtung 150 enthaltene Speicherblock 330 kann eine Vielzahl von NAND-Strings NS beinhalten, die in die zweite Richtung verlängert werden, und eine Vielzahl von NAND-Strings NS, die in die erste Richtung und die dritte Richtung verlängert werden. Hierin kann jeder der NAND-Strings NS mit einer Bitleitung BL, mindestens einer String Selection Line SSL, mindestens einer Ground Selection Line GSL, einer Vielzahl von Wortleitungen WL, mindestens einer Blinddaten-Wortleitung DWL und einer Common Source Line CSL gekoppelt sein, und jeder der NAND-Strings NS kann eine Vielzahl von Transistorstrukturen TS beinhalten. Kurz gesagt, jeder Speicherblock 330 von den Speicherblöcken 152, 154 und 156 der Speichervorrichtung 150 kann mit einer Vielzahl von Bitleitungen BL, einer Vielzahl von String Selection Lines SSL, einer Vielzahl von Ground Selection Lines GSL, einer Vielzahl von Wortleitungen WL, einer Vielzahl von Blinddaten-Wortleitungen DWL und einer Vielzahl von Common Source Lines CSL gekoppelt werden, und jeder Speicherblock 330 kann eine Vielzahl von NAND-Strings NS einschließen. Außerdem kann in jedem Speicherblock 330 eine Bitleitung BL mit einer Vielzahl von NAND-Strings NS gekoppelt werden, um eine Vielzahl von Transistoren in einer NAND-String NS zu realisieren. Außerdem kann ein String Selection Transistor SST von jedem NAND-String NS mit einer entsprechenden Bitleitung BL gekoppelt werden, und ein Ground Selection Transistor GST von jedem NAND-String NS kann mit einer Common Source Line CSL gekoppelt werden. Dabei können Speicherzellen MC zwischen dem String Selection Transistor SST und dem Ground Selection Transistor GST von jedem NAND-String NS vorgesehen werden. Mit anderen Worten, eine Vielzahl von Speicherzellen kann in jedem Speicherblock 330 der Speicherblöcke 152, 154 und 156 der Speichervorrichtung 150 realisiert werden.
  • Wenn Benutzerdaten oder Hostdaten zusammen mit einem Programmbefehl CMDPGM von dem Host 102 bereitgestellt werden, kann die Speichersteuerung 130 die Hostdaten im Speicher 144 im Inneren der Speichersteuerung 130 zwischenspeichern. Die Speichersteuerung 130 kann die Speichervorrichtung 150 nur dann mit den zwischengespeicherten Hostdaten versorgen, wenn die im Speicher 144 zwischengespeicherten Hostdaten eine Page Unit, eine Multi-Plane Page Unit oder eine One-Shot Unit (im Folgenden als Programmeinheit bezeichnet) bilden. Wenn ein Programmbefehl CMDPGM nicht zusätzlich vom Host 102 bereitgestellt wird oder nur ein Programmbefehl CMDPGM für Hostdaten mit der gleichen logischen Blockadresse kontinuierlich bereitgestellt wird, kann es zu einer Victim Situation kommen, in der die Größe der im Speicher 144 zwischengespeicherten Hostdaten konstant gehalten wird. Wenn die Victim Situation eintritt, während die im Speicher 144 zwischengespeicherten Hostdaten noch nicht die Programmeinheit bilden, können die im Speicher 144 zwischengespeicherten Hostdaten möglicherweise die Programmeinheit auch nach Ablauf der Zeit nicht bilden. Daher können die im Speicher 144 zwischengespeicherten Hostdaten der Speichervorrichtung 150 möglicherweise für lange Zeit nicht zur Verfügung gestellt werden, sondern die Hostdaten verbleiben weiterhin im Speicher 144, was problematisch ist.
  • Um nach herkömmlicher Technik das Problem zu lösen, dass die im Speicher 144 zwischengespeicherten Hostdaten nicht die Programmeinheit bilden, obwohl die Zeit in der Victim Situation vergeht, also die Hostdaten nicht in die Speichervorrichtung einprogrammiert werden, sondern weiterhin im Speicher 144 verbleiben, kann die Speichersteuerung die Speichervorrichtung steuern, um periodisch einen internen Flush-Vorgang zum Programmieren der Hostdaten zusammen mit den Blinddaten im Speicherblock durchzuführen, so dass die im Speicher 144 zwischengespeicherten Hostdaten und die Blinddaten die Programmeinheit bilden können. Eine Speichersteuerung nach herkömmlicher Technik kann den internen Flush-Vorgang ausnahmslos zu jedem vorbestimmten Zeitpunkt durchführen, auch wenn der Programmbefehl CMDPGM dem Host 102 kontinuierlich bereitgestellt wird, so dass die im Speicher 144 zwischengespeicherten Hostdaten mit den Hostdaten eine Programmeinheit bilden können, die dem kontinuierlich bereitgestellten Programmbefehl CMDPGM entspricht. Daher besteht nach herkömmlicher Technik das Problem, dass Speicherplatz verschwendet wird, weil die Blinddaten durch den strikten und periodischen internen Flush-Vorgang unnötig in den Speicherblock programmiert werden.
  • Gemäß der Ausführungsform der vorliegenden Erfindung kann die Speichersteuerung 130 die Größe der vom Host 102 an den Speicher 144 gelieferten Hostdaten für eine vorbestimmte Periode überprüfen, und wenn bestimmt wird, dass die im Speicher 144 zwischengespeicherten Hostdaten die Programmeinheit bilden sollen, kann die Speichersteuerung 130 das Problem der unnötigen Programmierung der Blinddaten im Speicherblock verhindern, indem sie den internen Flush-Vorgang überspringt, der periodisch ausgeführt werden soll.
  • 5 ist ein Blockdiagramm, das eine Struktur des Speichersystems 110 gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. 5 stellt schematisch nur die Struktur dar, die sich auf die vorliegende Erfindung im Datenverarbeitungssystem 100 von 1 bezieht.
  • Wie vorstehend beschrieben, kann der Host 102 das Speichersystem 110 mit einer Vielzahl von Befehlen ausstatten, und das Speichersystem 110 kann verschiedene Operationen als Reaktion auf die bereitgestellten Befehle ausführen.
  • Wie in 5 dargestellt, kann die Speichersteuerung 130 weiterhin eine Pufferüberwachungsvorrichtung 502, eine Puffernutzungsvergleichsvorrichtung 504 und eine Puffersteuervorrichtung 514 einschließen. Der Speicher 144 kann einen Schreibpuffer 508 einschließen. Die Puffersteuervorrichtung 514 kann eine erste Flush-Vorrichtung 506 und eine zweite Flush-Vorrichtung 512 einschließen.
  • Die Pufferüberwachungsvorrichtung 502 kann einen Programmbefehl CMDPGM zusammen mit den von dem Host 102 bereitgestellten Hostdaten empfangen. Der Programmbefehl CMDPGM kann aus einer Vielzahl von Befehlen bestehen. Die Pufferüberwachungsvorrichtung 502 kann die Größe der vom Host 102 für eine vorbestimmte Periode bereitgestellten Hostdaten überprüfen und die Hostdatengrößeninformationen in einem internen Speicherplatz speichern. Die Hostdatengrößeninformationen einer aktuellen Periode können als Datengrößeninformationen der aktuellen Periode Infocmt.size und die Hostdatengrößeninformationen einer vorherigen Periode, unmittelbar vor der aktuellen Periode, als Datengrößeninformationen der vorherigen Periode Infoprev.size definiert werden. Die Pufferüberwachungsvorrichtung 502 kann die Puffernutzungsvergleichsvorrichtung 504 mit den Datengrößeninformationen der aktuellen Periode Infocmt.size und den Datengrößeninformationen der vorherigen Periode Infoprev.size zu jedem vorbestimmten Zeitpunkt bereitstellen.
  • Der Schreibpuffer 508 kann die vom Host 102 bereitgestellten Hostdaten zwischenspeichern. Wie vorstehend beschrieben, kann die Speichersteuerung 130 die vom Host 102 bereitgestellten Hostdaten nicht sofort in einen Speicherblock programmieren, sondern kann die Hostdaten im Schreibpuffer 508 zwischenspeichern und die Speichervorrichtung 150 steuern, um die Hostdaten in den Speicherblock zu programmieren, wenn die zwischengespeicherten Hostdaten eine Programmeinheit bilden. Der Schreibpuffer 508 kann als flüchtiger Speicher realisiert werden.
  • Die Puffernutzungsvergleichsvorrichtung 504 kann die Größen vergleichen, die durch die Datengrößeninformationen der aktuellen Periode Infocmt.size und die Datengrößeninformationen der vorherigen Periode Infoprev.size angegeben werden. Wenn die Differenz, die zwischen der Datengrößeninformationen der aktuellen Periode Infocmt.size und der Datengrößeninformationen der vorherigen Periode Infoprev.size angeben wird, kleiner als ein erster Schwellenwert ist, kann die Puffernutzungsvergleichsvorrichtung 504 die erste Flush-Vorrichtung 506 mit einem Flush-Steuersignal SIG_FLUSH versehen. Wenn die Differenz, die zwischen der Datengrößeninformationen der aktuellen Periode Infocmt.size und der Datengrößeninformationen der vorherigen Periode Infoprev.size angeben wird, größer oder gleich dem ersten Schwellenwert ist, kann die Puffernutzungsvergleichsvorrichtung 504 die zweite Flush-Vorrichtung 512 mit einem Auslösesignal Signaltrigger versehen.
  • Die Puffersteuervorrichtung 514 kann die erste Flush-Vorrichtung 506 einschließen, zum Bereitstellen der Speichervorrichtung 150 mit den im Schreibpuffer 508 zwischengespeicherten Hostdaten, als Reaktion auf das Flush-Steuersignal SIG_FLUSH, und die zweite Flush-Vorrichtung 512 einschließen, zum Bereitstellen der Speichervorrichtung 150 mit den zwischengespeicherten Hostdaten, wenn die Größe der im Speicher 508 zwischengespeicherten Hostdaten größer als ein zweiter Schwellenwert ist.
  • Die erste Flush-Vorrichtung 506 kann die Speichereinrichtung 150 steuern, um einen internen Flush-Vorgang basierend auf dem bereitgestellten Flush-Steuersignal SIG_FLUSH durchzuführen. Die erste Flush-Vorrichtung 506 kann die Speichervorrichtung 150 steuern, um den internen Flush-Vorgang zum Programmieren von Blinddaten und den Host-Daten, die die Programmeinheit bilden, in einen Speicherblock durchzuführen.
  • 6 ist ein Blockdiagramm, das eine Struktur der ersten Flush-Vorrichtung 506 veranschaulicht.
  • Die erste Flush-Vorrichtung 506 kann eine erste Programmdatenerzeugungseinheit 602 und eine erste Programmdatenübertragungseinheit 604 beinhalten.
  • Die erste Programmdatenerzeugungseinheit 602 kann die im Schreibpuffer 508 zwischengespeicherten Hostdaten mit den Blinddaten kombinieren, um Programmeinheit-Daten DATA_PGM mit der Größe der Programmeinheit als Reaktion auf das bereitgestellte Flush-Steuersignal SIG_FLUSH zu erzeugen.
  • Die erste Programmdatenübertragungseinheit 604 kann die Speichervorrichtung 150 mit den erzeugten Programmeinheit-Daten DATA_PGM versorgen, so dass die Speichervorrichtung 150 einen internen Flush-Vorgang zum Programmieren der Programmeinheit-Daten DATA_PGM durchführen kann.
  • Gemäß der Ausführungsform der vorliegenden Erfindung kann die erste Flush-Vorrichtung 506 verhindern, dass die Speichervorrichtung 150 Speicherplatz verschwendet, was durch die Programmierung unnötiger Blinddaten verursacht wird, indem sie den internen Flush-Vorgang nur dann durchführt, wenn die Differenz zwischen den Größen, die durch die Datengrößeninformationen der aktuellen Periode Infocmt.size angezeigt werden, und die Informationen zur Datengröße der Vorperiode Infoprev.size kleiner als der erste Schwellenwert ist, d.h. nur dann, wenn die im Schreibpuffer 508 zwischengespeicherten Hostdaten lange Zeit in die Victim-Situation fallen, während sie eine kleinere Größe als die Programmeinheit haben und daher nicht erwartet wird, dass sie bald eine Programmeinheit bilden.
  • Unter Bezugnahme auf 5 kann die zweite Flush-Vorrichtung 512 bestimmen, ob die Größe der im Schreibpuffer 508 zwischengespeicherten Hostdaten größer als ein zweiter Schwellenwert ist oder nicht, basierend auf dem bereitgestellten Auslösesignal Signaltrigger . Wenn die Größe der Hostdaten, die vorübergehend im Schreibpuffer 508 gespeichert sind, größer oder gleich dem zweiten Schwellenwert ist, kann die zweite Flush-Vorrichtung 512 die Speichervorrichtung 150 steuern, um einen Flush-Vorgang zum Programmieren von Hostdaten durchzuführen, und zwar ebenso groß wie die Größe, die dem zweiten Schwellenwert von den Hostdaten entspricht, die vorübergehend im Schreibpuffer 508 in einem Speicherblock gespeichert sind. Die Größe, die den zweiten Schwellenwerten entspricht, kann größer sein als die Größe der Programmeinheit.
  • 7 ist ein Blockdiagramm, das eine Struktur der zweiten Flush-Vorrichtung 512 veranschaulicht.
  • Die zweite Flush-Vorrichtung 512 kann eine zweite Programmdatenerzeugungseinheit 702 und eine zweite Programmdatenübertragungseinheit 704 einschließen.
  • Die zweite Programmdatenerzeugungseinheit 702 kann bestimmen, ob die Größe der im Schreibpuffer 508 zwischengespeicherten Hostdaten größer als der zweite Schwellenwert ist. Die zweite Programmdatenerzeugungseinheit 702 kann Programmdaten DATA_PGM erzeugen, indem sie die im Schreibpuffer 508 zwischengespeicherten Hostdaten durch die Größe entsprechend dem zweiten Schwellenwert dividiert, je nachdem, ob die Größe der im Schreibpuffer 508 zwischengespeicherten Hostdaten größer als der zweite Schwellenwert ist oder nicht.
  • Die zweite Programmdatenübertragungseinheit 704 kann die Speichervorrichtung 150 mit den vorstehend erzeugten Programmdaten DATA_PGM versorgen, so dass die Speichervorrichtung 150 einen Flush-Vorgang zum Programmieren von Programmdaten DATA_PGM durchführt. Wenn die Differenz zwischen den Größen, die durch die Datengrößeninformationen der aktuellen Periode Infocmt.size und die Datengrößeninformationen der vorherigen Periode Infoprev.size angegeben werden, größer oder gleich dem ersten Schwellenwert ist, ist es gemäß der Ausführungsform der vorliegenden Erfindung sinnvoll zu berücksichtigen, dass die Hostdaten, die vorübergehend im Schreibpuffer 508 gespeichert werden, bald eine Programmeinheit bilden können. Unter dieser Annahme muss der interne Flush-Vorgang der aktuellen Periode möglicherweise nicht durchgeführt werden und kann daher übersprungen werden. Die zweite Flush-Vorrichtung 512 kann die Speichervorrichtung 150 steuern, um den Flush-Vorgang zum Programmieren von Hostdaten mit der Größe der Programmeinheit in den Speicherblock durchzuführen, unabhängig davon, ob der interne Flush-Vorgang durchgeführt wird oder nicht, wenn die Größe SizeBuffer der im Schreibpuffer 508 zwischengespeicherten Hostdaten größer als der zweite Schwellenwert ist.
  • 8 ist ein Flussdiagramm, das einen Betrieb des Speichersystems 110 gemäß einer Ausführungsform der vorliegenden Erfindung beschreibt. Der Betrieb des Speichersystems 110 gemäß der exemplarischen Ausführungsform der vorliegenden Erfindung kann zu jedem Zeitpunkt wiederholt werden. 8 veranschaulicht einen Prozess des Betriebs des Speichersystems 110, der aus Gründen der Übersichtlichkeit in der Beschreibung während einer Periode durchgeführt wurde.
  • In Schritt S802 kann die Pufferüberwachungsvorrichtung 502 Hostdaten zusammen mit dem vom Host 102 bereitgestellten Programmbefehl CMDPGM empfangen, und der Schreibpuffer 508 kann die vom Host 102 bereitgestellten Hostdaten zwischenspeichern.
  • In Schritt S804 kann die Pufferüberwachungsvorrichtung 502 bestimmen, ob die aktuelle Periode abgeschlossen ist oder nicht. Wenn die Pufferüberwachungsvorrichtung 502 bestimmt, dass diese nicht abgeschlossen ist („Nein“ im Schritt S804), kann die Pufferüberwachungsvorrichtung 502 zum Schritt S802 zurückkehren und die Hostdaten vom Host 102 bis zum Abschluss der aktuellen Periode weiterhin empfangen.
  • In Schritt S804, wenn die aktuelle Periode abgeschlossen ist („Ja“ in Schritt S804), kann die Pufferüberwachungsvorrichtung 502 die Größe der vom Host 102 während der aktuellen Periode bereitgestellten Hostdaten überprüfen und die Datengrößeninformationen der aktuellen Periode Infocmt.size in einem internen Speicherplatz speichern.
  • In Schritt S804 kann die Pufferüberwachungsvorrichtung 502 die Pufferauslastungsvergleichsvorrichtung 504 mit den Datengrößeninformationen der aktuellen Periode Infocmt.size und den Datengrößeninformationen der vorherigen Periode Infoprev.size für jede vorbestimmte Periode bereitstellen. Die in 8 dargestellte aktuelle Periode kann eine einzelne Periode des gesamten Prozesses sein.
  • In Schritt S806 kann die Puffernutzungsvergleichsvorrichtung 504 die Größen vergleichen, die durch die Datengrößeninformationen der aktuellen Periode Infocmt.size und die Datengrößeninformationen der vorherigen Periode Infoprev.size , die im Schritt S804 bereitgestellt werden, angegeben werden.
  • Wenn die Differenz zwischen den Größen, die durch die Datengrößeninformationen der aktuellen Periode Infocmt.size und die Datengrößeninformationen der vorherigen Periode Infoprev.size angegeben werden, kleiner ist als der erste Schwellenwert TH1 („Ja“ im Schritt S806), kann die Puffernutzungsvergleichsvorrichtung 504 die erste Flush-Vorrichtung 506 mit einem Flush-Steuersignal SIG_FLUSH versehen. Wenn die Differenz zwischen den Größen, die durch die Datengrößeninformationen der aktuellen Periode Infocmt.size und die Datengrößeninformationen der vorherigen Periode Infoprev.size angegeben werden, größer oder gleich dem ersten Schwellenwert TH1 („Nein“ im Schritt S806) ist, kann die Puffernutzungsvergleichsvorrichtung 504 der zweiten Flush-Vorrichtung 512 einen Auslösesignal Signaltrigger zur Verfügung stellen.
  • In Schritt S808 kann die erste Flush-Vorrichtung 506 die Speichervorrichtung 150 steuern, um einen internen Flush-Vorgang gemäß dem in Schritt S806 bereitgestellten Flush-Steuersignal SIG_FLUSH durchzuführen. Die erste Flush-Vorrichtung 506 steuert die Speichervorrichtung 150, um den internen Flush-Vorgang zum Programmieren von Blinddaten und den Host-Daten, die die Programmeinheit bilden, in einem Speicherblock durchzuführen.
  • In Schritt S810 kann die zweite Flush-Vorrichtung 512 bestimmen, ob die Größe SizeBuffer der im Schreibpuffer 508 zwischengespeicherten Hostdaten größer als der zweite Schwellenwert TH2 ist oder nicht, basierend auf dem im Schritt S806 bereitgestellten Auslösesignal Signaltrigger .
  • Wenn in Schritt S812 bestimmt wird, dass die Größe SizeBuffer der im Schreibpuffer 508 zwischengespeicherten Hostdaten größer als der zweite Schwellenwert TH2 („Ja“ im Schritt S810) ist, kann die zweite Flush-Vorrichtung 512 die Speichervorrichtung 150 steuern, um einen Flush-Vorgang zum Programmieren von Hostdaten der Größe durchzuführen, die dem zweiten Schwellenwert TH2 entspricht, unter den Daten, die zwischenzeitlich im Schreibpuffer 508 in einem Speicherblock gespeichert sind.
  • Wenn im Schritt S810 bestimmt wird, dass die Größe SizeBuffer der im Schreibpuffer 508 zwischengespeicherten Hostdaten kleiner ist als der zweite Schwellenwert TH2 („No“ im Schritt S810), kann der Prozess enden.
  • Die zweite Flush-Vorrichtung 512 kann die vom Host 102 bereitgestellten Hostdaten empfangen, unabhängig davon, ob der interne Flush-Vorgang durchgeführt wird oder nicht, und wenn die Größe SizeBuffer der im Schreibpuffer 508 zwischengespeicherten Hostdaten größer als der zweite Schwellenwert TH2 ist, kann sie die Speichervorrichtung 150 steuern, um den Flush-Vorgang zum Programmieren der Hostdaten, welche eine Programmeinheit bildend, in einen Speicherblock durchzuführen.
  • Das Speichersystem gemäß einer Ausführungsform der vorliegenden Erfindung darf nicht unbedingt einen internen Flush-Vorgang zu jedem vorbestimmten Zeitpunkt durchführen, und das Datenverarbeitungssystem kann den internen Flush-Vorgang basierend auf der Größe der vom Host 102 bereitgestellten Hostdaten durchführen, wenn die vorbestimmte Zeitspanne eintritt. Wenn die Größe der vom Host 102 bereitgestellten Hostdaten ausreicht, damit die im Schreibpuffer 508 zwischengespeicherten Hostdaten zusammen mit den vom Host 102 bereitgestellten Hostdaten eine Programmeinheit bilden, ist es möglich, das Problem der unnötigen Durchführung einer Blinddaten-Programmoperation in einem Speicherblock zu vermeiden, indem der interne Flush-Vorgang übersprungen wird.
  • Im Folgenden werden ein Datenverarbeitungssystem und elektronische Vorrichtungen, bei denen das Speichersystem 110 die Speichervorrichtung 150 und die Steuerung 130 einschließt, die vorstehend unter Bezugnahme auf die 1 bis 8 gemäß der Ausführungsform der vorliegenden Erfindung beschrieben sind, unter Bezugnahme auf die 9 bis 17 ausführlich beschrieben.
  • 9 ist ein Diagramm, das ein weiteres Beispiel für ein Datenverarbeitungssystem mit einem Speichersystem gemäß einer Ausführungsform darstellt. 9 veranschaulicht beispielsweise ein Speicherkartensystem 6100, auf das das Speichersystem angewendet werden kann.
  • Unter Bezugnahme auf 9 kann das Speicherkartensystem 6100 eine Speichersteuerung 6120, eine Speichervorrichtung 6130 und einen Konnektor 6110 beinhalten.
  • Insbesondere kann die Speichersteuerung 6120 elektrisch mit der Speichervorrichtung 6130 verbunden sein und für den Zugriff auf diese konfiguriert werden, wobei die Speichervorrichtung 6130 durch einen nichtflüchtigen Speicher (NVM) verkörpert ist. So kann beispielsweise die Speichersteuerung 6120 konfiguriert sein, um Lese-, Schreib-, Lösch- und Hintergrundvorgänge der Speichervorrichtung 6130 zu steuern. Die Speichersteuerung 6120 kann konfiguriert sein, um eine Schnittstelle zwischen der Speichervorrichtung 6130 und einem Host bereitzustellen und Firmware zum Steuern der Speichervorrichtung 6130 zu verwenden. Das heißt, die Speichersteuerung 6120 kann der Steuerung 130 des mit Bezug auf 1 beschriebenen Speichersystems 110 entsprechen, und die Speichervorrichtung 6130 kann der mit Bezug auf 1 beschriebenen Speichervorrichtung 150 des Speichersystems 110 entsprechen.
  • Somit kann die Speichersteuerung 6120 einen Direktzugriffsspeicher (RAM), einen Prozessor, eine Host-Schnittstelle, eine Speicherschnittstelle und eine Fehlerkorrekturkomponente beinhalten.
  • Die Speichersteuerung 6120 kann mit einer externen Vorrichtung, beispielsweise dem Host 102 von 1, über den Konnektor 6110 kommunizieren. Zum Beispiel, wie beschrieben mit Bezug auf 1, kann die Speichersteuerung 6120 konfiguriert werden, um mit einem externen Gerät zu kommunizieren über eines oder mehrere der verschiedenen Kommunikationsprotokolle wie Universal Serial Bus (USB), Multimedia-Karte (MMC), Embedded MMC (eMMC), Peripheral Component Interconnect (PCI), PCI Express (PCle), Advanced Technology Attachment (ATA), Serial-ATA, Parallel-ATA, Small Computer System Interface (SCSI), Enhanced Small Disk Interface (EDSI), Integrated Drive Electronics (IDE), Firewire, Universal Flash Storage (UFS), Wireless Fidelity (Wi-Fi oder WiFi) und Bluetooth. Somit können das Speichersystem und das Datenverarbeitungssystem gemäß der vorliegenden Ausführungsform auf drahtgebundenen / drahtlosen elektronischen Vorrichtungen oder bestimmten mobilen elektronischen Vorrichtungen angewendet werden.
  • Die Speichervorrichtung 6130 kann durch einen nichtflüchtigen Speicher (NVM) implementiert werden. So kann beispielsweise die Speichervorrichtung 6130 von einer der verschiedenen nichtflüchtigen Speichervorrichtungen implementiert werden, wie beispielsweise einem löschbaren und programmierbaren ROM (EPROM), einem elektrisch löschbaren und programmierbaren ROM (EEPROM), einem NAND-Flash-Speicher, einem NOR-Flash-Speicher, einem Phasenwechsel-RAM (PRAM), einem resistiven RAM (ReRAM), einem ferroelektrischen RAM (FRAM) und einem magnetischen Spin-Drehmomentübertragungs-RAM (STT-RAM).
  • Die Speichersteuerung 6120 und die Speichervorrichtung 6130 können in eine einzelne Halbleitervorrichtung integriert werden, um einen Solid-State-Treiber (SSD) zu bilden. Außerdem können die Speichersteuerung 6120 und die Speichervorrichtung 6130 zu einer Speicherkarte integriert werden, wie einer PC-Karte (Personal Computer Memory Card International Association (PCMCIA)), einer Compact Flash-Karte (CF), einer Smart Media-Karte (z.B, eine SM und eine SMC), einen Speicherstick, eine Multimedia-Karte (z.B. eine MMC, eine RS-MMC, eine MMCmicro und eine eMMC), eine Secure Digital Card (SD) (z.B. eine SD, eine Mini SD, eine Micro SD und eine SDHC) und/oder einen universellen Flash-Speicher (UFS).
  • 10 ist ein Diagramm, das ein weiteres Beispiel für ein Datenverarbeitungssystem 6200 mit einem Speichersystem gemäß einer Ausführungsform darstellt.
  • Unter Bezugnahme auf 10 kann das Datenverarbeitungssystem 6200 eine Speichervorrichtung 6230 mit einem oder mehreren nichtflüchtigen Speichern (NVMs) und eine Speichersteuerung 6220 zum Steuern der Speichervorrichtung 6230 einschließen. Das in 10 dargestellte Datenverarbeitungssystem 6200 kann als ein Speichermedium dienen, wie beispielsweise eine Speicherkarte (z.B. CF, SD, Micro-SD oder dergleichen) oder eine USB-Vorrichtung, wie in Bezug auf 1 beschrieben. Die Speichervorrichtung 6230 kann der Speichervorrichtung 150 in dem in 1 dargestellten Speichersystem 110 entsprechen, und die Speichersteuerung 6220 kann der Steuerung 130 in dem in 1 dargestellten Speichersystem 110 entsprechen.
  • Die Speichersteuerung 6220 kann einen Lese-, Schreib- oder Löschvorgang an der Speichervorrichtung 6230 als Reaktion auf eine Anforderung des Hosts 6210 steuern. Die Speichersteuerung 6220 kann eine oder mehrere Zentraleinheiten (CPUs) 6221, einen Pufferspeicher, wie beispielsweise einen Direktzugriffsspeicher (RAM) 6222, eine Fehlerkorrekturcodeschaltung (ECC) 6223, eine Host-Schnittstelle 6224 und eine Speicherschnittstelle, wie eine nichtflüchtige Speicher-(NVM)-Schnittstelle 6225, einschließen.
  • Die CPU 6221 kann allgemeine Operationen auf der Speichervorrichtung 6230 steuern, z.B. Lesen, Schreiben, Dateisystemverwaltung und Verwaltungsoperationen für schlechte Seiten. Das RAM 6222 kann entsprechend der Steuerung der CPU 6221 betrieben und als Arbeitsspeicher, Pufferspeicher oder Cache-Speicher verwendet werden. Wenn das RAM 6222 als Arbeitsspeicher verwendet wird, können die von der CPU 6221 verarbeiteten Daten im RAM 6222 zwischengespeichert werden. Wenn das RAM 6222 als Pufferspeicher verwendet wird, kann das RAM 6222 zum Puffern von Daten verwendet werden, die vom Host 6210 an die Speichervorrichtung 6230 übertragen werden oder umgekehrt. Wenn das RAM 6222 als Cache-Speicher verwendet wird, kann das RAM 6222 der langsamen Speichervorrichtung 6230 helfen, mit hoher Geschwindigkeit zu arbeiten.
  • Die ECC-Schaltung 6223 kann einen Fehlerkorrekturcode (ECC) zum Korrigieren eines fehlerhaften Bits oder Fehlerbits von Daten erzeugen, die von der Speichervorrichtung 6230 bereitgestellt werden. Die ECC-Schaltung 6223 kann eine Fehlerkorrekturcodierung für Daten durchführen, die der Speichervorrichtung 6230 bereitgestellt werden, wodurch Daten mit einem Paritätsbit gebildet werden. Das Paritätsbit kann in der Speichervorrichtung 6230 gespeichert werden. Die ECC-Schaltung 6223 kann eine Fehlerkorrekturdekodierung für Daten durchführen, die von der Speichervorrichtung 6230 ausgegeben werden. Die ECC-Schaltung 6223 kann einen Fehler mit Hilfe des Paritätsbits korrigieren. Die ECC-Schaltung 6223 kann einen Fehler korrigieren mit Hilfe von LDPC-Codes (Low Density Parity Check), Bose-Chaudhri-Hocquenghem (BCH)-Codes, Turbocodes, Reed-Solomon (RS)-Codes, Faltungscodes, rekursiven systematischen Codes (RSC) oder kodierter Modulationen, wie Trellis-Code-Modulation (TCM) oder Blockcodierte Modulation (BCM).
  • Die Speichersteuerung 6220 kann Daten zum / vom Host 6210 über die Host-Schnittstelle 6224 senden / empfangen. Die Speichersteuerung 6220 kann Daten zu / von der Speichervorrichtung 6230 über die NVM-Schnittstelle 6225 senden / empfangen. Die Host-Schnittstelle 6224 kann mit dem Host 6210 über einen PATA-Bus (Parallel Advanced Technology Attachment), einen SATA-Bus (Serial Advanced Technology Attachment), eine Small Computer System Interface (SCSI), einen Universal Serial Bus (USB), einen Peripheriekomponenten-Interconnect-Express (PCle) oder eine NAND-Schnittstelle verbunden werden. Die Speichersteuerung 6220 kann eine drahtlose Kommunikationsfunktion mit einem Mobilkommunikationsprotokoll wie Wireless Fidelity (WiFi) oder Long Term Evolution (LTE) aufweisen. Die Speichersteuerung 6220 kann mit einer externen Vorrichtung, beispielsweise dem Host 6210 oder einer anderen externen Vorrichtung, verbunden werden und dann Daten an die externe Vorrichtung senden / empfangen. Insbesondere, da die Speichersteuerung 6220 konfiguriert ist, um mit der externen Vorrichtung gemäß einem oder mehreren der verschiedenen Kommunikationsprotokolle zu kommunizieren. Das Speichersystem und das Datenverarbeitungssystem gemäß einer Ausführungsform können auf drahtgebundene / drahtlose elektronische Vorrichtungen, insbesondere auf eine mobile elektronische Vorrichtung, angewendet werden.
  • 11 ist ein Diagramm, das ein weiteres Beispiel für ein Datenverarbeitungssystem mit einem Speichersystem gemäß einer Ausführungsform darstellt. 11 veranschaulicht beispielsweise ein Solid State Drive (SSD) 6300, auf das das Speichersystem angewendet werden kann.
  • Unter Bezugnahme auf 11 kann das SSD 6300 eine Steuerung 6320 und eine Speichervorrichtung 6340 mit einer Vielzahl von nichtflüchtigen Speichern (NVMs) einschließen. Die Steuerung 6320 kann der Steuerung 130 in dem Speichersystem 110 von 1 entsprechen, und die Speichervorrichtung 6340 kann der Speichervorrichtung 150 in dem Speichersystem von 1 entsprechen.
  • Insbesondere kann die Steuerung 6320 über eine Vielzahl von Kanälen CH1 bis CHi mit der Speichervorrichtung 6340 verbunden sein, wobei die Steuerung 6320 einen oder mehrere Prozessoren 6321, eine Fehlerkorrekturcode (ECC)-Schaltung 6322, eine Host-Schnittstelle 6324, einen Pufferspeicher 6325 und eine Speicherschnittstelle, zum Beispiel eine nichtflüchtige Speicherschnittstelle 6326, einschließen kann.
  • Der Pufferspeicher 6325 kann vom Host 6310 bereitgestellte Daten oder Daten aus einer Vielzahl von Flashspeichern NVM, die in der Speichervorrichtung 6340 enthalten sind, zwischenspeichern. Ferner kann der Pufferspeicher 6325 Metadaten der Vielzahl von Flashspeichern NVM zwischenspeichern, z.B. Zuordnungsdaten einschließlich einer Zuordnungstabelle. Der Pufferspeicher 6325 kann durch eine Vielzahl von flüchtigen Speichern verkörpert werden, wie beispielsweise einen dynamischen Direktzugriffsspeicher (DRAM), einen synchronen DRAM (SDRAM), einen Double Data Rate (DDR) SDRAM, einen Low Power DDR (LPDDR) SDRAM und einen Grafik-RAM (GRAM), oder nichtflüchtigen Speicher, wie einen ferroelektrisches RAM (FRAM), einen resistiven RAM (RRAM oder ReRAM), einen Spin-Transfer Torque Magnetic RAM (STT-MRAM) und einen Phasenwechsel-RAM (PRAM). 11 veranschaulicht, dass der Pufferspeicher 6325 in der Steuerung 6320 verankert ist. Der Pufferspeicher 6325 kann jedoch extern zur Steuerung 6320 eingerichtet sein.
  • Die ECC-Schaltung 6322 kann einen Fehlerkorrekturcode (ECC)-Wert von Daten berechnen, die während eines Programmvorgangs auf die Speichervorrichtung 6340 programmiert werden sollen, einen Fehlerkorrekturvorgang für Daten durchführen, die von der Speichervorrichtung 6340 gelesen werden, basierend auf dem ECC-Wert während eines Lesevorgangs, und einen Fehlerkorrekturvorgang für Daten durchführen, die von der Speichervorrichtung 6340 während eines fehlgeschlagenen Datenrettungsvorgangs wiederhergestellt werden.
  • Die Host-Schnittstelle 6324 kann eine Schnittstellenfunktion mit einer externen Vorrichtung bereitstellen, beispielsweise dem Host 6310, und die nichtflüchtige Speicherschnittstelle 6326 kann eine Schnittstellenfunktion bereitstellen, wobei die Speichervorrichtung 6340 über die Vielzahl von Kanälen verbunden ist.
  • Darüber hinaus kann eine Vielzahl von SSDs 6300, auf die das Speichersystem 110 von 1 angewendet werden kann, vorgesehen werden, um ein Datenverarbeitungssystem zu verkörpern, zum Beispiel ein Redundant Array of Independent Disks (RAID). Das RAID-System kann die Vielzahl von SSDs 6300 und einen RAID-Controller zum Steuern der Vielzahl von SSDs 6300 beinhalten. Wenn der RAID-Controller einen Programmvorgang als Reaktion auf einen vom Host 6310 bereitgestellten Schreibbefehl durchführt, kann der RAID-Controller ein oder mehrere Speichersysteme oder SSDs 6300 gemäß einer Vielzahl von RAID-Levels auswählen, d.h. RAID-Level-Informationen des vom Host 6310 in den SSDs 6300 bereitgestellten Schreibbefehls sowie Ausgabedaten, die dem Schreibbefehl für die ausgewählten SSDs 6300 entsprechen. Darüber hinaus kann der RAID-Controller, wenn der RAID-Controller einen Lesebefehl als Reaktion auf einen vom Host 6310 bereitgestellten Lesebefehl ausführt, ein oder mehrere Speichersysteme oder SSDs 6300 gemäß einer Vielzahl von RAID-Levels auswählen, d.h. RAID-Level-Informationen des vom Host 6310 in den SSDs 6300 bereitgestellten Lesebefehls, und Daten, die von den ausgewählten SSDs 6300 gelesen wurden, an den Host 6310 liefern.
  • 12 ist ein Diagramm, das ein weiteres Beispiel für ein Datenverarbeitungssystem mit einem Speichersystem gemäß einer Ausführungsform darstellt. 12 veranschaulicht beispielsweise eine eingebettete Multimedia-Karte (eMMC) 6400, auf die das Speichersystem angewendet werden kann.
  • Unter Bezugnahme auf 12 kann die eMMC 6400 eine Steuerung 6430 und eine Speichervorrichtung 6440 einschließen, die durch einen oder mehrere NAND-Flash-Speicher verkörpert wird. Die Steuerung 6430 kann der Steuerung 130 in dem Speichersystem 110 von 1 entsprechen. Die Speichervorrichtung 6440 kann der Speichervorrichtung 150 im Speichersystem 110 von 1 entsprechen.
  • Insbesondere kann die Steuerung 6430 über eine Vielzahl von Kanälen mit der Speichervorrichtung 6440 verbunden werden. Die Steuerung 6430 kann einen oder mehrere Kerne 6432, eine Host-Schnittstelle 6431 und eine Speicherschnittstelle, zum Beispiel eine NAND-Schnittstelle 6433, einschließen.
  • Der Kern 6432 kann den Gesamtbetrieb des eMMC 6400 steuern, die Host-Schnittstelle 6431 kann eine Schnittstellenfunktion zwischen der Steuerung 6430 und dem Host 6410 bereitstellen, und die NAND-Schnittstelle 6433 kann eine Schnittstellenfunktion zwischen der Speichervorrichtung 6440 und der Steuerung 6430 bereitstellen. So kann beispielsweise die Host-Schnittstelle 6431 als parallele Schnittstelle dienen, z.B. MMC-Schnittstelle wie in 1 beschrieben. Darüber hinaus kann die Host-Schnittstelle 6431 als eine serielle Schnittstelle dienen, z.B. Ultra-High-Speed (UHS-I/UHS-II) Schnittstelle.
  • Die 13 bis 16 sind Diagramme, die weitere Beispiele für ein Datenverarbeitungssystem mit einem Speichersystem gemäß Ausführungsformen veranschaulichen. Die 13 bis 16 veranschaulichen beispielsweise Universal Flash Storage (UFS)-Systeme, auf die das Speichersystem angewendet werden kann.
  • Unter Bezugnahme auf die 13 bis 16 können die UFS-Systeme 6500, 6600, 6700, 6800 Hosts 6510, 6610, 6710, 6810, UFS-Vorrichtungen 6520, 6620, 6720, 6820 und UFS-Karten 6530, 6630, 6730, 6830 einschließen. Die Hosts 6510, 6610, 6710, 6810 können als Anwendungsprozessoren von drahtgebundenen / drahtlosen elektronischen Vorrichtungen, insbesondere mobilen elektronischen Vorrichtungen, dienen, die UFS-Vorrichtungen 6520, 6620, 6720, 6820 können als eingebettete UFS-Vorrichtungen dienen, und die UFS-Karten 6530, 6630, 6730, 6830 können als externe eingebettete UFS-Vorrichtungen oder entfernbare UFS-Karten dienen.
  • Die Hosts 6510, 6610, 6710, 6810, die UFS-Vorrichtungen 6520, 6620, 6720, 6820 und die UFS-Karten 6530, 6630, 6730, 6830 in den jeweiligen UFS-Systemen 6500, 6600, 6700, 6800 können mit externen Geräten, beispielsweise verkabelte / drahtlose elektronische Vorrichtungen oder insbesondere mobile elektronische Vorrichtungen, durch UFS-Protokolle kommunizieren, und die UFS-Vorrichtungen 6520, 6620, 6720, 6820 und die UFS-Karten 6530, 6630, 6730, 6830 können durch das in Figur veranschaulichte Speichersystem 110 dargestellt werden. 1. So können beispielsweise in den UFS-Systemen 6500, 6600, 6700, 6800 die UFS-Vorrichtungen 6520, 6620, 6720, 6820 dargestellt werden in Form des Datenverarbeitungssystems 6200, der SSD 6300 oder der eMMC 6400, die in Bezug auf die 10 bis 12 beschrieben sind, und die UFS-Karten 6530, 6630, 6730, 6830 können in Form des Speicherkartensystems 6100, das in Bezug auf die 9 beschrieben ist, dargestellt werden.
  • Darüber hinaus können in den UFS-Systemen 6500, 6600, 6700, 6800, die Hosts 6510, 6610, 6710, 6810, die UFS-Vorrichtungen 6520, 6620, 6720, 6820 und die UFS-Karten 6530, 6630, 6730, 6830 über eine UFS-Schnittstelle miteinander kommunizieren, z.B. MIPI M-PHY und MIPI Unified Protocol (UniPro) in Mobile Industry Processor Interface (MIPI). Darüber hinaus können die UFS-Vorrichtungen 6520, 6620, 6720, 6820 und die UFS-Karten 6530, 6630, 6730, 6830 über eines der verschiedenen Protokolle mit Ausnahme des UFS-Protokolls miteinander kommunizieren, z.B. Universal Storage Bus (USB), Flash Drives (UFDs), eine Multimedia-Karte (MMC), eine Secure Digital (SD), eine Mini-SD und eine Mikro-SD.
  • In dem in 13 dargestellten UFS-System 6500 können der Host 6510, die UFS-Vorrichtung 6520 und die UFS-Karte 6530 jeweils das UniPro einschließen. Der Host 6510 kann eine Umschaltung durchführen, um mit der UFS-Vorrichtung 6520 und der UFS-Karte 6530 zu kommunizieren. Insbesondere kann der Host 6510 mit der UFS-Vorrichtung 6520 oder der UFS-Karte 6530 durch Link Layer Switching kommunizieren, z.B. L3-Switching am UniPro. Die UFS-Vorrichtung 6520 und die UFS-Karte 6530 können über eine Verbindungsschichtumschaltung am UniPro des Hosts 6510 miteinander kommunizieren. In der veranschaulichten Ausführungsform sind eine UFS-Vorrichtung 6520 und eine UFS-Karte 6530 mit dem Host 6510 verbunden. Eine Vielzahl von UFS-Vorrichtungen und UFS-Karten kann jedoch parallel oder in Form eines Sterns mit dem Host 6410 verbunden sein. Eine Stern-Formation ist eine Anordnung, bei der eine einzelne Vorrichtung mit mehreren Vorrichtungen für den zentralisierten Betrieb gekoppelt ist. Eine Vielzahl von UFS-Karten kann parallel oder in Form eines Sterns mit der UFS-Vorrichtung 6520 oder in Reihe oder in Form einer Kette mit der UFS-Vorrichtung 6520 verbunden sein.
  • In dem in 14 dargestellten UFS-System 6600 kann jeder von dem Host 6610, der UFS-Vorrichtung 6620 und der UFS-Karte 6630 UniPro einschließen. Der Host 6610 kann mit der UFS-Vorrichtung 6620 oder der UFS-Karte 6630 über ein Schaltmodul 6640 kommunizieren, das einen Schaltvorgang durchführt, z.B. über das Schaltmodul 6640, das am UniPro eine Verbindungsschichtumschaltung durchführt, z.B. L3-Switching. Die UFS-Vorrichtung 6620 und die UFS-Karte 6630 können über die Verbindungsschichtumschaltung des Schaltmoduls 6640 am UniPro miteinander kommunizieren. In der dargestellten Ausführungsform sind eine UFS-Vorrichtung 6620 und eine UFS-Karte 6630 mit dem Schaltmodul 6640 verbunden. Eine Vielzahl von UFS-Vorrichtungen und UFS-Karten kann jedoch parallel oder sternförmig mit dem Schaltmodul 6640 verbunden sein. Eine Vielzahl von UFS-Karten kann in Reihe oder in Form einer Kette mit der UFS-Vorrichtung 6620 verbunden sein.
  • In dem in 15 dargestellten UFS-System 6700 kann jeder von dem Host 6710, der UFS-Vorrichtung 6720 und der UFS-Karte 6730 UniPro einschließen. Der Host 6710 kann mit der UFS-Vorrichtung 6720 oder der UFS-Karte 6730 über ein Schaltmodul 6740 kommunizieren, das einen Schaltvorgang durchführt, z.B. über das Schaltmodul 6740, das am UniPro eine Verbindungsschichtumschaltung durchführt, z.B. L3-Switching. Die UFS-Vorrichtung 6720 und die UFS-Karte 6730 können über eine Verbindungsschichtumschaltung des Schaltmoduls 6740 am UniPro miteinander kommunizieren. Das Schaltmodul 6740 kann als ein Modul mit der UFS-Vorrichtung 6720 innerhalb oder außerhalb der UFS-Vorrichtung 6720 integriert werden. In der dargestellten Ausführungsform sind eine UFS-Vorrichtung 6720 und eine UFS-Karte 6730 mit dem Schaltmodul 6740 verbunden. Eine Vielzahl von Modulen, die jeweils das Schaltmodul 6740 und die UFS-Vorrichtung 6720 einschließen, können jedoch parallel oder sternförmig mit dem Host 6710 verbunden sein. In einem weiteren Beispiel können mehrere Module in Reihe oder in Form einer Kette miteinander verbunden sein. Darüber hinaus können mehrere UFS-Karten parallel oder sternförmig mit der UFS-Vorrichtung 6720 verbunden sein.
  • In dem in 16 dargestellten UFS-System 6800 können der Host 6810, die UFS- Vorrichtung 6820 und die UFS-Karte 6830 jeweils M-PHY und UniPro einschließen. Die UFS-Vorrichtung 6820 kann einen Schaltvorgang durchführen, um mit dem Host 6810 und der UFS-Karte 6830 zu kommunizieren. Insbesondere kann die UFS-Vorrichtung 6820 mit dem Host 6810 oder der UFS-Karte 6830 kommunizieren durch einen Umschaltvorgang zwischen dem M-PHY- und UniPro-Modul zur Kommunikation mit dem Host 6810 und dem M-PHY- und UniPro-Modul zur Kommunikation mit der UFS-Karte 6830, beispielsweise durch einen Target Identifier (ID)-Schaltvorgang. Der Host 6810 und die UFS-Karte 6830 können über die Umschaltung der Ziel-ID zwischen den Modulen M-PHY und UniPro der UFS-Vorrichtung 6820 miteinander kommunizieren. In der dargestellten Ausführungsform ist eine UFS-Vorrichtung 6820 mit dem Host 6810 und eine UFS-Karte 6830 mit der UFS-Vorrichtung 6820 verbunden. Eine Vielzahl von U FS-Vorrichtungen kann jedoch parallel oder sternförmig mit dem Host 6810 oder in Reihe oder in Form einer Kette mit dem Host 6810 verbunden sein. Eine Vielzahl von U FS-Karten kann parallel oder sternförmig mit der U FS-Vorrichtung 6820 verbunden sein, oder in Reihe oder in Form einer Kette mit der UFS-Vorrichtung 6820 verbunden sein.
  • 17 ist ein Diagramm, das ein weiteres Beispiel für ein Datenverarbeitungssystem mit einem Speichersystem gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Beispielsweise ist 17 ein Diagramm, das ein Benutzersystem 6900 darstellt, auf das das Speichersystem angewendet werden kann.
  • Unter Bezugnahme auf 17 kann das Benutzersystem 6900 eine Benutzerschnittstelle 6910, ein Speichermodul 6920, einen Anwendungsprozessor 6930, ein Netzwerkmodul 6940 und ein Speichermodul 6950 einschließen.
  • Genauer gesagt, kann der Anwendungsprozessor 6930 Komponenten im Benutzersystem 6900 steuern, z.B. ein Betriebssystem (OS), und kann Controller, Schnittstellen und eine Grafik-Engine einschließen, die die im Benutzersystem 6900 enthaltenen Komponenten steuern. Der Anwendungsprozessor 6930 kann als Systemon-Chip (SoC) bereitgestellt werden.
  • Das Speichermodul 6920 kann als Hauptspeicher, Arbeitsspeicher, Pufferspeicher oder Cachespeicher des Benutzersystems 6900 verwendet werden. Das Speichermodul 6920 kann einen flüchtigen Direktzugriffsspeicher (RAM) einschließen, wie einen dynamischen RAM (DRAM), einen synchronen DRAM (SDRAM), einen Double-Data-Rate RAM (DDR), einen DDR2 SDRAM, einen DDR3 SDRAM, ein Low Power DDR (LPDDR) SDARM, ein LPDDR3 SDRAM oder ein LPDDR3 SDRAM, oder einen nichtflüchtigen RAM einschließen, wie einen Phasenwechsel-RAM (PRAM), einen resistiven RAM (ReRAM), einen magnetoresistiven RAM (MRAM) oder einen ferroelektrischen RAM (FRAM). So können beispielsweise der Anwendungsprozessor 6930 und das Speichermodul 6920 in einem Gehäuse platziert und montiert werden, basierend auf Package on Package (PoP).
  • Das Netzwerkmodul 6940 kann mit externen Geräten kommunizieren. So kann beispielsweise das Netzwerkmodul 6940 nicht nur drahtgebundene Kommunikation unterstützen, sondern auch verschiedene drahtlose Kommunikationsprotokolle wie Code Division Multiple Access (CDMA), Global System for Mobile Communication (GSM), Breitband CDMA (WCDMA), CDMA-2000, Time Division Multiple Access (TDMA), Long Term Evolution (LTE), Worldwide Interoperability for Microwave Access (WiMAX), Wireless Local Area Network (WLAN), Ultrabreitband (UWB), Bluetooth, drahtloses Display (WI-DI), wodurch die Kommunikation mit drahtgebundenen / drahtlosen elektronischen Geräten, insbesondere mobilen elektronischen Geräten, erfolgt. Daher können das Speichersystem und das Datenverarbeitungssystem gemäß einer Ausführungsform der vorliegenden Erfindung auf drahtgebundene / drahtlose elektronische Vorrichtungen angewendet werden. Das Netzwerkmodul 6940 kann in den Anwendungsprozessor 6930 integriert werden.
  • Das Speichermodul 6950 kann Daten speichern, zum Beispiel Daten, die vom Anwendungsprozessor 6930 empfangen wurden, und kann dann die gespeicherten Daten an den Anwendungsprozessor 6930 übertragen. Das Speichermodul 6950 kann durch eine nichtflüchtige Halbleiterspeichervorrichtung wie einen Phasenwechsel-RAM (PRAM), einen magnetischen RAM (MRAM), einen resistiven RAM (ReRAM), einen NAND-Flash, einen NOR-Flash und einen 3D-NAND-Flash verkörpert und als Wechselspeichermedium wie eine Speicherkarte oder ein externes Laufwerk des Benutzersystems 6900 bereitgestellt werden. Das Speichermodul 6950 kann dem mit Bezug auf 1 beschriebenen Speichersystem 110 entsprechen. Darüber hinaus kann das Speichermodul 6950 als SSD, eMMC und UFS wie vorstehend beschrieben unter Bezugnahme auf die 11 bis 16 ausgeführt werden.
  • Die Benutzerschnittstelle 6910 kann Schnittstellen zum Eingeben von Daten oder Befehlen in den Anwendungsprozessor 6930 oder zum Ausgeben von Daten an eine externe Vorrichtung beinhalten. So kann beispielsweise die Benutzerschnittstelle 6910 Benutzereingabeschnittstellen einschließen, wie ein Keyboard, ein Keypad, einen Taster, ein Touchpanel, einen Touchscreen, ein Touchpad, einen Touchball, eine Kamera, ein Mikrofon, einen Gyrosensor, einen Vibrationssensor und ein piezoelektrisches Element, sowie Benutzerausgabeschnittstellen einschließen, wie eine Flüssigkristallanzeige (LCD), eine organische Leuchtdiode (OLED), eine Active Matrix Organic Light Emitting Diode (AMOLED), eine LED, einen Lautsprecher und einen Motor.
  • Wenn das Speichersystem 110 von 1 auf eine mobile elektronische Vorrichtung des Benutzersystems 6900 angewendet wird, kann der Anwendungsprozessor 6930 außerdem den gesamten Betrieb der mobilen elektronischen Vorrichtung steuern, und das Netzwerkmodul 6940 kann als Kommunikationsmodul zum Steuern der drahtgebundenen / drahtlosen Kommunikation mit einer externen Vorrichtung dienen. Die Benutzerschnittstelle 6910 kann vom Prozessor 6930 verarbeitete Daten auf einem Anzeige- / Touchmodul der mobilen elektronischen Vorrichtung anzeigen oder eine Funktion zum Empfangen von Daten vom Touchscreen unterstützen.
  • Gemäß den Ausführungsformen der vorliegenden Erfindung kann das Speichersystem das Problem der unnötigen Programmierung von Blinddaten in einem Speicherblock verhindern, indem es aufgrund der Größe der für eine vorbestimmte Periode bereitgestellten Benutzerdaten bestimmt, ob ein Flush-Vorgang durchgeführt werden soll oder nicht.
  • Während die vorliegende Erfindung in Bezug auf die spezifischen Ausführungsformen beschrieben wurde, wird es für den Fachmann offensichtlich sein, dass verschiedene Änderungen und Modifikationen vorgenommen werden können, ohne vom Geist und Anwendungsbereich der Erfindung, wie sie in den folgenden Ansprüchen definiert sind, abzuweichen.
  • 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
    • KR 1020180127720 [0001]

Claims (20)

  1. Speichersystem, umfassend: eine Speichervorrichtung, die geeignet ist zum Speichern von Hostdaten, welche von einem Host bereitgestellt werden; und eine Speichersteuerung, die geeignet ist zum Verwalten und Übertragen der Hostdaten zwischen dem Host und der Speichervorrichtung, wobei die Speichersteuerung umfasst: einen Schreibpuffer, der geeignet ist zum Zwischenspeichern der an die Speichervorrichtung zu übertragenden Hostdaten; eine Pufferüberwachungsvorrichtung, die geeignet ist zum Überprüfen eines Nutzungsumfangs des Schreibpuffers während einer vorbestimmten Periode; eine Puffernutzungsvergleichsvorrichtung, die geeignet ist zum Erzeugen eines Flush-Steuersignals basierend auf einem Nutzungsumfangsvergleichsergebnis, indem sie den Nutzungsumfang, der während einer aktuellen Periode überprüft wurde, welche der vorbestimmten Periode entspricht, mit dem Nutzungsumfang vergleicht, der während einer früheren Periode überprüft wurde, welche der vorbestimmten Periode entspricht; und eine erste Flush-Vorrichtung, die geeignet ist zum Übertragen der im Schreibpuffer zwischengespeicherten Hostdaten an die Speichervorrichtung als Reaktion auf das Flush-Steuersignal.
  2. Speichersystem nach Anspruch 1, ferner umfassend eine zweite Flush-Vorrichtung, die geeignet ist, um die zwischengespeicherten Hostdaten an die Speichervorrichtung zu übertragen, wenn der Nutzungsumfang des Schreibpuffers größer als ein zweiter Schwellenwert ist.
  3. Speichersystem nach Anspruch 2, wobei die zweite Flush-Vorrichtung Folgendes einschließt: eine zweite Programmdaten-Erzeugungseinheit, die geeignet ist zum Erzeugen von Daten einer Programmeinheit durch Dividieren der im Schreibpuffer zwischengespeicherten Hostdaten, durch eine Größe, die dem zweiten Schwellenwert entspricht; und eine zweite Programmdatenübertragungseinheit, die geeignet ist zum Übertragen der Daten einer Programmeinheit an die Speichervorrichtung, und wobei die Daten einer Programmeinheit eine Größe aufweisen, die geeignet ist, durch einen einzigen Flush-Vorgang in die Speichervorrichtung geflushed zu werden.
  4. Speichersystem nach Anspruch 1, wobei die erste Flush-Vorrichtung einschließt: eine erste Programmdatenerzeugungseinheit, die geeignet ist zum Erzeugen von Daten einer Programmeinheit durch Kombinieren der zwischengespeicherten Hostdaten mit Blinddaten; und eine erste Programmdatenübertragungseinheit, die geeignet ist zum Übertragen der Daten einer Programmeinheit an die Speichervorrichtung, und wobei die Daten einer Programmeinheit eine Größe aufweisen, die geeignet ist, durch einen einzigen Flush-Vorgang in die Speichervorrichtung geflusht zu werden.
  5. Speichersystem nach Anspruch 4, wobei die Größe der Daten einer Programmeinheit eine Seite ist.
  6. Speichersystem nach Anspruch 4, wobei die Größe der Daten einer Programmeinheit eine mehrschichtige Seite ist.
  7. Speichersystem nach Anspruch 4, wobei die Größe der Daten einer Programmeinheit eine einstufige Programmeinheit ist.
  8. Speichersystem nach Anspruch 1, wobei die Speichersteuerung ferner einen flüchtigen Speicher umfasst, der den Schreibpuffer einschließt.
  9. Speichersystem nach Anspruch 1, wobei die Puffernutzungsvergleichsvorrichtung das Flush-Steuersignal erzeugt, wenn das Ergebnis des Nutzungsumfangsvergleichs kleiner als ein erster Schwellenwert ist.
  10. Speichersystem nach Anspruch 1, wobei die Pufferüberwachungsvorrichtung eine interne Speichervorrichtung einschließt, die geeignet ist, um einen Nutzungsumfang des Schreibpuffers für jede vorbestimmte Periode zu speichern.
  11. Verfahren zum Betreiben eines Speichersystems, wobei das Verfahren umfasst: Puffern von Hostdaten, die von einem Host bereitgestellt werden, in einem Schreibpuffer; Überprüfen eines Nutzungsumfangs des Schreibpuffers während einer vorbestimmten Periode; Erzeugen eines Flush-Steuersignals basierend auf einem Nutzungsumfangsvergleichsergebnis durch Vergleichen des in einer aktuellen Periode überprüften Nutzungsumfangs, der der vorbestimmten Periode entspricht, mit dem in einer früheren Periode überprüften Nutzungsumfang, der der vorbestimmten Periode entspricht; und Durchführen eines ersten Flush-Vorgangs zum Übertragen der im Schreibpuffer zwischengespeicherten Hostdaten an eine Speichervorrichtung als Reaktion auf das Flush-Steuersignal.
  12. Verfahren nach Anspruch 11, ferner umfassend das Durchführen eines zweiten Flush-Vorgangs zum Übertragen der zwischengespeicherten Hostdaten an die Speichervorrichtung, wenn der Nutzungsumfang des Schreibpuffers größer als ein zweiter Schwellenwert ist.
  13. Verfahren nach Anspruch 12, wobei das Durchführen des zweiten Flush-Vorgangs Folgendes einschließt: Erzeugen von Daten einer Programmeinheit durch Division der im Schreibpuffer zwischengespeicherten Hostdaten durch eine Größe, die dem zweiten Schwellenwert entspricht; und Übertragen der Daten einer Programmeinheit an die Speichervorrichtung und wobei die Daten einer Programmeinheit eine Größe aufweisen, die geeignet ist, durch einen einzigen Flush-Vorgang in die Speichervorrichtung geflusht zu werden.
  14. Verfahren nach Anspruch 11, wobei das Durchführen des ersten Flush-Vorgangs Folgendes einschließt: Erzeugen der Daten einer Programmeinheit durch Kombinieren von Blinddaten mit den zwischengespeicherten Hostdaten; und Übertragen der Daten einer Programmeinheit an die Speichervorrichtung und wobei die Daten einer Programmeinheit eine Größe aufweisen, die geeignet ist, durch einen einzigen Flush-Vorgang in die Speichervorrichtung geflusht zu werden.
  15. Verfahren nach Anspruch 14, wobei die Größe der Daten einer Programmeinheit eine Seite ist.
  16. Verfahren nach Anspruch 14, wobei die Größe der Daten einer Programmeinheit eine mehrschichtige Seite ist.
  17. Verfahren nach Anspruch 14, wobei die Größe der Daten einer Programmeinheit eine einstufige Programmeinheit ist.
  18. Verfahren nach Anspruch 11, wobei das Flush-Steuersignal erzeugt wird, wenn das Ergebnis des Nutzungsumfangsvergleichs kleiner als ein erster Schwellenwert ist.
  19. Verfahren nach Anspruch 11, wobei das Überprüfen das Speichern des Nutzungsumfangs des Schreibpuffers für jede vorbestimmte Periode einschließt.
  20. Speichersystem, umfassend: eine Speichervorrichtung; einen Puffer, der geeignet ist zum Puffern externer Daten; und eine Steuerung, die geeignet ist zum Steuern der Speichervorrichtung, um einen internen Flush-Vorgang zum Flushen der gepufferten Daten darin periodisch durchzuführen, wobei die Steuerung ferner die Speichervorrichtung steuert, um den internen Flush-Vorgang einer aktuellen Periode zu überspringen, wenn die Differenz zwischen den Größen der gepufferten Daten der letzten zwei oder mehr Perioden innerhalb eines Schwellenwerts variiert.
DE102019127080.4A 2018-10-24 2019-10-09 Speichersystem und Betriebsverfahren dafür Pending DE102019127080A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180127720A KR20200046495A (ko) 2018-10-24 2018-10-24 메모리 시스템 및 그것의 동작방법
KR10-2018-0127720 2018-10-24

Publications (1)

Publication Number Publication Date
DE102019127080A1 true DE102019127080A1 (de) 2020-04-30

Family

ID=70325395

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019127080.4A Pending DE102019127080A1 (de) 2018-10-24 2019-10-09 Speichersystem und Betriebsverfahren dafür

Country Status (4)

Country Link
US (1) US11003590B2 (de)
KR (1) KR20200046495A (de)
CN (1) CN111090596B (de)
DE (1) DE102019127080A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220028332A (ko) * 2020-08-28 2022-03-08 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20220091193A (ko) * 2020-12-23 2022-06-30 현대자동차주식회사 Vcrm 전송 데이터 최적화 방법 및 그를 위한 장치
CN115469797B (zh) * 2021-09-09 2023-12-29 上海江波龙数字技术有限公司 一种数据写入方法、存储装置及计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180127720A (ko) 2017-05-22 2018-11-30 최문규 의류용 발향텍

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8402201B2 (en) * 2006-12-06 2013-03-19 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery in solid-state storage
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
JP5397148B2 (ja) * 2009-10-16 2014-01-22 富士通株式会社 記憶装置、制御装置および記憶装置の制御方法
EP2420933A1 (de) * 2010-08-20 2012-02-22 Apple Inc. Kombinierung von Schreibzwischenspeicher mit dynamisch einstellbaren, eingelassenen Metriken
US8352685B2 (en) * 2010-08-20 2013-01-08 Apple Inc. Combining write buffer with dynamically adjustable flush metrics
JP5535128B2 (ja) * 2010-12-16 2014-07-02 株式会社東芝 メモリシステム
US8966184B2 (en) * 2011-01-31 2015-02-24 Intelligent Intellectual Property Holdings 2, LLC. Apparatus, system, and method for managing eviction of data
US20120284544A1 (en) * 2011-05-06 2012-11-08 Microsoft Corporation Storage Device Power Management
CN103793181B (zh) 2012-11-05 2019-05-24 腾讯科技(深圳)有限公司 一种多层关联存储架构的数据同步方法及数据同步系统
US9595352B2 (en) * 2014-03-17 2017-03-14 Seagate Technology Llc Manufacturer self-test for solid-state drives
US9904626B2 (en) * 2014-08-29 2018-02-27 Samsung Electronics Co., Ltd. Semiconductor device, semiconductor system and system on chip
US20170075593A1 (en) * 2015-09-11 2017-03-16 Sandisk Technologies Inc. System and method for counter flush frequency
TWI588833B (zh) * 2015-11-27 2017-06-21 群聯電子股份有限公司 資料程式化方法與記憶體儲存裝置
US9996268B2 (en) * 2015-12-18 2018-06-12 Toshiba Memory Corporation Memory system and control method of the same
KR20180011376A (ko) * 2016-07-21 2018-02-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US20180181186A1 (en) * 2016-12-27 2018-06-28 Paul S. Diefenbaugh Buffering data from high-speed i/o to enable longer reduced power consumption state residency
KR20180114417A (ko) * 2017-04-10 2018-10-18 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
CN108984104B (zh) * 2017-06-02 2021-09-17 伊姆西Ip控股有限责任公司 用于缓存管理的方法和设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180127720A (ko) 2017-05-22 2018-11-30 최문규 의류용 발향텍

Also Published As

Publication number Publication date
US20200133882A1 (en) 2020-04-30
CN111090596B (zh) 2023-03-28
CN111090596A (zh) 2020-05-01
US11003590B2 (en) 2021-05-11
KR20200046495A (ko) 2020-05-07

Similar Documents

Publication Publication Date Title
DE102012112354A1 (de) Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon
US11099988B2 (en) Memory system and operating method thereof
KR102495539B1 (ko) 메모리 시스템 및 메모리 시스템의 동작방법
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
US11373717B2 (en) Verification of an excessively high threshold voltage in a memory device
US10732874B2 (en) Memory system and operation method thereof
DE102019127080A1 (de) Speichersystem und Betriebsverfahren dafür
KR20180076715A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
US20200210295A1 (en) Memory system and operating method thereof
DE102018123494A1 (de) Speichervorrichtung, die zum aktualisieren einesfeldprogrammierbaren gate-arrays ausgestaltetist, und betriebsverfahren dafür
DE102015117500A1 (de) Verfahren zur Verbesserung des gemischten Random-Verhaltens bei Arbeitslasten mit niedriger Queue-Tiefe
KR20190040598A (ko) 컨트롤러 및 컨트롤러의 동작방법
DE102019105876A1 (de) Einseitige soft-lesevorgänge
US10740229B2 (en) Memory system and operating method thereof
US10678687B2 (en) Memory system and operating method thereof
US10747664B2 (en) Memory system and operating method thereof
CN111273856A (zh) 控制器以及控制器的操作方法
KR102417696B1 (ko) 메모리 시스템 및 메모리 시스템의 동작방법
DE112019007666T5 (de) Schreibpuffersteuerung in einem verwalteten Speichersystem
DE102019129168A1 (de) Speichersystem und betriebsverfahren dafür
US11360889B2 (en) Memory system and operating method thereof performing garbage collection and write operations in parallel on different dies
US10964392B2 (en) Memory system performing cache program and operating method thereof
DE102022209756A1 (de) Speichervorrichtung und speichersystem zum programmieren von daten
DE102022208699A1 (de) Hostvorrichtung, speichersteuerung und computersystem mit derselben
DE102022203891A1 (de) Steuerung und betriebsverfahren davon