DE102022209147A1 - Speichercontroller und betriebsverfahren dafür - Google Patents

Speichercontroller und betriebsverfahren dafür Download PDF

Info

Publication number
DE102022209147A1
DE102022209147A1 DE102022209147.7A DE102022209147A DE102022209147A1 DE 102022209147 A1 DE102022209147 A1 DE 102022209147A1 DE 102022209147 A DE102022209147 A DE 102022209147A DE 102022209147 A1 DE102022209147 A1 DE 102022209147A1
Authority
DE
Germany
Prior art keywords
recommendation
host
signal
recommendation signal
memory
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
DE102022209147.7A
Other languages
English (en)
Inventor
Young Ick CHO
Do Hyung Kim
Chi Heon Kim
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 DE102022209147A1 publication Critical patent/DE102022209147A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Die vorliegende Technologie bezieht sich auf eine elektronische Einrichtung. Gemäß der vorliegenden Technologie enthält ein Speichercontroller für eine Speicherungseinrichtung zum Speichern von Daten in Verbindung mit einem Host, der mit der Speicherungseinrichtung kommuniziert, einen Empfehlungssignalmanager, der so konfiguriert ist, dass er eine Vielzahl von Empfehlungssignalen speichert, die empfehlen, einen Speicherbereich des Hosts zu aktivieren, um Abbildungsinformationen in dem Speicherbereich des Hosts zu speichern, und einen Host-Controller, die so konfiguriert ist, dass er mindestens eines der Vielzahl von Empfehlungssignalen an den Host liefert, und zwar in Abhängigkeit davon, ob eine Anzahl von Empfehlungssignalen, die an den Host geliefert werden, kleiner als ein Schwellenwert ist.

Description

  • TECHNISCHES GEBIET
  • Die offenbarte Technologie bezieht sich auf eine elektronische Einrichtung und insbesondere auf einen Speichercontroller und ein Betriebsverfahren dafür.
  • HINTERGRUND
  • Eine Datenspeicherungseinrichtung ist eine Einrichtung, die von einer Host-Einrichtung wie einem Computer oder einem Smartphone zum Speichern von Daten verwendet wird. Eine Datenspeicherungseinrichtung kann eine Speichereinrichtung, die Daten speichert, und einen Speichercontroller, der die Speichereinrichtung steuert, umfassen. Die Speichereinrichtung kann in eine flüchtige und eine nichtflüchtige Speichereinrichtung unterteilt werden.
  • Die flüchtige Speichereinrichtung behält ihre Daten nur, solange die Einrichtung mit Strom versorgt wird, und verliert ihre Daten, wenn die Stromversorgung unterbrochen wird. Beispiele für eine flüchtige Speichereinrichtung sind ein statischer Direktzugriffsspeicher (SRAM) und ein dynamischer Direktzugriffsspeicher (DRAM).
  • Die nichtflüchtige Speichereinrichtung behält die gespeicherten Daten auch bei fehlender Stromversorgung bei und verliert daher ihre Daten nicht, wenn die Stromversorgung unterbrochen wird. Beispiele für nichtflüchtige Speichereinrichtungen sind ein Festwertspeicher (ROM), ein programmierbarer ROM (PROM), ein elektrisch programmierbarer ROM (EPROM), ein elektrisch löschbarer und programmierbarer ROM (EEPROM) und ein Flash-Speicher.
  • ZUSAMMENFASSUNG
  • Die offenbarte Technologie kann in einigen Ausführungsformen implementiert werden, um eine Datenspeicherungseinrichtung und ein Verfahren zum Betrieb derselben bereitzustellen, die das Betriebsverfahren verbessern kann.
  • Gemäß einer Ausführungsform der vorliegenden Offenbarung enthält ein Speichercontroller für eine Speicherungseinrichtung zum Speichern von Daten in Verbindung mit einem Host, der mit der Speicherungseinrichtung kommuniziert, einen Empfehlungssignalmanager, der so konfiguriert ist, dass er eine Vielzahl von Empfehlungssignalen speichert, die empfehlen, einen Speicherbereich des Hosts zu aktivieren, um Abbildungsinformationen in dem Speicherbereich des Hosts zu speichern, und einen Host-Controller, der so konfiguriert ist, dass er mindestens eines der Vielzahl von Empfehlungssignalen an den Host liefert, in Abhängigkeit davon, ob eine Anzahl von Empfehlungssignalen, die an den Host geliefert werden, kleiner als ein Schwellenwert ist.
  • Basierend auf einigen Ausführungsformen der offenbarten Technologie umfasst ein Verfahren zum Betreiben eines Speichercontrollers ein Erzeugen einer Empfehlungssignal-Warteschlange, die eine Vielzahl von Empfehlungssignalen speichert, die empfehlen, einen Speicherbereich eines Hosts zu aktivieren, um Abbildungsinformationen in dem Speicherbereich des Hosts zu speichern, ein Berechnen einer Anzahl von Empfehlungssignalen, die dem Host bereitgestellt werden, und ein Bereitstellen mindestens eines der Vielzahl von Empfehlungssignalen für den Host in Abhängigkeit davon, ob die Anzahl von Empfehlungssignalen, die dem Host bereitgestellt werden, kleiner als ein Schwellenwert ist.
  • Gemäß der vorliegenden Technologie werden eine Speicherungseinrichtung mit verbesserter Betriebsleistung und ein Verfahren zum Betrieb derselben bereitgestellt.
  • Figurenliste
    • 1 ist ein Diagramm, das ein Beispiel für eine Speicherungseinrichtung zeigt, die auf einigen Ausführungsformen der offenbarten Technologie basiert.
    • 2 ist ein Diagramm, das ein Beispiel für einen Speicherbereich für Abbildungsinformationen zeigt, der auf einigen Ausführungsformen der offenbarten Technologie basiert.
    • 3 ist ein Diagramm, das Beispieloperationen eines Hosts und einer Speicherungseinrichtung auf der Grundlage einiger Ausführungsformen der offenbarten Technologie veranschaulicht.
    • 4 ist ein Diagramm, das ein Beispiel für einen Empfehlungssignalmanager auf der Grundlage einiger Ausführungsformen der offenbarten Technologie zeigt.
    • 5 ist ein Diagramm, das ein Beispiel für eine Warteschlange für Empfehlungssignale auf der Grundlage einiger Ausführungsformen der offenbarten Technologie zeigt.
    • 6 ist ein Diagramm, das eine Schaltung zur Speicherung von Empfehlungssignalen auf der Grundlage einiger Ausführungsformen der offenbarten Technologie zeigt.
    • 7 ist ein Diagramm, das einen Beispieloperation zum Speichern eines Empfehlungssignals in einer Warteschlange für Empfehlungssignale auf der Grundlage einiger Ausführungsformen der offenbarten Technologie zeigt.
    • 8 ist ein Diagramm, das eine Beispieloperation für die Bereitstellung eines Empfehlungssignals an einen Host auf der Grundlage einiger Ausführungsformen der offenbarten Technologie zeigt.
    • 9 ist ein Flussdiagramm, das ein Beispielverfahren für den Betrieb eines Speichercontrollers auf der Grundlage einiger Ausführungsformen der offenbarten Technologie zeigt.
    • 10 ist ein Flussdiagramm, das eine Beispieloperation zur Berechnung der Anzahl von Empfehlungssignalen, die einem Host zur Verfügung gestellt werden, basierend auf einigen Ausführungsformen der offenbarten Technologie, veranschaulicht.
    • 11 ist ein Flussdiagramm, das eine weitere Beispieloperation zur Berechnung der Anzahl von Empfehlungssignalen, die einem Host zur Verfügung gestellt werden, basierend auf einigen Ausführungsformen der offenbarten Technologie, veranschaulicht.
    • 12 ist ein Flussdiagramm, das ein Beispielverfahren für den Betrieb eines Speichercontrollers auf der Grundlage einiger Ausführungsformen der offenbarten Technologie zeigt.
    • 13 ist ein Diagramm, das ein Beispiel für eine Speichereinrichtung aus 1 zeigt.
    • 14 ist ein Diagramm, das eine Beispielstruktur eines der Speicherblöcke von 13 zeigt.
    • 15 ist ein Diagramm, das ein Beispiel für einen Speichercontroller von 1 zeigt.
    • 16 ist ein Blockdiagramm, das ein Beispiel für ein Speicherkartensystem zeigt, das eine Speicherungseinrichtung enthält, die auf der Grundlage einiger Ausführungsformen der offenbarten Technologie implementiert wurde.
    • 17 ist ein Blockdiagramm, das ein Beispiel für ein Solid-State-Drive-System (SSD) zeigt, das eine Speicherungseinrichtung enthält, die auf der Grundlage einiger Ausführungsformen der offenbarten Technologie implementiert wurde.
    • 18 ist ein Blockdiagramm, das ein Beispiel für ein Benutzersystem zeigt, das eine Speicherungseinrichtung enthält, das auf der Grundlage einiger Ausführungsformen der offenbarten Technologie implementiert wurde.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Spezifische strukturelle Merkmale oder Funktionen für bestimmte Ausführungsformen, die in diesem Patentdokument offenbart werden, sind lediglich Beispiele zur Veranschaulichung bestimmter Ausführungsformen der offenbarten Technologie.
  • 1 ist ein Diagramm, das ein Beispiel einer Speicherungseinrichtung 50 (auch als „Storage Device“ bezeichnet) zeigt, die auf einigen Ausführungsformen der offenbarten Technologie basiert. In diesem Patentdokument kann der Begriff „Speicherungseinrichtung“ verwendet werden, um eine Datenspeicherungseinrichtung zu bezeichnen.
  • Bezugnehmend auf 1 kann die Speicherungseinrichtung 50 eine Speichereinrichtung 100 (auch als „Memory Device“ bezeichnet) und einen Speichercontroller 200 umfassen, der den Betrieb der Speicherungseinrichtung steuert. Die Speicherungseinrichtung 50 kann eine Einrichtung sein, die Daten unter der Steuerung eines Hosts 300, wie z. B. ein Mobiltelefon, ein Smartphone, ein MP3-Player, ein Laptop, ein Desktop-Computer, ein Spielkonsole, ein Fernseher, ein Tablet-PC oder ein fahrzeuginternes Infotainment-System, speichert.
  • Die Speicherungseinrichtung 50 kann als eine von verschiedenen Arten von Speicherungseinrichtungen entsprechend einer Host-Schnittstelle hergestellt werden, die ein Kommunikationsverfahren mit dem Host 300 ist. Beispielsweise kann die Speicherungseinrichtung 50 als eine von verschiedenen Arten von Speicherungseinrichtungen konfiguriert werden, wie eine SSD, eine Multimediakarte in Form einer MMC, einer eMMC, einer RS-MMC und einer Mikro-MMC, eine sichere digitale Karte in Form einer SD, einer Mini-SD und einer Mikro-SD, eine Universal Serial Bus (USB)-Speicherungseinrichtung, eine Universal-Flash-Speicherungseinrichtung (UFS), eine PCMCIA-Karten-Speicherungseinrichtung (PCMCIA = Personal Computer Memory Card International Association), eine PCI-Karten-Speicherungseinrichtung (PCI = Peripheral Component Interconnection), eine PCI-E-Karten-Speicherungseinrichtung (PCI-Express), eine CF-Karte (Compact Flash), eine Smart-Media-Karte und ein Memory Stick.
  • Die Speicherungseinrichtung 50 kann als eine von verschiedenen Arten von Gehäusen (Package) hergestellt werden. Beispielsweise kann die Speicherungseinrichtung 50 als einer von verschiedenen Gehäusetypen hergestellt werden, wie z. B. als Package-on-Package (POP), als System-in-Package (SIP), als System-on-Chip (SOC), als Multi-Chip-Package (MCP), als Chip-on-Board (COB), als Wafer-Level-Fabricated-Package (WFP) und als Wafer-Level-Stack-Package (WSP).
  • Die Speichereinrichtung 100 kann Daten speichern. Die Speichereinrichtung 100 arbeitet unter der Steuerung des Speichercontrollers 200. Die Speichereinrichtung 100 kann ein Speicherzellenfeld (nicht dargestellt) mit einer Vielzahl von Speicherzellen enthalten, die Daten speichern.
  • Jede der Speicherzellen kann als Single-Level-Zelle (SLC), die ein Datenbit speichert, als Multi-Level-Zelle (MLC), die zwei Datenbits speichert, als Triple-Level-Zelle (TLC), die drei Datenbits speichert, oder als Quad-Level-Zelle (QLC), die vier Datenbits speichert, konfiguriert sein
  • Das Speicherzellenfeld (nicht dargestellt) kann eine Vielzahl von Speicherblöcken enthalten. Jeder Speicherblock kann eine Vielzahl von Speicherzellen enthalten. Ein Speicherblock kann eine Vielzahl von Seiten umfassen. In einer Ausführungsform kann die Seite die kleinste Einheit für Lese- oder Schreib- (Programmier-) Operationen auf der Speichereinrichtung 100 sein. Der Speicherblock kann die kleinste Einheit für Löschoperationen sein.
  • In einer Ausführungsform kann die Speichereinrichtung 100 ein synchroner dynamischer Direktzugriffsspeicher mit doppelter Datenrate (DDR SDRAM), ein LPDDR4-SDRAM (Low Power Double Data Rate), ein GDDR-SDRAM (Graphics Double Data Rate), ein LPDDR (Low Power DDR), ein Rambus Dynamic Random Access Memory (RDRAM), ein NAND-Flash-Speicher, ein vertikaler NAND-Flash-Speicher, ein NOR-Flash-Speicher, ein resistiver Direktzugriffsspeicher (RRAM), ein Phasenänderungs-Direktzugriffsspeicher (PRAM), ein magnetoresistiver Direktzugriffsspeicher (MRAM), ein ferroelektrischer Direktzugriffsspeicher (FRAM), einen Spin-Transfer-Torque-Direktzugriffsspeicher (STT-RAM) oder andere sein. In der vorliegenden Beschreibung wird der Einfachheit halber davon ausgegangen, dass die Speichereinrichtung 100 ein NAND-Flash-Speicher ist.
  • Die Speichereinrichtung 100 ist so konfiguriert, dass sie einen Befehl CMD und eine Adresse ADDR von dem Speichercontroller 200 empfängt und auf einen durch die Adresse ausgewählten Bereich in dem Speicherzellenfeld zugreift. Die Speichereinrichtung 100 kann eine durch den Befehl CMD angewiesene Operation in dem durch die Adresse ADDR ausgewählten Bereich durchführen. Zum Beispiel kann die Speichereinrichtung 100 eine Schreiboperation (Programmieroperation), eine Leseoperation und eine Löschoperation durchführen. Während der Schreiboperation kann die Speichereinrichtung 100 Daten in den durch die Adresse ADDR ausgewählten Bereich programmieren. Während der Leseoperation kann die Speichereinrichtung 100 Daten aus dem Bereich lesen, der durch die Adresse ADDR ausgewählt wurde. Während der Löschoperation kann die Speichereinrichtung 100 die in dem durch die Adresse ADDR ausgewählten Bereich gespeicherten Daten löschen.
  • Der Speichercontroller 200 kann den Gesamtbetrieb der Speicherungseinrichtung 50 steuern.
  • Wenn die Speicherungseinrichtung 50 mit Strom versorgt wird, kann der Speichercontroller 200 eine Firmware (FW) ausführen. Wenn die Speicherungseinrichtung 100 eine Flash-Speicherungseinrichtung ist, kann die Firmware (FW) eine Host-Schnittstellenschicht (HIL), die die Kommunikation mit dem Host 300 steuert, eine Flash-Übersetzungsschicht (FTL), die die Kommunikation zwischen dem Host 300 und der Speichereinrichtung 100 steuert oder ermöglicht, und eine Flash-Schnittstellenschicht (FIL), die die Kommunikation zwischen der Speichereinrichtung 100 und dem Host 300 steuert oder ermöglicht, umfassen.
  • In einer Ausführungsform kann der Speichercontroller 200 Daten und eine logische Blockadresse (LBA) von dem Host 300 empfangen und die LBA in eine physikalische Blockadresse (PBA) umwandeln, die eine Adresse von Speicherzellen angibt, in denen die in der Speichereinrichtung 100 enthaltenen Daten gespeichert werden sollen. In diesem Patentdokument können die LBA und eine „Logikadresse“ oder eine „logische Adresse“ verwendet werden, um eine virtuelle Adresse zu bezeichnen, die physikalisch nicht existiert, aber auf eine physikalische Adresse abgebildet wird, und die PBA kann verwendet werden, um eine „physikalische Adresse“ zu bezeichnen.
  • Der Speichercontroller 200 kann die Speichereinrichtung 100 so steuern, dass sie den Schreibvorgang (auch als Schreiboperation bezeichnet), den Lesevorgang (auch als Leseoperation bezeichnet) oder den Löschvorgang (auch als Löschoperation bezeichnet) entsprechend einer Anforderung des Hosts 300 durchführt. Während des Schreibvorgangs kann der Speichercontroller 200 einen Schreibbefehl, die PBA und Daten an die Speichereinrichtung 100 liefern. Während des Lesevorgangs kann der Speichercontroller 200 einen Lesebefehl und die PBA an die Speichereinrichtung 100 liefern. Während des Löschvorgangs kann der Speichercontroller 200 der Speichereinrichtung 100 einen Löschbefehl und die PBA liefern.
  • In einer Ausführungsform kann der Speichercontroller 200 über einen Kanal mit der Speichereinrichtung 100 verbunden sein. Zum Beispiel kann der Speichercontroller 200 die Speichereinrichtung 100 steuern, um den Schreibvorgang, den Lesevorgang, den Löschvorgang oder andere auszuführen, indem er einen Befehl und eine Adresse an die Speichereinrichtung 100 über den Kanal liefert.
  • In einer Ausführungsform kann der Speichercontroller 200 einen Befehl, eine Adresse und Daten unabhängig von der Anforderung des Hosts 300 erzeugen und den Befehl, die Adresse und die Daten an die Speichereinrichtung 100 übertragen. Beispielsweise kann der Speichercontroller 200 den Befehl, die Adresse und die Daten für die Durchführung eines Lesevorgangs und von Schreibvorgängen, die mit der Durchführung von Wear Leveling, Read Reclaim, Garbage Collection und anderen einhergehen, an die Speichereinrichtung 100 übermitteln.
  • In einer Ausführungsform kann der Speichercontroller 200 mindestens zwei oder mehr Speichereinrichtungen 100 steuern. In diesem Fall kann der Speichercontroller 200 die Speichereinrichtungen 100 gemäß eines Verschachtelungsverfahrens steuern, um die Betriebsleistung zu verbessern. Das Verschachtelungsverfahren kann ein Verfahren zur Steuerung von Operationen für mindestens zwei Speichereinrichtungen 100 sein, die sich gegenseitig überlappen.
  • In einer Ausführungsform kann die Speichereinrichtung 100 Abbildungsinformationen speichern. Die Abbildungsinformationen können eine Abbildungsbeziehung zwischen einer logischen Adresse des Hosts 300 und einer physikalischen Adresse der Speichereinrichtung 100 angeben. Darüber hinaus kann der Speichercontroller 200 einige der Abbildungsinformationen aus der Speichereinrichtung 100 lesen und speichern. Der Speichercontroller 200 kann eine physikalische Adresse ermitteln, die der logischen Adresse des Hosts während des Lesevorgangs entspricht, indem er die gespeicherten Abbildungsinformationen verwendet.
  • In einer Ausführungsform können der Host 300 und die Speicherungseinrichtung 50 mit einer HPB-Technik (Host Performance Booster) arbeiten. Dabei kann die HPB-Technik eine Technik sein, bei der ein Speicherbereich des Hosts 300 als Cache-Speicher für die Abbildungsinformationen verwendet wird. Beispielsweise kann die HPB-Technik die Lesebetriebsleistung für die Speicherungseinrichtung 50 verbessern, indem der Speicherbereich des Hosts 300 als Cache für eine Abbildungstabelle wie eine FTL-Abbildungstabelle verwendet wird.
  • Wenn beispielsweise eine logische Adresse, die gelesen werden soll, im Speicherbereich des Host 300 gespeichert ist, kann der Host 300 eine physikalische Adresse, die durch Bezugnahme auf die Abbildungsinformationen ermittelt wird, an die Speicherungseinrichtung 50 übermitteln. Da der Host 300 direkt eine physikalische Adressensuche nach einer logischen Adresse durchführen kann, die in den Abbildungsinformationen enthalten ist, kann die Betriebsleistung der Speichereinrichtung 50 verbessert werden, wenn die logische Adresse, die von dem Host 300 gelesen werden soll, in dem Speicherbereich gespeichert ist. Um die Betriebsleistung des Lesevorgangs zu verbessern, kann die Speicherungseinrichtung 50 daher dem Host 300 unter den in der Speicherungseinrichtung 50 gespeicherten Abbildungsinformationen Abbildungsinformationen empfehlen, die eine logische Adresse enthalten, von der erwartet wird, dass sie häufig vom Host 300 gelesen wird. Der Host 300 kann als Reaktion auf eine Empfehlung der Speicherungseinrichtung 50 eine Anfrage nach den Abbildungsinformationen an die Speicherungseinrichtung 50 richten. Die Speicherungseinrichtung 50 kann dem Host 300 die Abbildungsinformationen als Reaktion auf die Anfrage des Hosts 300 zur Verfügung stellen.
  • Die Vorgänge/Operationen des Hosts 300 und der Speicherungseinrichtung 50, die die HPB-Technik verwenden, werden unter Bezugnahme auf 3 ausführlich beschrieben.
  • In einer Ausführungsform umfasst der Speichercontroller 200 einen Empfehlungssignalmanager 210 und einen Host-Controller 220.
  • Der Empfehlungssignalmanager 210 kann eine Vielzahl von Empfehlungssignalen speichern. Dabei kann es sich bei dem Empfehlungssignal um Daten handeln, die dem Host 300 bereitgestellt werden, um dem Host 300 die Abbildungsinformationen zu empfehlen und den Speicherbereich des Host 300 zu aktivieren, in dem die empfohlenen Abbildungsinformationen gespeichert sind. Alternativ kann es sich bei dem Empfehlungssignal um Daten handeln, die dem Host 300 bereitgestellt werden, um den aktivierten Speicherbereich zu deaktivieren.
  • In einer Ausführungsform kann der Empfehlungssignalmanager 210 eine Empfehlungssignal-Warteschlange erzeugen, die eine Vielzahl von Empfehlungssignalen speichert. Die Warteschlange für Empfehlungssignale kann eine Struktur zum Verwalten einer Liste von Empfehlungssignalen sein, die dem Host 300 bereitgestellt werden sollen. Beispielsweise kann die Warteschlange für Empfehlungssignale zuerst ein in der Warteschlange für Empfehlungssignale gespeichertes Empfehlungssignal gemäß einem FIFO-Verfahren (First-in-First-out) ausgeben. In einer Ausführungsform kann eine Speicherkapazität, die in der Lage ist, die Empfehlungssignale in der Warteschlange für Empfehlungssignale maximal zu speichern, voreingestellt werden, ist aber nicht darauf beschränkt. Beispielsweise kann die Speicherkapazität der Warteschlange für Empfehlungssignale nicht voreingestellt sein, und die Speicherkapazität kann sich jedes Mal erhöhen, wenn ein Empfehlungssignal erzeugt wird.
  • Darüber hinaus kann der Empfehlungssignalmanager 210 die Anzahl der Empfehlungssignale speichern, die dem Host 300 bereitgestellt wurden. In einigen Implementierungen kann die Anzahl der dem Host 300 bereitgestellten Empfehlungssignale die Anzahl der Empfehlungssignale angeben, für die nach der Bereitstellung an den Host 300 noch keine Antwort eingegangen ist. Der Empfehlungssignalmanager 210 kann die Anzahl der dem Host 300 bereitgestellten Empfehlungssignale erhöhen, sobald das Empfehlungssignal dem Host 300 bereitgestellt wird. Umgekehrt kann der Empfehlungssignalmanager 210 die Anzahl der dem Host 300 bereitgestellten Empfehlungssignale verringern, wenn er die Anforderung der Abbildungsinformationen als Reaktion auf das Empfehlungssignal vom Host 300 erhält.
  • Der Host-Controller 220 kann mindestens ein Empfehlungssignal an den Host 300 senden. Der Host-Controller 220 kann das Empfehlungssignal an den Host 300 in Abhängigkeit davon bereitstellen, ob die Anzahl der dem Host 300 bereitgestellten Empfehlungssignale unter einem Schwellenwert (z. B. einem voreingestellten Schwellenwert) liegt. In einigen Implementierungen kann der Schwellenwert die maximale Anzahl von Empfehlungssignalen angeben, die dem Host 300 bereitgestellt werden können. Mit zunehmender Anzahl von Empfehlungssignalen, die sich im Host 300 ansammeln, kann es zu einem Engpass kommen, da die Anzahl der Anfragen/Anforderungen für die Abbildungsinformationen, die vom Host 300 an die Speicherungseinrichtung 50 übermittelt werden müssen, steigt. Daher kann der Schwellenwert ein Wert sein, der einen solchen Engpass verhindern kann, wenn der Host 300 die angesammelten Empfehlungssignale verarbeitet.
  • Wenn beispielsweise die Anzahl der dem Host 300 bereitgestellten Empfehlungssignale geringer ist als der voreingestellte Schwellenwert, kann der Host-Controller 220 dem Host 300 mindestens ein Empfehlungssignal bereitstellen. In diesem Fall kann der Host-Controller 220 mindestens ein Empfehlungssignal für den Host 300 bereitstellen, bis die Anzahl der für den Host 300 bereitgestellten Empfehlungssignale den voreingestellten Schwellenwert erreicht. Alternativ kann der Host-Controller 220, wenn die Anzahl der dem Host 300 bereitgestellten Empfehlungssignale gleich oder größer als der voreingestellte Schwellenwert ist, eine Vielzahl von Empfehlungssignalen in der Empfehlungssignal-Warteschlange halten. Das heißt, der Host-Controller 220 kann unter Umständen das Empfehlungssignal dem Host 300 nicht bereitstellen und kann die Empfehlungssignale in der Empfehlungssignal-Warteschlange unter Umständen verwalten, bis die Anzahl der Empfehlungssignale unter den voreingestellten Schwellenwert fällt.
  • Darüber hinaus kann der Host-Controller 220 die Anforderung der im Speicherbereich zu speichernden Abbildungsinformationen vom Host 300 als Reaktion auf das dem Host 300 bereitgestellte Empfehlungssignal empfangen. Hier kann die Anforderung der Abbildungsinformationen als
    „Lesepufferanforderung“ bezeichnet werden. Der Host-Controller 220 kann dem Host 300 die Abbildungsinformationen als Reaktion auf die Anforderung der Abbildungsinformationen bereitstellen.
  • Der Host 300 kann mit der Speicherungseinrichtung 50 über mindestens eines von verschiedenen Kommunikationsverfahren kommunizieren, wie z. B. einen universellen seriellen Bus (USB), einen seriellen AT-Anschluss (SATA), einen seriell angeschlossenen SCSI-Anschluss (SAS), einen Hochgeschwindigkeits-Interchip (HSIC), ein Small Computer System Interface (SCSI), eine Peripheral Component Interconnection (PCI), eine PCI Express (PCIe), eine Nonvolatile Memory Express (NVMe), eine Universal Flash Storage (UFS), eine Secure Digital (SD), eine Multi-Media-Card (MMC), eine Embedded MMC (eMMC), ein Dual In-Line Memory Module (DIMM), ein Registered DIMM (RDIMM) und ein Load Reduced DIMM (LRDIMM).
  • In einer Ausführungsform kann der Host 300 einen Abbildungsinformationen-Speicherbereich 310 zum Speichern von Abbildungsinformationen, die von der Speicherungseinrichtung 50 bereitgestellt werden, enthalten. Eine Beschreibung des Abbildungsinformationen-Speicherbereichs 310 wird unter Bezugnahme auf 2 ausführlich beschrieben.
  • 2 ist ein Diagramm, das ein Beispiel für einen Speicherbereich für Abbildungsinformationen zeigt, der auf einigen Ausführungsformen der offenbarten Technologie basiert.
  • Wie in 2 dargestellt, kann der Abbildungsinformationen-Speicherbereich 310 eine Vielzahl von Speicherbereichen umfassen. Hier kann die Vielzahl der Speicherbereiche entsprechend dem Empfehlungssignal der Speichereinrichtung 50 aktiviert oder deaktiviert werden. Der aktivierte Speicherbereich kann die Abbildungsinformationen speichern.
  • Wenn beispielsweise ein Empfehlungssignal für einen Speicherbereich 1 vom Host-Controller 220 empfangen wird, kann der Abbildungsinformationen-Speicherbereich 310 den Speicherbereich 1 aktivieren. Danach kann der Abbildungsinformationen-Speicherbereich 310 die vom Host-Controller 220 empfangenen Abbildungsinformationen in dem Speicherbereich 1 speichern. Die im Abbildungsinformationen-Speicherbereich 310 gespeicherten Abbildungsinformationen können verwendet werden, um die logische Adresse in die physikalische Adresse umzuwandeln, wenn eine Leseanforderung an die Speicherungseinrichtung 50 gestellt wird.
  • 3 ist ein Diagramm, das Beispieloperationen eines Hosts und einer Speicherungseinrichtung auf der Grundlage einiger Ausführungsformen der offenbarten Technologie veranschaulicht.
  • Bezugnehmend auf 3 kann die Speicherungseinrichtung 50 bei S201 das Empfehlungssignal erzeugen. Zum Beispiel kann die Speicherungseinrichtung 50 die Abbildungsinformationen, von denen erwartet wird, dass sie häufig vom Host 300 gelesen werden, auf der Grundlage eines kürzlich durchgeführten Lesevorgangs, der Anzahl der Lesevorgänge der Abbildungsinformationen und anderer bestimmen. Die Speicherungseinrichtung 50 kann das Empfehlungssignal zum Aktivieren des Speicherbereichs des Hosts 300 erzeugen, um die Abbildungsinformationen in dem Host 300 zu speichern.
  • In S203 kann die Speicherungseinrichtung 50 das Empfehlungssignal an den Host 300 übermitteln.
  • In S205 kann der Host 300 den Speicherbereich entsprechend dem Empfehlungssignal aktivieren.
  • In S207 kann der Host 300 die Anforderung der Abbildungsinformationen an die Speicherungseinrichtung 50 übermitteln.
  • Bei S209 kann die Speicherungseinrichtung 50 die angeforderten Abbildungsinformationen lesen.
  • In S211 kann die Speicherungseinrichtung 50 die Abbildungsinformationen an den Host 300 weitergeben.
  • In S213 kann der Host 300 die Abbildungsinformationen in dem aktivierten Speicherbereich speichern.
  • Bei S215 kann der Host 300 die Leseanforderung an die Speicherungseinrichtung 50 übermitteln. Dabei kann der Host 300 die logische Adresse und die der logischen Adresse entsprechende physikalische Adresse zusammen mit der Leseanforderung an die Speicherungseinrichtung 50 übermitteln.
  • In S217 kann die Speicherungseinrichtung 50 den Lesevorgang entsprechend der Leseanforderung durchführen.
  • In anderen Implementierungen kann die Speicherungseinrichtung 50 die Anfrage nach den Abbildungsinformationen als Reaktion auf das Empfehlungssignal vom Host 300 empfangen und dann ein weiteres Empfehlungssignal an den Host 300 senden. Das heißt, die Speicherungseinrichtung 50 kann das Empfehlungssignal in einem synchronen Verfahren bereitstellen. Mit anderen Worten: Auch wenn die Speicherungseinrichtung 50 ein weiteres Empfehlungssignal erzeugt, nachdem sie das Empfehlungssignal an den Host 300 geliefert hat, liefert die Speicherungseinrichtung 50 das weitere Empfehlungssignal erst, wenn die Speicherungseinrichtung 50 eine Antwort auf ein zuvor geliefertes Empfehlungssignal empfängt. Auch wenn der Host 300 das Empfehlungssignal empfängt, kann es außerdem vorkommen, dass der Host 300 die Antwort auf das Empfehlungssignal nicht sofort gemäß einem Zeitplan des Hosts 300 bereitstellt. In diesem Fall kann das Problem auftreten, dass die Leistung des Speichergeräts 50 reduziert wird.
  • Daher kann in einigen Ausführungsformen der offengelegten Technologie die Betriebsleistung der Speicherungseinrichtung 50 durch Bereitstellung mindestens eines Empfehlungssignals an den Host 300 verbessert werden. Das heißt, die Speicherungseinrichtung 50 kann ein oder mehrere Empfehlungssignale an den Host 300 durch ein asynchrones Verfahren bereitstellen, unabhängig davon, ob die Antwort auf das Empfehlungssignal, das dem Host 300 bereitgestellt wird, empfangen wird.
  • 4 ist ein Diagramm, das ein Beispiel für einen Empfehlungssignalmanager auf der Grundlage einiger Ausführungsformen der offenbarten Technologie zeigt.
  • Wie in 4 dargestellt, kann der Empfehlungssignalmanager 210 einen Empfehlungssignal-Warteschlangengenerator 211 und eine Empfehlungssignalanzahl-Speicherschaltung 212 umfassen.
  • Der Empfehlungssignal-Warteschlangengenerator 211 kann die Empfehlungssignal-Warteschlange erzeugen, in der die Vielzahl der Empfehlungssignale gespeichert wird.
  • In einer Ausführungsform kann der Empfehlungssignal-Warteschlangengenerator 211 die Vielzahl von Empfehlungssignalen in der Empfehlungssignal-Warteschlange in der Reihenfolge der Erzeugung der Vielzahl von Empfehlungssignalen speichern. Wenn beispielsweise das Empfehlungssignal erzeugt wird, kann der Empfehlungssignal-Warteschlangengenerator 211 das erzeugte Empfehlungssignal in der Empfehlungssignal-Warteschlange speichern.
  • In einer Ausführungsform kann der Empfehlungssignal-Warteschlangengenerator 211 mindestens ein Empfehlungssignal aus der Empfehlungssignal-Warteschlange entfernen, nachdem mindestens ein Empfehlungssignal an den Host 300 geliefert wurde. Mit anderen Worten, der Empfehlungssignal-Warteschlangengenerator 211 kann das dem Host 300 bereitgestellte Empfehlungssignal aus der Empfehlungssignal-Warteschlange entfernen.
  • Die Empfehlungssignalanzahl-Speicherschaltung 212 kann die Anzahl von Empfehlungssignalen speichern, die dem Host 300 zur Verfügung gestellt werden. Darüber hinaus kann die Empfehlungssignalanzahl-Speicherschaltung 212 den Schwellenwert des Empfehlungssignals speichern, das dem Host 300 zur Verfügung gestellt werden kann. Eine Beschreibung des Empfehlungssignalanzahl-Speicherschaltung 212 wird unter Bezugnahme auf 6 im Detail beschrieben.
  • 5 ist ein Diagramm, das ein Beispiel für eine Empfehlungssignal-Warteschlange auf der Grundlage einiger Ausführungsformen der offenbarten Technologie zeigt.
  • Wie in 5 dargestellt, kann die Empfehlungssignal-Warteschlange eine Vielzahl von Empfehlungssignalen speichern, die dem Host 300 zur Verfügung gestellt werden.
  • Die Empfehlungssignale können zuerst in der Reihenfolge der Erzeugung des Empfehlungssignals in die Empfehlungssignal-Warteschlange eingefügt werden. Außerdem können die Empfehlungssignale in der Reihenfolge der Warteschlangeneinträge des Empfehlungssignals in der Empfehlungssignal-Warteschlange ausgegeben werden. Je früher die Empfehlungssignale in die Empfehlungssignal-Warteschlange eingefügt werden, desto früher können die Empfehlungssignale aus der Empfehlungssignal-Warteschlange ausgegeben werden. In einer anderen Implementierung kann die Empfehlungssignal-Warteschlange das zuletzt eingefügte Empfehlungssignal ausgeben.
  • Darüber hinaus kann die Empfehlungssignal-Warteschlange Informationen über den Kopfindex und den Endindex enthalten. Ein Kopfindex kann den Ort oder die Adresse in der Empfehlungssignal-Warteschlange angeben, von der das Empfehlungssignal ausgegeben wird. Wenn das Empfehlungssignal beispielsweise unter der Steuerung des Host-Controllers 220 ausgegeben wird, wird das Empfehlungssignal von der Stelle in der Empfehlungssignal-Warteschlange ausgegeben, die durch den Kopfindex angegeben wird, und dann erhöht sich der Kopfindexwert um ein bestimmtes Inkrement (z.B. „1"). Darüber hinaus kann ein Endindex den Ort oder die Adresse in der Empfehlungssignal-Warteschlange angeben, an der das Empfehlungssignal gespeichert wird. Wenn das Empfehlungssignal beispielsweise unter der Steuerung des Host-Controllers 220 gespeichert wird, wird das Empfehlungssignal an dem Ort oder der Adresse in der Empfehlungssignal-Warteschlange gespeichert, der/die durch den Endindex angegeben wird, und dann erhöht sich ein Endindexwert um ein bestimmtes Inkrement (z. B. „1").
  • 6 ist ein Diagramm, das ein Beispiel für eine Empfehlungssignalanzahl-Speicherschaltung auf der Grundlage einiger Ausführungsformen der offenbarten Technologie zeigt.
  • Wie in 6 dargestellt, kann die Empfehlungssignalanzahl-Speicherschaltung 212 die Anzahl #RCD der Empfehlungssignale, die dem Host 300 bereitgestellt werden, und einen Schwellenwert („Schwelle“ in 6) des Empfehlungssignals, das dem Host 300 bereitgestellt werden kann, speichern.
  • Die Empfehlungssignalanzahl-Speicherschaltung 212 kann die Anzahl #RCD der Empfehlungssignale, die dem Host 300 zur Verfügung gestellt werden, immer dann erhöhen oder verringern, wenn das Empfehlungssignal dem Host 300 zur Verfügung gestellt wird oder die Antwort auf das Empfehlungssignal vom Host 300 empfangen wird.
  • In einer Ausführungsform kann die Empfehlungssignalanzahl-Speicherschaltung 212 die Anzahl #RCD der Empfehlungssignale, die dem Host 300 bereitgestellt werden, erhöhen, wenn die Empfehlungssignalanzahl-Speicherschaltung 212 eines der mehreren Empfehlungssignale an den Host 300 liefert. Zum Beispiel kann die Empfehlungssignalanzahl-Speicherschaltung 212 die Anzahl #RCD der Empfehlungssignale, die dem Host 300 bereitgestellt werden, immer dann erhöhen, wenn das Empfehlungssignal dem Host bereitgestellt wird.
  • In einer Ausführungsform kann die Empfehlungssignalanzahl-Speicherschaltung 212 die Anzahl #RCD von Empfehlungssignalen, die dem Host 300 bereitgestellt werden, verringern, wenn sie die Anforderung für die im Speicherbereich zu speichernden Abbildungsinformationen vom Host 300 empfängt. Das heißt, wenn die Antwort auf das Empfehlungssignal von dem Host 300 empfangen wird, kann die Empfehlungssignalanzahl-Speicherschaltung 212 die Anzahl #RCD der Empfehlungssignale, die dem Host 300 bereitgestellt werden, verringern.
  • 7 ist ein Diagramm, das einen Beispielvorgang zum Speichern eines Empfehlungssignals in einer Empfehlungssignal-Warteschlange auf der Grundlage einiger Ausführungsformen der offenbarten Technologie zeigt.
  • In 7 kann die Anzahl der Empfehlungssignale, die dem Host 300 zur Verfügung gestellt werden, i sein, und der Schwellenwert („Schwelle“ in 7) des Empfehlungssignals, das dem Host 300 zur Verfügung gestellt wird, kann i sein. Dieses Beispiel zeigt, dass der Host 300 Empfehlungssignale RCD, die dem Schwellenwert entsprechen, von der Speicherungseinrichtung 50 empfängt.
  • Bezugnehmend auf 7 kann der Empfehlungssignalmanager 210 das 0-te Empfehlungssignal RCD 0 in der Empfehlungssignal-Warteschlange speichern, wenn ein 0-tes Empfehlungssignal RCD 0 erzeugt wird. Der Empfehlungssignalmanager 210 kann den Wert des Endindexes um ein bestimmtes Inkrement (z.B. „1“) erhöhen, nachdem das 0-te Empfehlungssignal RCD 0 gespeichert wurde. Ein anschließend erzeugtes Empfehlungssignal kann an einer Position gespeichert werden, die dem Index 1 in der Empfehlungssignal-Warteschlange entspricht.
  • Da die Anzahl der dem Host 300 bereitgestellten Empfehlungssignale gleich dem Schwellenwert ist, kann der Host-Controller 220 das 0-te Empfehlungssignal RCD 0 in der Empfehlungssignal-Warteschlange gespeichert lassen. Das 0-te Empfehlungssignal RCD 0 kann in der Empfehlungssignal-Warteschlange gespeichert werden, bis die Anzahl der dem Host 300 bereitgestellten Empfehlungssignale unter den Schwellenwert fällt.
  • 8 ist ein Diagramm, das ein Beispiel für die Bereitstellung eines Empfehlungssignals an einen Host auf der Grundlage einiger Ausführungsformen der offenbarten Technologie zeigt.
  • In 8 kann die Anzahl der Empfehlungssignale, die dem Host 300 zur Verfügung gestellt werden, i-1 sein, und der Schwellenwert des Empfehlungssignals, das dem Host 300 zur Verfügung gestellt wird, ist i. Dieses Beispiel zeigt, dass die Anzahl der Empfehlungssignale, die dem Host 300 zur Verfügung gestellt werden, kleiner als der Schwellenwert ist.
  • Bezugnehmend auf 8 kann die Empfehlungssignal-Warteschlange eine Vielzahl von Empfehlungssignalen RCD 0 bis RCD 9 speichern. Zusätzlich kann der Wert des Endindexes 10 sein. Das anschließend erzeugte Empfehlungssignal kann an einer Position gespeichert werden, die dem Index 10 in der Warteschlange für Empfehlungssignale entspricht.
  • Da die Anzahl der dem Host 300 bereitgestellten Empfehlungssignale unter dem Schwellenwert liegt, kann der Host-Controller 220 das Empfehlungssignal an den Host 300 weitergeben. Da in diesem Fall das letzte eingefügte Empfehlungssignal das 0-te Empfehlungssignal RCD 0 ist, kann der Host-Controller 220 das 0-te Empfehlungssignal RCD 0 an den Host 300 liefern. Der Empfehlungssignalmanager 210 kann den Wert des Kopfindexes um ein bestimmtes Inkrement (z.B. „1“) erhöhen. Das anschließend ausgegebene Empfehlungssignal kann ein Empfehlungssignal sein, das an einer Position gespeichert ist, die dem Index 1 in der Empfehlungssignal-Warteschlange entspricht.
  • Der Empfehlungssignalmanager 210 kann das 0-te Empfehlungssignal RCD 0 aus der Empfehlungssignal-Warteschlange entfernen. Außerdem kann der Empfehlungssignalmanager 210 die Anzahl der Empfehlungssignale, die dem Host zur Verfügung gestellt werden, erhöhen.
  • Ein Engpass kann auftreten, wenn der Host 300 auf mehrere Empfehlungssignale antwortet. Wie bereits erwähnt, kann in einigen Ausführungsformen der offenbarten Technologie ein solcher Engpass dadurch verhindert werden, dass eine begrenzte Anzahl von Empfehlungssignalen an den Host 300 übermittelt wird.
  • Auch wenn die Anzahl der Empfehlungssignale, die dem Host 300 zur Verfügung gestellt werden können, begrenzt ist, kann die offengelegte Technologie in einigen Ausführungsformen implementiert werden, um die Empfehlungssignale dem Host 300 effektiv über die Empfehlungssignal-Warteschlange zur Verfügung zu stellen.
  • 9 ist ein Flussdiagramm, das ein Beispielverfahren für den Betrieb eines Speichercontrollers auf der Grundlage einiger Ausführungsformen der offenbarten Technologie zeigt.
  • Das in 9 gezeigte Verfahren kann z. B. von dem in 1 gezeigten Speichercontroller 200 durchgeführt werden.
  • Wie in 9 dargestellt, kann der Speichercontroller 200 bei S901 die Empfehlungssignal-Warteschlange erzeugen.
  • Bei S903 kann der Speichercontroller 200 das Empfehlungssignal in der Empfehlungssignal-Warteschlange speichern. Beim Speichern der Vielzahl von Empfehlungssignalen kann der Speicher-Controller 200 die Vielzahl von Empfehlungssignalen in der Empfehlungssignal-Warteschlange in der Reihenfolge der Erzeugung der Vielzahl von Empfehlungssignalen speichern.
  • Bei S905 kann der Speichercontroller 200 die Anzahl der Empfehlungssignale berechnen, die dem Host 300 zur Verfügung gestellt werden.
  • Bei S907 kann der Speichercontroller 200 feststellen, ob die Anzahl der dem Host 300 bereitgestellten Empfehlungssignale unter dem voreingestellten Schwellenwert liegt.
  • Wenn beispielsweise die Anzahl der dem Host 300 bereitgestellten Empfehlungssignale geringer ist als der voreingestellte Schwellenwert, kann der Speichercontroller 200 bei S909 das Empfehlungssignal an den Host liefern. Beispielsweise kann der Speichercontroller 200 dem Host 300 mindestens ein Empfehlungssignal in der Reihenfolge der Warteschlangeneinträge des in der Empfehlungssignal-Warteschlange gespeicherten Empfehlungssignals bereitstellen, bis die Anzahl der dem Host 300 bereitgestellten Empfehlungssignale den voreingestellten Schwellenwert erreicht.
  • Bei S911 kann der Speichercontroller 200 das dem Host 300 bereitgestellte Empfehlungssignal aus der Warteschlange für Empfehlungssignale entfernen.
  • Wenn die Anzahl der dem Host 300 zur Verfügung gestellten Empfehlungssignale gleich oder größer als der voreingestellte Schwellenwert gemäß einem Bestimmungsergebnis bei S907 ist, kann der Speichercontroller 200 den Schritt beenden. Das heißt, der Speichercontroller 200 kann das in der Warteschlange für Empfehlungssignale gespeicherte Empfehlungssignal in einem gespeicherten Zustand halten.
  • 10 ist ein Flussdiagramm, das einen Beispielvorgang zur Berechnung der Anzahl von Empfehlungssignalen, die einem Host zur Verfügung gestellt werden, basierend auf einigen Ausführungsformen der offenbarten Technologie, veranschaulicht.
  • Das in 10 gezeigte Verfahren kann z. B. von dem in 1 gezeigten Speichercontroller 200 durchgeführt werden.
  • Wie in 10 dargestellt, kann der Speichercontroller 200 bei S1001 das Empfehlungssignal an den Host 300 übermitteln.
  • Bei S1003 kann der Speichercontroller 200 die Anzahl der Empfehlungssignale an den Host 300 erhöhen.
  • 11 ist ein Flussdiagramm, das einen weiteren Beispielvorgang zur Berechnung der Anzahl von Empfehlungssignalen, die einem Host zur Verfügung gestellt werden, basierend auf einigen Ausführungsformen der offenbarten Technologie, veranschaulicht.
  • Das in 11 gezeigte Verfahren kann zum Beispiel von dem in 1 gezeigten Speichercontroller 200 durchgeführt werden.
  • Bezugnehmend auf 11 kann der Speichercontroller 200 in S1101 die Anforderung der Abbildungsinformationen vom Host 300 als Reaktion auf das Empfehlungssignal empfangen.
  • Bei S1103 kann der Speichercontroller 200 die Anzahl der Empfehlungssignale an den Host 300 verringern.
  • 12 ist ein Flussdiagramm, das ein Beispielverfahren für den Betrieb eines Speichercontrollers auf der Grundlage einiger Ausführungsformen der offenbarten Technologie zeigt.
  • Das in 12 gezeigte Verfahren kann zum Beispiel von dem in 1 gezeigten Speichercontroller 200 durchgeführt werden.
  • Wie in 12 dargestellt, kann der Speichercontroller 200 bei S1201 die Empfehlungssignal-Warteschlange erzeugen.
  • Bei S1203 kann der Speichercontroller 200 das Empfehlungssignal in der Empfehlungssignal-Warteschlange speichern. Beim Speichern der Vielzahl von Empfehlungssignalen kann die Speichersteuerung 200 die Vielzahl von Empfehlungssignalen in der Empfehlungssignal-Warteschlange in der Reihenfolge der Erzeugung der Vielzahl von Empfehlungssignalen speichern.
  • Bei S1205 kann der Speichercontroller 200 asynchron mindestens ein Empfehlungssignal an den Host 300 liefern. Wenn beispielsweise die Anzahl der dem Host 300 bereitgestellten Empfehlungssignale unter dem voreingestellten Schwellenwert liegt, kann der Speichercontroller 200 dem Host 300 mindestens ein Empfehlungssignal bereitstellen, unabhängig davon, ob die Antwort auf die entsprechenden Empfehlungssignale empfangen wird.
  • Bei S1207 kann der Speichercontroller 200 das dem Host 300 bereitgestellte Empfehlungssignal aus der Warteschlange für Empfehlungssignale entfernen.
  • 13 ist ein Diagramm, das ein Beispiel für die Speichereinrichtung von 1 zeigt.
  • Wie in 13 dargestellt, kann die Speichereinrichtung 100 ein Speicherzellenfeld 110, einen Spannungsgenerator 120, einen Adressendecoder 130, eine Eingangs-/Ausgangsschaltung 140 und eine Steuerlogik 150 umfassen.
  • Das Speicherzellenfeld 110 enthält eine Vielzahl von Speicherblöcken BLK1 bis BLKi. Die Vielzahl von Speicherblöcken BLK1 bis BLKi sind über Zeilenleitungen RL mit dem Adressendecoder 130 verbunden. Die Vielzahl von Speicherblöcken BLK1 bis BLKi können über Spaltenleitungen CL mit der Eingangs-/Ausgangsschaltung 140 verbunden sein. In einer Ausführungsform können die Zeilenleitungen RL Wortleitungen, Source-Auswahlleitungen und Drain-Auswahlleitungen umfassen. In einer Ausführungsform können die Spaltenleitungen CL Bitleitungen enthalten.
  • Jeder der Vielzahl von Speicherblöcken BLK1 bis BLKi enthält eine Vielzahl von Speicherzellen. In einer Ausführungsform können die Vielzahl von Speicherzellen nichtflüchtige Speicherzellen sein. Speicherzellen, die mit der gleichen Wortleitung unter der Vielzahl von Speicherzellen verbunden sind, können als eine physikalische Seite definiert werden. Das heißt, das Speicherzellenfeld 110 kann eine Vielzahl von physikalischen Seiten umfassen. Jede der Speicherzellen der Speichereinrichtung 100 kann als Single-Level-Zelle (SLC), die ein Datenbit speichert, als Multi-Level-Zelle (MLC), die zwei Datenbits speichert, als Triple-Level-Zelle (TLC), die drei Datenbits speichert, oder als Quad-Level-Zelle (QLC), die vier Datenbits speichern kann, konfiguriert sein.
  • In einer Ausführungsform können der Spannungsgenerator 120, der Adressendecoder 130 und die Eingangs-/Ausgangsschaltung 140 gemeinsam als Peripherieschaltung bezeichnet werden. Die Peripherieschaltung kann das Speicherzellenfeld 110 unter der Steuerung der Steuerlogik 150 ansteuern. Die Peripherieschaltung kann das Speicherzellenfeld 110 ansteuern, um den Schreibvorgang, den Lesevorgang und den Löschvorgang durchzuführen.
  • Der Spannungsgenerator 120 ist so konfiguriert, dass er eine Vielzahl von Betriebsspannungen Vop unter Verwendung einer der Speichereinrichtung 100 zugeführten externen Versorgungsspannung erzeugt. Der Spannungsgenerator 120 arbeitet in Abhängigkeit von der Steuerung der Steuerlogik 150.
  • In einer Ausführungsform kann der Spannungsgenerator 120 eine interne Versorgungsspannung durch Regulierung der externen Versorgungsspannung erzeugen. Die vom Spannungsgenerator 120 erzeugte interne Versorgungsspannung wird als Betriebsspannung für die Speichereinrichtung 100 verwendet.
  • In einer Ausführungsform kann der Spannungsgenerator 120 die Vielzahl von Betriebsspannungen unter Verwendung einer externen Versorgungsspannung oder einer internen Versorgungsspannung erzeugen. Der Spannungsgenerator 120 kann so konfiguriert sein, dass er verschiedene Spannungen erzeugt, die in der Speichereinrichtung 100 benötigt werden. Zum Beispiel kann der Spannungsgenerator 120 eine Vielzahl von Löschspannungen, eine Vielzahl von Programmierspannungen, eine Vielzahl von Durchlassspannungen, eine Vielzahl von ausgewählten Lesespannungen und eine Vielzahl von nicht ausgewählten Lesespannungen erzeugen.
  • Der Spannungsgenerator 120 kann eine Vielzahl von Pumpkondensatoren enthalten, die die interne Versorgungsspannung empfangen, um die Vielzahl von Betriebsspannungen mit verschiedenen Spannungspegeln zu erzeugen, und kann die Vielzahl von Betriebsspannungen durch selektives Aktivieren der Vielzahl von Pumpkondensatoren in Reaktion auf die Steuerung der Steuerlogik 150 erzeugen.
  • Die erzeugte Vielzahl von Betriebsspannungen kann durch den Adressendecoder 130 an das Speicherzellenfeld 110 geliefert werden.
  • Der Adressendecoder 130 ist über die Zeilenleitungen RL mit dem Speicherzellenfeld 110 verbunden. Der Adressendecoder 130 ist so konfiguriert, dass er als Reaktion auf die Steuerung der Steuerlogik 150 arbeitet. Der Adressendecoder 130 kann eine Adresse ADDR von der Steuerlogik 150 empfangen. Der Adressendecoder 130 kann eine Blockadresse aus den empfangenen Adressen ADDR dekodieren. Der Adressendecoder 130 wählt mindestens einen Speicherblock aus den Speicherblöcken BLK1 bis BLKi entsprechend der dekodierten Blockadresse aus. Der Adressendecoder 130 kann eine Zeilenadresse unter den empfangenen Adressen ADDR dekodieren. Der Adressendecoder 130 kann mindestens eine Wortleitung unter den Wortleitungen eines ausgewählten Speicherblocks entsprechend der dekodierten Zeilenadresse auswählen. In einer Ausführungsform kann der Adressendecoder 130 eine Spaltenadresse unter den empfangenen Adressen ADDR dekodieren. Der Adressendecoder 130 kann die Eingangs-/Ausgangsschaltung 140 und das Speicherzellenfeld 110 entsprechend der dekodierten Spaltenadresse miteinander verbinden.
  • In einigen Ausführungsformen der offenbarten Technologie kann der Adressendecoder 130 während des Lesevorgangs eine Lesespannung an eine ausgewählte Wortleitung und eine Lesedurchlassspannung mit einem höheren Pegel als dem der Lesespannung an nicht ausgewählte Wortleitungen anlegen.
  • Der Adressendecoder 130 kann beispielsweise Komponenten wie einen Zeilendecoder, einen Spaltendecoder und einen Adressenpuffer enthalten.
  • Die Eingangs-/Ausgangsschaltung 140 kann eine Vielzahl von Seitenpuffern enthalten. Die Vielzahl von Seitenpuffern können über die Bitleitungen mit dem Speicherzellenfeld 110 verbunden sein. Während des Schreibvorgangs können Daten in ausgewählten Speicherzellen entsprechend den in der Vielzahl von Seitenpuffern gespeicherten Daten gespeichert werden.
  • Während des Lesevorgangs können die in den ausgewählten Speicherzellen gespeicherten Daten über die Bitleitungen erfasst werden, und die erfassten Daten können in den Seitenpuffern gespeichert werden.
  • Die Steuerlogik 150 kann den Adressendecoder 130, den Spannungsgenerator 120 und die Eingangs-/Ausgangsschaltung 140 steuern. Die Steuerlogik 150 kann in Reaktion auf den von einem externen Gerät übertragenen Befehl CMD arbeiten. Die Steuerlogik 150 kann als Reaktion auf den Befehl CMD und die Adresse ADDR verschiedene Signale erzeugen, um die peripheren Schaltungen zu steuern.
  • 14 ist ein Diagramm, das eine Beispielstruktur eines der Speicherblöcke von 13 zeigt.
  • Der Speicherblock BLKi ist ein beliebiger Speicherblock BLKi aus den Speicherblöcken BLK1 bis BLKi von 13.
  • Wie in 14 dargestellt, können mehrere parallel zueinander angeordnete Wortleitungen zwischen einer ersten Auswahlleitung und einer zweiten Auswahlleitung angeschlossen werden. Dabei kann die erste Auswahlleitung die Source-Auswahlleitung SSL und die zweite Auswahlleitung die Drain-Auswahlleitung DSL sein. Genauer gesagt kann der Speicherblock BLKi eine Vielzahl von Strings/Ketten ST enthalten, die zwischen den Bitleitungen BL1 bis BLn und einer Source-Leitung SL angeschlossen sind. Die Bitleitungen BL1 bis BLn können jeweils mit den Strings ST verbunden sein, und die Source-Leitung SL kann gemeinsam mit den Strings ST verbunden sein. Da die Strings ST so konfiguriert sein können, dass sie untereinander identisch sind, wird als Beispiel ein String ST beschrieben, der mit der ersten Bitleitung BL1 verbunden ist. In diesem Patentdokument kann das Wort „String“ verwendet werden, um einen Satz von in Reihe geschalteten Speicherzellen zu bezeichnen. In einigen Ausführungsformen können die NAND-Strings einen Satz von in Reihe geschalteten Flash-Speicherzellen umfassen.
  • Der String ST kann einen Source-Select-Transistor SST (Source-Auswahl-Transistor), eine Vielzahl von Speicherzellen MC1 bis MC16 und einen Drain-Select-Transistor DST (Drain-Auswahl-Transistor) enthalten, der in Reihe zwischen der Source-Leitung SL und der ersten Bitleitung BL1 geschaltet ist. Ein String ST kann mindestens einen oder mehrere Source-Select-Transistoren SST und Drain-Select-Transistoren DST enthalten und kann mehr als die in der Figur gezeigte Anzahl von Speicherzellen MC1 bis MC16 enthalten.
  • Eine Source des Source-Select-Transistors SST kann mit der Source-Leitung SL verbunden sein, und eine Drain des Drain-Select-Transistors DST kann mit der ersten Bitleitung BL1 verbunden sein. Die Speicherzellen MC1 bis MC16 können in Reihe zwischen dem Source-Select-Transistor SST und dem Drain-Select-Transistor DST geschaltet sein. Gates der in den verschiedenen Strings ST enthaltenen Source-Select-Transistoren SST können mit der Source-Select-Leitung SSL verbunden sein, Gates der Drain-Select-Transistoren DST können mit der Drain-Select-Leitung DSL verbunden sein, und Gates der Speicherzellen MC1 bis MC16 können mit der Vielzahl von Wortleitungen WL1 bis WL16 verbunden sein. Eine Gruppe von Speicherzellen, die mit derselben Wortleitung verbunden sind, kann unter den Speicherzellen, die in verschiedenen Strings ST enthalten sind, als Seite PG bezeichnet werden. Daher kann der Speicherblock BLKi die Seiten PG in der Anzahl der Wortleitungen WL1 bis WL16 enthalten.
  • Eine Speicherzelle kann ein Bit an Daten speichern. Dies wird gemeinhin als einstufige Zelle (SLC) bezeichnet. In diesem Fall kann eine physikalische Seite PG eine logische Seite (LPG) an Daten speichern. Die Daten einer logischen Seite (LPG) können Datenbits mit der gleichen Anzahl wie Zellen, die in einer physikalischen Seite PG enthalten sind, enthalten.
  • Die eine Speicherzelle kann zwei oder mehr Datenbits speichern. In diesem Fall kann eine physikalische Seite PG Daten von zwei oder mehr logischen Seiten (LPG) speichern.
  • 15 ist ein Diagramm, das ein Beispiel für den Speichercontroller von 1 zeigt.
  • Der Speichercontroller 200 von 1 kann den gleichen Aufbau und die gleichen technischen Merkmale aufweisen wie der Speichercontroller 1000 von 15.
  • Unter Bezugnahme auf 1 und 15 kann der Speichercontroller 1000 einen Prozessor 1010, ein RAM 1020, eine Fehlerkorrekturschaltung 1030, ein ROM 1040, eine Host-Schnittstelle 1050 und eine Flash-Schnittstelle 1060 umfassen.
  • Der Prozessor 1010 kann einen Gesamtbetrieb des Speichercontrollers 1000 steuern. In einer Ausführungsform können der Empfehlungssignalmanager 210 und der Host-Controller 220 von 1 als eine Konfiguration des Prozessors 1010 implementiert werden. Daher kann der Prozessor 1010 die Operationen des Empfehlungssignalmanagers 210 und des Host-Controllers 220, die unter Bezugnahme auf 1 beschrieben sind, identisch durchführen.
  • Zum Beispiel kann der Prozessor 1010 die Empfehlungssignal-Warteschlange erzeugen, in der die Vielzahl von Empfehlungssignalen gespeichert sind. Wenn die Anzahl der dem Host 300 bereitgestellten Empfehlungssignale geringer ist als der voreingestellte Schwellenwert, kann der Prozessor 1010 dem Host 300 ein oder mehrere in der Empfehlungssignal-Warteschlange gespeicherte Empfehlungssignale bereitstellen. Alternativ dazu kann der Prozessor 1010 die in der Warteschlange für Empfehlungssignale gespeicherten Empfehlungssignale in einem gespeicherten Zustand halten, wenn die Anzahl der dem Host 300 bereitgestellten Empfehlungssignale gleich oder größer als der voreingestellte Schwellenwert ist.
  • Das RAM 1020 kann als Pufferspeicher, Cache-Speicher, Betriebsspeicher und andere Speicher des Speichercontrollers 1000 verwendet werden.
  • Die Fehlerkorrekturschaltung 1030 kann eine Fehlerkorrektur durchführen. Die Fehlerkorrekturschaltung 1030 kann eine Fehlerkorrekturkodierung (ECC-Kodierung) auf der Grundlage von Daten durchführen, die über die Flash-Schnittstelle 1060 in die Speichereinrichtung 100 geschrieben werden sollen. Die mit Fehlerkorrektur kodierten Daten können über die Flash-Schnittstelle 1060 an die Speichereinrichtung 100 übertragen werden. Die Fehlerkorrekturschaltung 1030 kann eine Fehlerkorrekturdecodierung (ECC-Decodierung) an Daten durchführen, die von der Speichereinrichtung 100 über die Flash-Schnittstelle 1060 empfangen werden. Zum Beispiel kann die Fehlerkorrekturschaltung 1030 in der Flash-Schnittstelle 1060 als eine Komponente der Flash-Schnittstelle 1060 enthalten sein.
  • Im ROM 1040 können verschiedene Informationen, die für den Betrieb des Speichercontrollers 1000 erforderlich sind, in Form von Firmware gespeichert werden. In einer Ausführungsform kann das ROM 1040 die Vielzahl von Empfehlungssignalen, die Anzahl der dem Host 300 bereitgestellten Empfehlungssignale und den Schwellenwert des Empfehlungssignals, das dem Host 300 bereitgestellt werden kann, speichern.
  • Die Speichersteuerung, d. h. der Speichercontroller 1000 kann über die Host-Schnittstelle 1050 mit einem externen Gerät (z. B. dem Host 300, einem Anwendungsprozessor und anderen) kommunizieren.
  • Der Speichercontroller 1000 kann mit der Speichereinrichtung 100 über die Flash-Schnittstelle 1060 kommunizieren. Der Speichercontroller 1000 kann einen Befehl, eine Adresse, ein Steuersignal und andere an die Speichereinrichtung 100 übertragen und Daten über die Flash-Schnittstelle 1060 empfangen. Die Flash-Schnittstelle 1060 kann zum Beispiel eine NAND-Schnittstelle umfassen.
  • 16 ist ein Blockdiagramm, das ein Beispiel für ein Speicherkartensystem zeigt, das eine Speicherungseinrichtung enthält, die auf der Grundlage einiger Ausführungsformen der offenbarten Technologie implementiert wurde.
  • Gemäß 16 umfasst das Speicherkartensystem 2000 umfasst einen Speichercontroller 2100, eine Speichereinrichtung 2200 und einen Verbinder 2300.
  • Der Speichercontroller 2100 ist mit der Speichereinrichtung 2200 verbunden. Der Speichercontroller 2100 ist für den Zugriff auf die Speichereinrichtung 2200 konfiguriert. Zum Beispiel kann der Speichercontroller 2100 so konfiguriert sein, dass er Lese-, Schreib-, Lösch- und Hintergrundoperationen der Speichereinrichtung 2200 steuert. Der Speichercontroller 2100 ist so konfiguriert, dass er eine Schnittstelle zwischen der Speichereinrichtung 2200 und einem Host bereitstellt. Der Speichercontroller 2100 ist so konfiguriert, dass er Firmware zur Steuerung der Speichereinrichtung 2200 ansteuert. Das strukturelle und funktionale Merkmal des Speichercontrollers 2100 kann dasselbe sein wie das strukturelle und funktionale Merkmal des Speichercontrollers 200, der unter Bezugnahme auf 1 beschrieben wird. Das Struktur- und Funktionsmerkmal der Speichereinrichtung 2200 kann dasselbe sein wie das Struktur- und Funktionsmerkmal der Speichereinrichtung 100, die unter Bezugnahme auf 1 beschrieben wird.
  • Der Speichercontroller 2100 kann beispielsweise Komponenten wie einen Direktzugriffsspeicher (RAM), einen Prozessor, eine Host-Schnittstelle, eine Speicherschnittstelle und einen Fehlerkorrektor enthalten.
  • Der Speichercontroller 2100 kann über den Verbinder 2300 mit einem externen Gerät kommunizieren. Der Speichercontroller 2100 kann mit einem externen Gerät (z. B. dem Host) gemäß einem bestimmten Kommunikationsstandard kommunizieren. Zum Beispiel ist der Speichercontroller 2100 so konfiguriert, dass er mit einem externen Gerät über mindestens einen der verschiedenen Kommunikationsstandards wie einen universellen seriellen Bus (USB), eine Multimediakarte (MMC), eine eingebettete MMC (eMMC), eine Peripheral Component Interconnection (PCI) PCI Express (PCI-E), Advanced Technology Attachment (ATA), Serial-ATA, Parallel-ATA, Small Computer System Interface (SCSI), Enhanced Small Disk Interface (ESDI), Integrated Drive Electronics (IDE), FireWire, Universal Flash Storage (UFS), Wi-Fi, Bluetooth und NVMe kommuniziert. Beispielsweise kann der Verbinder 2300 durch mindestens einen der verschiedenen oben beschriebenen Kommunikationsstandards definiert sein.
  • Die Speichereinrichtung 2200 kann beispielsweise aus verschiedenen nichtflüchtigen Speicherelementen wie einem elektrisch löschbaren und programmierbaren ROM (EEPROM), einem NAND-Flash-Speicher, einem NOR-Flash-Speicher, einem Phasenänderungs-RAM (PRAM), einem resistiven RAM (ReRAM), einem ferroelektrischen RAM (FRAM) und einem Spin-Transfer-Torque-Magnetic-RAM (STT-MRAM) bestehen.
  • Der Speichercontroller 2100 und die Speichereinrichtung 2200 können in eine Halbleitereinrichtung integriert sein, um eine Speicherkarte zu konfigurieren. Zum Beispiel können der Speichercontroller 2100 und die Speichereinrichtung 2200 in eine Halbleitereinrichtung integriert werden, um eine Speicherkarte wie eine PC-Karte (PCMCIA), eine Compact-Flash-Karte (CF), eine Smart-Media-Karte (SM oder SMC), einen Memory-Stick, eine Multimedia-Karte (MMC, RS-MMC, MMCmicro oder eMMC), eine SD-Karte (SD, miniSD, microSD oder SDHC) und einen Universal-Flash-Speicher (UFS) zu konfigurieren.
  • 17 ist ein Blockdiagramm, das ein Beispiel für ein Solid-State-Drive-System (SSD) zeigt, das eine Speicherungseinrichtung enthält, die auf der Grundlage einiger Ausführungsformen der offenbarten Technologie implementiert wurde.
  • Wie in 17 dargestellt, umfasst das SSD-System 3000 einen Host 3100 und ein SSD 3200. Die SSD 3200 tauscht über einen Signalverbinder 3001 ein Signal mit dem Host 3100 aus und erhält über einen Stromanschluss 3002 Strom. Die SSD 3200 umfasst einen SSD-Controller 3210, eine Vielzahl von Flash-Speichern 3221 bis 322n, eine Hilfsstromversorgung 3230, und einen Pufferspeicher 3240.
  • In einigen Ausführungsformen der offenbarten Technologie kann der SSD-Controller 3210 die Funktion des mit Bezug auf 1 beschriebenen Speichercontrollers 200 übernehmen.
  • Der SSD-Controller 3210 kann die Vielzahl der Flash-Speicher 3221 bis 322n in Reaktion auf das vom Host 3100 empfangene Signal steuern. Bei dem Signal kann es sich beispielsweise um Signale handeln, die auf einer Schnittstelle zwischen dem Host 3100 und dem SSD 3200 basieren. Zum Beispiel kann das Signal ein Signal sein, das durch mindestens eine der Schnittstellen wie einen universellen seriellen Bus (USB), eine Multimedia-Karte (MMC), eine eingebettete MMC (eMMC), eine Peripheral Component Interconnection (PCI), eine PCI Express (PCI-E), Advanced Technology Attachment (ATA), Serial-ATA, Parallel-ATA, ein Small Computer System Interface (SCSI), Enhanced Small Disk Interface (ESDI), Integrated Drive Electronics (IDE), FireWire, Universal Flash Storage (UFS), Wi-Fi, Bluetooth und NVMe definiert ist.
  • Die Hilfsstromversorgung 3230 ist über den Stromverbinder 3002 mit dem Host 3100 verbunden. Das Hilfsstromversorgung 3230 kann den Strom vom Host 3100 empfangen und die Energie/den Strom aufladen. Die Hilfsstromversorgung 3230 kann das SSD 3200 mit Strom versorgen, wenn die Stromversorgung durch den Host 3100 nicht reibungslos funktioniert. Die Hilfsstromversorgung 3230 kann beispielsweise in der SSD 3200 oder außerhalb der SSD 3200 angeordnet sein. Beispielsweise kann die Hilfsstromversorgung 3230 auf einer Hauptplatine angeordnet sein und die SSD 3200 mit Hilfsstrom versorgen.
  • Der Pufferspeicher 3240 arbeitet als Pufferspeicher des SSD 3200. Der Pufferspeicher 3240 kann beispielsweise vom Host 3100 empfangene Daten oder von der Vielzahl der Flash-Speicher 3221 bis 322n empfangene Daten vorübergehend speichern oder Metadaten (z. B. eine Abbildungstabelle) der Flash-Speicher 3221 bis 322n vorübergehend speichern. Der Pufferspeicher 3240 kann einen flüchtigen Speicher wie ein DRAM, ein SDRAM, ein DDR-SDRAM, ein LPDDR-SDRAM und ein GRAM oder einen nichtflüchtigen Speicher wie ein FRAM, ein ReRAM, ein STT-MRAM und ein PRAM sein.
  • 18 ist ein Blockdiagramm, das ein Beispiel für ein Benutzersystem zeigt, das eine Speicherungseinrichtung enthält, die auf der Grundlage einiger Ausführungsformen der offenbarten Technologie implementiert wurde.
  • Wie in 18 dargestellt, umfasst das Benutzersystem 4000 einen Anwendungsprozessor 4100, ein Speichermodul 4200, ein Netzwerkmodul 4300, ein Speichermodul 4400 und eine Benutzeroberfläche 4500.
  • Der Anwendungsprozessor 4100 kann Komponenten, ein Betriebssystem (OS), ein Benutzerprogramm oder andere Bestandteile des Benutzersystems 4000 steuern. Der Anwendungsprozessor 4100 kann zum Beispiel Controller, Schnittstellen, Grafik-Engines und andere Komponenten enthalten, die die Komponenten des Benutzersystems 4000 steuern. Der Anwendungsprozessor 4100 kann als System-on-chip (SoC) bereitgestellt werden.
  • Das Speichermodul 4200 kann als Hauptspeicher, Betriebsspeicher, Pufferspeicher oder Cache-Speicher des Benutzersystems 4000 arbeiten. Das Speichermodul 4200 kann einen flüchtigen Direktzugriffsspeicher wie ein DRAM, ein SDRAM, ein DDR SDRAM, ein DDR2 SDRAM, ein DDR3 SDRAM, ein LPDDR SDARM, ein LPDDR2 SDRAM und ein LPDDR3 SDRAM oder einen nichtflüchtigen Direktzugriffsspeicher wie ein PRAM, ein ReRAM, ein MRAM und ein FRAM enthalten. Beispielsweise können der Anwendungsprozessor 4100 und das Speichermodul 4200 in einem Package-on-Package (POP) untergebracht sein und als ein einziges Halbleiterpaket geliefert werden.
  • Das Netzwerkmodul 4300 kann mit externen Geräten kommunizieren. Beispielsweise kann das Netzwerkmodul 4300 eine drahtlose Kommunikation wie CDMA (Code Division Multiple Access), GSM (Global System for Mobile Communications), WCDMA (Wideband CDMA), CDMA-2000, TDMA (Time Division Multiple Access), Long Term Evolution, Wimax, WLAN, UWB, Bluetooth und Wi-Fi unterstützen. Das Netzwerkmodul 4300 kann beispielsweise in den Anwendungsprozessor 4100 integriert sein.
  • Das Speichermodul 4400 kann Daten speichern. Beispielsweise kann das Speichermodul 4400 Daten speichern, die vom Anwendungsprozessor 4100 empfangen wurden. Alternativ dazu kann das Speichermodul 4400 die im Speichermodul 4400 gespeicherten Daten an den Anwendungsprozessor 4100 übertragen. Das Speichermodul 4400 kann beispielsweise mit einem nichtflüchtigen Halbleiterspeicherelement wie einem Phasenänderungs-RAM (PRAM), einem magnetischen RAM (MRAM), einem resistiven RAM (RRAM), einem NAND-Flash, einem NOR-Flash und einem dreidimensionalen NAND-Flash realisiert werden. Das Speichermodul 4400 kann beispielsweise als herausnehmbares Speichermedium (Wechsellaufwerk), wie eine Speicherkarte, und als externes Laufwerk des Benutzersystems 4000 bereitgestellt werden.
  • Das Speichermodul 4400 kann beispielsweise eine Vielzahl nichtflüchtiger Speichereinrichtungen umfassen, und die Vielzahl nichtflüchtiger Speichereinrichtungen kann identisch mit der unter Bezugnahme auf 1 beschriebenen Speichereinrichtung 100 arbeiten. Das Speichermodul 4400 kann identisch mit der in 1 beschriebenen Speicherungseinrichtung 50 arbeiten.
  • Die Benutzerschnittstelle 4500 kann Schnittstellen zur Eingabe von Daten oder Befehlen in den Anwendungsprozessor 4100 oder zur Ausgabe von Daten an ein externes Gerät enthalten. Die Benutzerschnittstelle 4500 kann beispielsweise Benutzereingabeschnittstellen wie eine Tastatur, ein Tastenfeld, eine Taste, ein Touchpanel, einen Touchscreen, ein Touchpad, einen Touchball, eine Kamera, ein Mikrofon, einen Gyroskopsensor, einen Vibrationssensor und ein piezoelektrisches Element umfassen. Die Benutzerschnittstelle 4500 kann Benutzerausgabeschnittstellen wie eine Flüssigkristallanzeige (LCD), eine organische Leuchtdiodenanzeige (OLED), eine Aktivmatrix-OLED-Anzeige (AMOLED), eine LED, einen Lautsprecher und einen Monitor umfassen.
  • Dieses Patentdokument enthält zwar viele Einzelheiten, diese sollten jedoch nicht als Beschränkungen des Umfangs einer offenbarten Technologie oder dessen, was beansprucht werden kann, verstanden werden, sondern als Beschreibungen von Merkmalen, die für bestimmte Ausführungsformen einer bestimmten offenbarten Technologie spezifisch sein können. Bestimmte Merkmale, die in diesem Patentdokument im Zusammenhang mit einzelnen Ausführungsformen beschrieben werden, können auch in Kombination in einer einzigen Ausführungsform realisiert werden. Umgekehrt können verschiedene Merkmale, die im Zusammenhang mit einer einzigen Ausführungsform beschrieben werden, auch in mehreren Ausführungsformen separat oder in jeder geeigneten Unterkombination implementiert werden. Darüber hinaus können, obwohl Merkmale oben als in bestimmten Kombinationen wirkend beschrieben und sogar ursprünglich als solche beansprucht werden, ein oder mehrere Merkmale aus einer beanspruchten Kombination in einigen Fällen aus der Kombination herausgenommen werden, und die beanspruchte Kombination kann auf eine Unterkombination oder Variation einer Unterkombination gerichtet sein.
  • Auch wenn in den Zeichnungen Vorgänge in einer bestimmten Reihenfolge dargestellt sind, ist dies nicht so zu verstehen, dass diese Vorgänge in der gezeigten Reihenfolge oder in aufeinanderfolgender Reihenfolge ausgeführt werden müssen oder dass alle dargestellten Vorgänge ausgeführt werden müssen, um die gewünschten Ergebnisse zu erzielen. Darüber hinaus ist die Trennung der verschiedenen Systemkomponenten in den in diesem Patentdokument beschriebenen Ausführungsformen nicht so zu verstehen, dass eine solche Trennung in allen Ausführungsformen erforderlich ist.
  • Die oben offenbarten Ausführungsformen und Implementierungen sind nur Beispiele; verschiedene Verbesserungen und Variationen der offenbarten Ausführungsformen und Implementierungen sowie andere Ausführungsformen und Implementierungen können auf der Grundlage dessen, was in diesem Patentdokument beschrieben und dargestellt ist, vorgenommen werden.

Claims (20)

  1. Speichercontroller für eine Speicherungseinrichtung zum Speichern von Daten in Verbindung mit einem Host, der mit der Speicherungseinrichtung kommuniziert, umfassend: einen Empfehlungssignalmanager, der so konfiguriert ist, dass er eine Vielzahl von Empfehlungssignalen speichert, die empfehlen, einen Speicherbereich des Hosts zu aktivieren, um Abbildungsinformationen in dem Speicherbereich des Hosts zu speichern; und einen Host-Controller, der so konfiguriert ist, dass er mindestens eines der Vielzahl von Empfehlungssignalen an dem Host bereitstellt, in Abhängigkeit davon, ob eine Anzahl von Empfehlungssignalen, die für den Host bereitgestellt werden, kleiner als ein Schwellenwert ist.
  2. Speichercontroller nach Anspruch 1, wobei der Empfehlungssignalmanager umfasst: einen Empfehlungssignal-Warteschlangengenerator, der so konfiguriert ist, dass er eine Empfehlungssignal-Warteschlange zum Speichern der Vielzahl von Empfehlungssignalen erzeugt; und eine Empfehlungssignalanzahl-Speicherschaltung, die so konfiguriert ist, dass sie die Anzahl der dem Host bereitgestellten Empfehlungssignale speichert.
  3. Speichercontroller nach Anspruch 2, wobei die Empfehlungssignal-Warteschlange einen Kopfindex, um einen Ort in der Empfehlungssignal-Warteschlange anzuzeigen, von dem ein Empfehlungssignal ausgegeben werden soll, und einen Endindex, um einen Ort in der Empfehlungssignal-Warteschlange anzuzeigen, an dem ein Empfehlungssignal gespeichert werden soll, umfasst.
  4. Speichercontroller nach Anspruch 2, wobei der Empfehlungssignal-Warteschlangengenerator die Vielzahl von Empfehlungssignalen in der Empfehlungssignal-Warteschlange in der Reihenfolge einer Erzeugung der Vielzahl von Empfehlungssignalen speichert.
  5. Speichercontroller nach Anspruch 4, wobei der Host-Controller das mindestens eine Empfehlungssignal an den Host in der Reihenfolge der Warteschlangeneinträge der Vielzahl der in der Empfehlungssignal-Warteschlange gespeicherten Empfehlungssignale bereitstellt.
  6. Speichercontroller nach Anspruch 2, wobei der Empfehlungssignal-Warteschlangengenerator das mindestens eine Empfehlungssignal aus der Empfehlungssignal-Warteschlange entfernt, nachdem das mindestens eine Empfehlungssignal dem Host bereitgestellt wurde.
  7. Speichercontroller nach Anspruch 2, wobei die Empfehlungssignalanzahl-Speicherschaltung die Anzahl von Empfehlungssignalen, die dem Host bei der Übertragung eines beliebigen der Vielzahl der Empfehlungssignale an den Host bereitgestellt werden.
  8. Speichercontroller nach Anspruch 2, wobei die Empfehlungssignalanzahl-Speicherschaltung die Anzahl von Empfehlungssignalen, die dem Host bereitgestellt werden, bei Empfang einer Anforderung der im Speicherbereich zu speichernden Abbildungsinformationen vom Host als Reaktion auf das dem Host bereitgestellte Empfehlungssignal verringert.
  9. Speichercontroller nach Anspruch 2, wobei der Host-Controller die Vielzahl von Empfehlungssignalen in der Empfehlungssignale-Warteschlange beibehält, wenn die Anzahl der dem Host bereitgestellten Empfehlungssignale gleich oder größer als der Schwellenwert ist.
  10. Speichercontroller nach Anspruch 1, wobei der Host-Controller das mindestens eine Empfehlungssignal an den Host liefert, wenn die Anzahl der an den Host gelieferten Empfehlungssignale kleiner als der Schwellenwert ist.
  11. Speichercontroller nach Anspruch 10, wobei der Host-Controller das mindestens eine Empfehlungssignal an den Host liefert, bis die Anzahl der an den Host gelieferten Empfehlungssignale den Schwellenwert erreicht.
  12. Speichercontroller nach Anspruch 1, wobei der Host-Controller als Reaktion auf das dem Host bereitgestellte Empfehlungssignal eine Anforderung für die in dem Speicherbereich zu speichernden Abbildungsinformationen vom Host empfängt, und die Abbildungsinformationen als Reaktion auf die Anforderung an den Host liefert.
  13. Verfahren zum Betreiben eines Speichercontrollers, wobei das Verfahren umfasst: Erzeugen einer Empfehlungssignal-Warteschlange, die eine Vielzahl von Empfehlungssignalen speichert, die empfehlen, einen Speicherbereich eines Hosts zu aktivieren, um Abbildungsinformationen in dem Speicherbereich des Hosts zu speichern; Berechnen einer Anzahl von Empfehlungssignalen, die dem Host zur Verfügung gestellt werden; und Bereitstellen von mindestens einem der Vielzahl von Empfehlungssignalen an dem Host in Abhängigkeit davon, ob die Anzahl der für den Host bereitgestellten Empfehlungssignale kleiner als ein Schwellenwert ist.
  14. Verfahren nach Anspruch 13, ferner umfassend: Speichern der Vielzahl von Empfehlungssignalen in der Empfehlungssignal-Warteschlange in der Reihenfolge einer Erzeugung der Vielzahl von Empfehlungssignalen.
  15. Verfahren nach Anspruch 14, wobei das Bereitstellen des mindestens einen Empfehlungssignals das Bereitstellen des mindestens einen Empfehlungssignals an den Host in der Reihenfolge der Warteschlangeneinträge in der Empfehlungssignalwarteschlange umfasst.
  16. Verfahren nach Anspruch 13, ferner umfassend: Entfernen des mindestens einen Empfehlungssignals aus der Empfehlungssignale-Warteschlange nach der Bereitstellung des mindestens einen Empfehlungssignals.
  17. Verfahren nach Anspruch 13, wobei das Berechnen der Anzahl der dem Host bereitgestellten Empfehlungssignale das Bereitstellen eines beliebigen Empfehlungssignals aus der Vielzahl von Empfehlungssignalen an dem Host und das anschließende Erhöhen der Anzahl der dem Host bereitgestellten Empfehlungssignale umfasst.
  18. Verfahren nach Anspruch 13, ferner umfassend: Empfangen einer Anforderung der in dem Speicherbereich zu speichernden Abbildungsinformationen von dem Host als Reaktion auf das dem Host bereitgestellte Empfehlungssignal, wobei das Berechnen der Anzahl von Empfehlungssignalen, die dem Host zur Verfügung gestellt werden, ein Verringern der Anzahl von Empfehlungssignalen, die dem Host zur Verfügung gestellt werden, nachdem die Anforderung für die Abbildungsinformationen empfangen wurde, umfasst.
  19. Verfahren nach Anspruch 13, wobei das Bereitstellen des mindestens einen Empfehlungssignals das Bereitstellen des mindestens einen Empfehlungssignals an dem Host in einem Fall, in dem die Anzahl der für den Host bereitgestellten Empfehlungssignale geringer als der Schwellenwert ist, umfasst.
  20. Verfahren nach Anspruch 19, wobei das Bereitstellen des mindestens einen Empfehlungssignals das Bereitstellen des mindestens einen Empfehlungssignals an den Host, bis die Anzahl der an dem Host bereitgestellten Empfehlungssignale den Schwellenwert erreicht, umfasst.
DE102022209147.7A 2021-10-05 2022-09-02 Speichercontroller und betriebsverfahren dafür Pending DE102022209147A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2021-0131603 2021-10-05
KR1020210131603A KR20230048769A (ko) 2021-10-05 2021-10-05 메모리 컨트롤러 및 그 동작 방법

Publications (1)

Publication Number Publication Date
DE102022209147A1 true DE102022209147A1 (de) 2023-04-06

Family

ID=85570759

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022209147.7A Pending DE102022209147A1 (de) 2021-10-05 2022-09-02 Speichercontroller und betriebsverfahren dafür

Country Status (5)

Country Link
US (1) US20230103797A1 (de)
KR (1) KR20230048769A (de)
CN (1) CN115933962A (de)
DE (1) DE102022209147A1 (de)
TW (1) TW202316273A (de)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200122086A (ko) * 2019-04-17 2020-10-27 에스케이하이닉스 주식회사 메모리 시스템에서 맵 세그먼트를 전송하는 방법 및 장치
KR20210157537A (ko) * 2020-06-22 2021-12-29 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
CN113900582A (zh) * 2020-06-22 2022-01-07 慧荣科技股份有限公司 数据处理方法及对应的数据储存装置
KR20220027488A (ko) * 2020-08-27 2022-03-08 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법

Also Published As

Publication number Publication date
US20230103797A1 (en) 2023-04-06
CN115933962A (zh) 2023-04-07
KR20230048769A (ko) 2023-04-12
TW202316273A (zh) 2023-04-16

Similar Documents

Publication Publication Date Title
US10838658B2 (en) Memory controller and method of operating the same
KR102535627B1 (ko) 메모리 컨트롤러 및 그 동작 방법
KR20160078611A (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
KR20200114149A (ko) 메모리 컨트롤러 및 그 동작 방법
KR102535104B1 (ko) 저장 장치 및 그 동작 방법
CN112201292A (zh) 控制器及其操作方法
US11543986B2 (en) Electronic system including host, memory controller and memory device and method of operating the same
DE102020200625A1 (de) Speichergerät und betriebsverfahren des speichergeräts
KR20210055514A (ko) 스토리지 장치 및 그 동작 방법
KR20200114009A (ko) 메모리 컨트롤러 및 그 동작 방법
DE102022208699A1 (de) Hostvorrichtung, speichersteuerung und computersystem mit derselben
KR102493323B1 (ko) 저장 장치 및 그 동작 방법
CN111435333B (zh) 存储装置及其操作方法
KR20210099930A (ko) 메모리 컨트롤러 및 그 동작 방법
CN111580744A (zh) 存储器控制器及其操作方法
KR20220048871A (ko) 스토리지 장치 및 그 동작 방법
DE102022213293A1 (de) Speichersteuerung und verfahren zum betreiben derselben
DE102022209281A1 (de) Speichersteuerung, Speichergerät und Hostvorrichtung
CN111338995A (zh) 数据存储装置及操作数据存储装置的方法
US11625178B2 (en) Storage device and method of operating the same
DE102021208963A1 (de) Speichervorrichtung und verfahren zum betreiben derselben
DE102022209147A1 (de) Speichercontroller und betriebsverfahren dafür
KR20180121733A (ko) 데이터 저장 장치 및 그것의 동작 방법
US10324835B2 (en) Data storage device and operating method thereof
KR20210006178A (ko) 메모리 컨트롤러 및 그 동작 방법