DE102022209281A1 - Speichersteuerung, Speichergerät und Hostvorrichtung - Google Patents

Speichersteuerung, Speichergerät und Hostvorrichtung Download PDF

Info

Publication number
DE102022209281A1
DE102022209281A1 DE102022209281.3A DE102022209281A DE102022209281A1 DE 102022209281 A1 DE102022209281 A1 DE 102022209281A1 DE 102022209281 A DE102022209281 A DE 102022209281A DE 102022209281 A1 DE102022209281 A1 DE 102022209281A1
Authority
DE
Germany
Prior art keywords
read
storage device
memory
host
buffer
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
DE102022209281.3A
Other languages
English (en)
Inventor
Byung Jun 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
Priority claimed from KR1020220035381A external-priority patent/KR20230041570A/ko
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of DE102022209281A1 publication Critical patent/DE102022209281A1/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Gemäß einer Ausführungsform der vorliegenden Technologie kann ein Speichergerät eine Hauptspeichervorrichtung, eine Pufferspeichervorrichtung, die eine Vielzahl von Bereichen umfasst und als Puffer der Hauptspeichervorrichtung arbeitet, und eine Speichersteuerung umfassen, die eingerichtet ist, um eine oder mehrere von jeweiligen Verwendungen der Vielzahl von Bereichen als Antwort auf einen Vorbereitungsbefehl zu ändern, der angibt, dass ein oder mehrere Lesebefehle zum Anfordern von in der Hauptspeichervorrichtung gespeicherten Daten bereitgestellt werden sollen, die von einem externen Host empfangen werden.

Description

  • HINTERGRUND
  • 1. Gebiet der Erfindung
  • Die vorliegende Offenbarung betrifft eine elektronische Vorrichtung, insbesondere eine Speichersteuerung, ein Speichergerät und eine Hostvorrichtung.
  • 2. Beschreibung des Standes der Technik
  • Ein Speichergerät ist eine Vorrichtung, die Daten unter der Steuerung einer Hostvorrichtung wie einem Computer oder einem Smartphone speichert. Ein Speichergerät kann eine Daten speichernde Speichervorrichtung und eine die Speichervorrichtung steuernde Speichersteuerung umfassen. Die Speichervorrichtung kann in eine flüchtige und eine nichtflüchtige Speichervorrichtung unterteilt werden.
  • Die flüchtige Speichervorrichtung kann eine Vorrichtung sein, die Daten nur dann speichert, wenn Strom zugeführt wird, und die gespeicherten Daten verliert, wenn die Stromversorgung unterbrochen wird. Die flüchtige Speichervorrichtung kann einen statischen Direktzugriffsspeicher (Static Random Access Memory - SRAM), einen dynamischen Direktzugriffsspeicher (Dynamic Random Access Memory - DRAM) und dergleichen umfassen.
  • Bei der nichtflüchtigen Speichervorrichtung handelt es sich um eine Vorrichtung, die auch bei einer Stromunterbrechung keine Daten verliert. Die nichtflüchtige Speichervorrichtung umfasst einen Nur-LeseSpeicher (Read Only Memory - ROM), ein programmierbares ROM (Programmable ROM - PROM), ein elektrisch programmierbares ROM (Electrically Programmable ROM - EPROM), ein elektrisch löschbares und programmierbares ROM (Electrically ERasable and Programmable ROM - EEPROM), einen Flash-Speicher und dergleichen.
  • Mit der Entwicklung elektronischer Vorrichtungen, die eine umfangreiche Datennutzung erfordern, muss auch ein dafür verwendetes Speichergerät ein hohes Leistungsniveau aufweisen. Insbesondere die Leistung für einen Lesevorgang kann wichtiger sein, weil die Leistung für den Lesevorgang die einem Benutzer gezeigte Leistung ist.
  • ZUSAMMENFASSUNG
  • Eine Ausführungsform der vorliegenden Offenbarung stellt eine Speichersteuerung, ein Speichergerät und eine Hostvorrichtung bereit, die in der Lage sind, einen verbesserten Lesevorgang durchzuführen.
  • Gemäß einer Ausführungsform der vorliegenden Offenbarung kann eine Speichervorrichtung umfassen eine Hauptspeichervorrichtung, eine Pufferspeichervorrichtung, die eine Vielzahl von Bereichen umfasst und als ein Puffer der Hauptspeichervorrichtung arbeitet, und eine Speichersteuerung, die eingerichtet ist, um eine oder mehrere der jeweiligen Verwendungen der Vielzahl von Bereichen als Antwort auf einen Vorbereitungsbefehl zu ändern, der angibt, dass ein oder mehrere Lesebefehle zum Anfordern von in der Hauptspeichervorrichtung gespeicherten Daten bereitgestellt werden sollen, die von einem externen Host empfangen werden.
  • Gemäß einer Ausführungsform der vorliegenden Offenbarung kann eine Speichersteuerung, die eine Hauptspeichervorrichtung und eine Pufferspeichervorrichtung steuert, die als ein Puffer der Hauptspeichervorrichtung arbeitet und eine Vielzahl von Bereichen umfasst, eine Hostschnittstelle, die eingerichtet ist, um einen Vorbereitungsbefehl zu empfangen, der angibt, dass ein oder mehrere Lesebefehle zum Anfordern von in der Hauptspeichervorrichtung gespeicherten Daten von einem externen Host bereitgestellt werden sollen, und eine Pufferspeichervorrichtungs-Schnittstelle umfassen, die eingerichtet ist, um eine oder mehrere jeweilige Verwendungen der Vielzahl von Bereichen als Antwort auf den Vorbereitungsbefehl zu ändern.
  • Gemäß einer Ausführungsform der vorliegenden Offenbarung kann eine Hostvorrichtung einen Host-Speicher, der eingerichtet ist, um darin Befehle zu speichern, die gemäß einer Anforderung eines Benutzers erzeugt werden, und eine Host-Steuerung umfassen, die eingerichtet ist, um einem Speichergerät einen Vorbereitungsbefehl, der angibt, dass ein oder mehrere Lesebefehle geplant sind, um dem Speichergerät bereitgestellt zu werden, gemäß den gespeicherten Befehlen in dem Host-Speicher bereitzustellen, die den einen oder die mehreren Lesebefehle umfassen, wobei der Vorbereitungsbefehl aufweist ein Basis-Kopfsegment bzw. Basis-Header-Segment, umfassend Informationen, die angeben, dass der Vorbereitungsbefehl eine Abfrageanforderung zum Einstellen eines Betriebsmodus des Speichergeräts ist, und Informationen, die einen Typ einer Abfragefunktion angeben, die mit dem Betriebsmodus verbunden ist, und ein transaktionsspezifisches Feld, das Informationen über ein Flag umfasst, das angibt, ob ein intensiver Lesemodus aktiviert ist.
  • Gemäß einer Ausführungsform der vorliegenden Offenbarung kann ein Betriebsverfahren einer Steuerung umfassen ein Einstellen bzw. Anpassen einer Größe eines Abschnitts innerhalb eines Puffers als Antwort auf eine Vorbereitungsanforderung und ein Steuern einer Speichervorrichtung zum Durchführen eines Lesevorgangs als Antwort auf eine auf die Vorbereitungsanforderung folgende Leseanforderung, während Daten in Bezug auf den Lesevorgang in dem größenangepassten Abschnitt gepuffert werden.
  • Gemäß einer Ausführungsform der vorliegenden Offenbarung kann ein Betriebsverfahren eines Hosts umfassen ein Bereitstellen einer Vorbereitungsanforderung an ein Speichersystem, damit das System eine Größe eines Abschnitts innerhalb eines in dem System angeordneten Puffers anpasst, und ein Bereitstellen einer Leseanforderung an das System nach dem Bereitstellen der Vorbereitungsanforderung, damit das System einen Lesevorgang durchführt, während Daten in Bezug auf den Lesevorgang in den größenangepassten Abschnitt gepuffert werden.
  • Die vorliegende Technologie stellt eine Speichersteuerung, ein Speichergerät und eine Hostvorrichtung bereit, die in der Lage sind, einen verbesserten Lesevorgang durchzuführen.
  • Figurenliste
    • 1 zeigt ein Diagramm, das eine Hostvorrichtung und ein Speichergerät gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 2 zeigt ein Diagramm, das eine Speichervorrichtung von 1 gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 3 zeigt ein Diagramm, das einen Aufbau eines Speicherblocks unter Speicherblöcken von 2 gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 4 zeigt ein Diagramm, das eine Steuerung für eine Pufferspeichervorrichtung gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 5 zeigt ein Diagramm, das einen Aufbau einer Abfrageanforderungs-Protokolleinheit (Protokollinformationseinheit (PIU)) gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 6 zeigt ein Diagramm, das einen Typ einer Abfragefunktion und einen Feldwert gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 7 zeigt ein Diagramm, das einen Aufbau eines transaktionsspezifischen Feldes gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt, wenn die Abfragefunktion der Abfrageanforderung eine Standard-Schreibanforderung ist.
    • 8 zeigt ein Diagramm, das einen Typ eines Vorgangs- bzw. Operationscodes (Opcode) der Abfragefunktion gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 9 zeigt ein Diagramm, das einen Aufbau eines transaktionsspezifischen Feldes einer Abfrageanforderung zum Setzen von Flags bzw. Kennzeichen gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 10 zeigt ein Diagramm, das einen Aufbau eines transaktionsspezifischen Feldes einer Abfrageanforderung zum Löschen von Flags bzw. Kennzeichen gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 11 zeigt ein Sequenzdiagramm, das einen Betrieb eines Speichergeräts gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 12 zeigt ein Flussdiagramm, das eine Bereitstellung der Abfrageanforderung zum Setzen von Flags einer Hostvorrichtung gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 13 zeigt ein Flussdiagramm, das einen Bestimmungsprozess einer Hostvorrichtung gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 14 zeigt ein Flussdiagramm, das eine Bereitstellung der Abfrageanforderung zum Löschen von Flags einer Hostvorrichtung gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 15 zeigt ein Flussdiagramm, das einen Betrieb eines Speichergeräts gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 16 zeigt ein Diagramm, das eine Zuweisung eines Bereichs in einer Pufferspeichervorrichtung als Antwort auf einen Empfang der Abfrageanforderung von einem Speichergerät gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 17 zeigt ein Diagramm, das eine Speichersteuerung von 1 gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 18 zeigt ein Blockdiagramm, das ein Speicherkartensystem darstellt, auf das ein Speichergerät gemäß einer Ausführungsform der vorliegenden Offenbarung angewendet wird.
    • 19 zeigt ein Blockdiagramm, das ein Solid-State-Laufwerk (Solid State Drive - SSD) darstellt, auf das ein Speichergerät gemäß einer Ausführungsform der vorliegenden Offenbarung angewendet wird.
    • 20 zeigt ein Blockdiagramm, das ein Benutzersystem darstellt, in dem ein Speichergerät gemäß einer Ausführungsform der vorliegenden Offenbarung verwendet wird.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Spezifische strukturelle oder funktionale Beschreibungen von Ausführungsformen gemäß dem Konzept, die in der vorliegenden Beschreibung offenbart sind, werden nur dargestellt, um die Ausführungsformen gemäß dem Konzept der vorliegenden Offenbarung zu beschreiben. Die Ausführungsformen gemäß dem Konzept der vorliegenden Offenbarung können in verschiedenen Formen ausgeführt werden und sollten nicht derart ausgelegt werden, dass sie auf die in der vorliegenden Beschreibung beschriebenen Ausführungsformen beschränkt sind.
  • 1 zeigt ein Diagramm, das eine Hostvorrichtung und ein Speichergerät gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf 1 kann das Speichergerät 50 eine Speichervorrichtung 100, eine Speichersteuerung 200 und eine Pufferspeichervorrichtung 300 umfassen. Bei dem Speichergerät 50 kann es sich um eine Vorrichtung handeln, die Daten unter einer Steuerung eines Hosts 400 speichert, wie z.B. eines Mobiltelefons, eines Smartphones, eines MP3-Players, eines Laptops, eines Desktop-Computers, eines Game-Players, eines Fernsehers, eines Tablet-PCs oder eines Infotainment-Systems im Fahrzeug. Alternativ kann es sich bei dem Speichergerät 50 auch um eine Vorrichtung handeln, die Daten unter einer Steuerung des Hosts 400 speichert, der Daten mit hoher Kapazität an einem Ort speichert, z.B. auf einem Server oder in einem Rechenzentrum.
  • Das Speichergerät 50 kann gemäß einer Host-Schnittstelle, bei der es sich um ein Kommunikationsverfahren mit dem Host 400 handelt, als eine von verschiedenen Arten von Speichergeräten hergestellt werden. Zum Beispiel kann das Speichergerät 50 als eine von verschiedenen Arten von Speichergeräten ausgeführt sein, wie beispielsweise ein SSD, eine Multimediakarte in Form einer MMC, einer eMMC, einer RS-MMC und einer micro-MMC, eine sichere digitale Karte (Secure Digital Card) in Form einer SD, einer mini-SD und einer micro-SD, ein USB-(Universal Serial Bus) Speichergerät, eine UFS- (Universal Flash Storage) Vorrichtung, ein PCMCIA- (Personal Computer Memory Card International Association) Speichergerät vom Kartentyp, ein PCI- (Peripheral Component Interconnection) Speichergerät vom Kartentyp, ein PCI-Express- (PCI-e oder PCIe)Speichergerät vom Kartentyp, eine CF- (Compact-Flash) Karte, eine Smart-Media-Karte und ein Memory Stick.
  • Das Speichergerät 50 kann als eine beliebige von verschiedenen Arten von Gehäusen bzw. Verpackungen hergestellt werden. So kann das Speichergerät 50 beispielsweise als eine beliebige von verschiedenen Gehäuse- bzw. Verpackungstypen hergestellt werden, wie beispielsweise als Package-on-Package (POP), als Systemin-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 Speichervorrichtung 100 kann Daten speichern. Die Speichervorrichtung 100 arbeitet unter einer Steuerung der Speichersteuerung 200. Zu diesem Zeitpunkt kann die Speichervorrichtung 100 als eine Hauptspeichereinrichtung bezeichnet werden, um die Speichervorrichtung 100 von der Pufferspeichereinrichtung 300 zu unterscheiden. Die Speichervorrichtung 100 kann ein (nicht gezeigtes) Speicherzellenfeld umfassen, das eine Vielzahl von Speicherzellen umfasst, die Daten speichern.
  • Jede der Speicherzellen kann als Single-Level-Zelle (SLC) ausgeführt sein, 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.
  • Das Speicherzellenfeld (nicht gezeigt) kann eine Vielzahl von Speicherblöcken umfassen. Jeder Speicherblock kann eine Vielzahl von Speicherzellen umfassen. Jeder Speicherblock kann eine Vielzahl von Seiten umfassen. In einer Ausführungsform kann die Seite eine Einheit zum Speichern von Daten in der Speichervorrichtung 100 oder zum Lesen von in der Speichervorrichtung 100 gespeicherten Daten sein. Der Speicherblock kann eine Einheit zum Löschen von Daten sein.
  • In einer Ausführungsform kann die Speichervorrichtung 100 ein synchroner dynamischer Direktzugriffsspeicher mit doppelter Datenrate (DDR-SDRAM - Double Data Rate Synchronous Dynamic Random Access Memory), ein SDRAM mit doppelter Datenrate4 mit niedriger Leistung (LPDDR4 - Low Power Double Data Rate4), ein Grafik-SDRAM mit doppelter Datenrate (GDDR - Graphics Double Data Rate), ein DDR mit niedriger Leistung (LPDDR - Low Power DDR)), ein dynamischer Rambus-Direktzugriffsspeicher (RDRAM - Rambus Dynamic Random Access Memory), ein NAND-Flash-Speicher, ein vertikaler NAND-Flash-Speicher, ein NOR-Flash-Speicher, ein resistiver Direktzugriffsspeicher (RRAM - Resistive RAM), ein Phasenwechselspeicher (PRAM - Phase-Change Memory), ein magnetoresistiver Direktzugriffsspeicher (MRAM - Magnetoresistive RAM), ein ferroelektrischer Direktzugriffsspeicher (FRAM - Ferroelectric RAM), ein Spin-Transfer-Torque-Direktzugriffsspeicher (STT-RAM) oder dergleichen sein. In der vorliegenden Beschreibung ist die Speichervorrichtung 100 der Einfachheit halber ein NAND-Flash-Speicher.
  • Die Speichervorrichtung 100 ist eingerichtet, um einen Befehl und eine Adresse von der Speichersteuerung 200 zu empfangen und auf einen durch die Adresse ausgewählten Bereich in dem Speicherzellenfeld zuzugreifen. Die Speichervorrichtung 100 kann einen durch den Befehl angewiesenen Vorgang in dem durch die Adresse ausgewählten Bereich durchführen. Zum Beispiel kann die Speichervorrichtung 100 einen Schreibvorgang (Programmiervorgang), einen Lesevorgang und einen Löschvorgang durchführen. Während des Programmiervorgangs kann die Speichervorrichtung 100 Daten in dem durch die Adresse ausgewählten Bereich programmieren. Während des Lesevorgangs kann die Speichervorrichtung 100 Daten aus dem durch die Adresse ausgewählten Bereich lesen. Während des Löschvorgangs kann die Speichervorrichtung 100 die in dem durch die Adresse ausgewählten Bereich gespeicherten Daten löschen.
  • Die Speichersteuerung 200 kann einen Gesamtbetrieb des Speichergeräts 50 steuern.
  • Wenn das Speichergerät 50 mit Strom versorgt wird, kann die Speichersteuerung 200 Firmware (FW) ausführen. Handelt es sich bei der Speichervorrichtung 100 um eine Flash-Speichervorrichtung, kann die Speichersteuerung 200 Firmware wie eine Flash-Übersetzungsschicht (Flash Translation Layer - FTL) zum Steuern der Kommunikation zwischen der Hostvorrichtung 400 und der Speichervorrichtung 100 ausführen.
  • In einer Ausführungsform kann die Speichersteuerung 200 Daten und eine logische Blockadresse (LBA) von der Hostvorrichtung 400 empfangen und die LBA in eine physikalische Blockadresse (PBA) umwandeln, die eine Adresse von Speicherzellen angibt, in denen die in der Speichervorrichtung 100 umfassten Daten gespeichert werden sollen.
  • Die Speichersteuerung 200 kann die Speichervorrichtung 100 steuern, um den Programmiervorgang, den Lesevorgang oder den Löschvorgang gemäß einer Anforderung der Hostvorrichtung 400 durchzuführen. Während des Programmiervorgangs kann die Speichersteuerung 200 der Speichervorrichtung 100 einen Programmbefehl, die PBA und Daten bereitstellen. Während des Lesevorgangs kann die Speichersteuerung 200 der Speichervorrichtung 100 einen Lesebefehl und die PBA bereitstellen. Während des Löschvorgangs kann die Speichersteuerung 200 der Speichervorrichtung 100 einen Löschbefehl und die PBA bereitstellen.
  • In einer Ausführungsform kann die Speichersteuerung 200 einen Befehl, eine Adresse und Daten unabhängig von der Anforderung der Hostvorrichtung 400 erzeugen und den Befehl, die Adresse und die Daten an die Speichervorrichtung 100 übertragen. Beispielsweise kann die Speichersteuerung 200 der Speichervorrichtung 100 den Befehl, die Adresse und die Daten zum Durchführen des Programmiervorgangs, des Lesevorgangs und des Löschvorgangs bereitstellen, die mit dem Durchführen von Abnutzungsausgleich (Wear Leveling), Read Reclaim, Speicherbereinigung (Garbage Collection) usw. einhergehen.
  • In einer Ausführungsform kann die Speichersteuerung 200 zumindest zwei oder mehr Speichervorrichtungen 100 steuern. In diesem Fall kann die Speichersteuerung 200 die Speichervorrichtungen 100 gemäß einem Interleaving- bzw. Verschachtelungserfahren steuern, um die Betriebsleistung zu verbessern. Bei dem Verschachtelungsverfahren kann es sich um ein Verfahren zum Steuern von Vorgängen bzw. Operationen für zumindest zwei Speichervorrichtungen 100 handeln, die sich gegenseitig überlappen.
  • Die Pufferspeichereinrichtung 300 kann Daten, die zwischen der Hostvorrichtung 400 und der Speichervorrichtung 100 übertragen werden, vorübergehend speichern. Das heißt, die Pufferspeichervorrichtung 300 kann als ein Puffer der Speichervorrichtung 100 arbeiten. Die Pufferspeichervorrichtung 300 kann eine Vielzahl von Bereichen umfassen, in denen die Daten im Wesentlichen gespeichert werden. Beispielsweise kann die Pufferspeichervorrichtung 300 von der Hostvorrichtung 400 an die Speichervorrichtung 100 übertragene Daten für einen Schreibvorgang zum Speichern der Daten in der Speichervorrichtung 100 vorübergehend speichern. Alternativ kann die Pufferspeichereinrichtung 300 von der Speichervorrichtung 100 an die Hostvorrichtung 400 übertragene Daten für einen Lesevorgang zum Lesen von Daten aus der Speichervorrichtung 100 vorübergehend speichern. Darüber hinaus kann die Speichervorrichtung 300 Abbildungsdaten vorübergehend speichern oder Daten für einen Hintergrundvorgang vorübergehend speichern. Die Pufferspeichervorrichtung 300 ist nicht darauf beschränkt und kann als ein Puffer verwendet werden, der Daten vorübergehend speichert, wenn verschiedene Vorgänge durchgeführt werden.
  • Die Speichersteuerung 200 kann die Vielzahl von Bereichen, die in der Pufferspeichervorrichtung 300 umfasst sind, als Bereiche für einen bestimmten Zweck zuweisen. Zum Beispiel kann die Speichersteuerung 200 die Vielzahl von Bereichen in der Pufferspeichervorrichtung 300 als ein Puffer für verschiedene Zwecke zuweisen, einschließlich eines Puffers für den Schreibvorgang, des Puffers für den Lesevorgang, des Puffers zum Speichern der Abbildungsdaten bzw. des Puffers für den Hintergrundvorgang. Darüber hinaus kann die Speichersteuerung den Zweck des Bereichs in der Speichervorrichtung 300, der als Puffer für den spezifischen Vorgang zugewiesen ist, in einen Bereich ändern, der als Puffer für einen anderen Vorgang verwendet werden kann.
  • Der Host 400 kann mit dem Speichergerät 50 unter Verwendung zumindest einer von verschiedenen Kommunikationsstandards oder Schnittstellen kommunizieren bzw. in Verbindung treten, wie z.B. Universal Serial Bus (USB), Serial AT Attachment (SATA), Serial Attached SCSI (SAS), High Speed Interchip (HSIC), Small Computer System Interface (SCSI), Peripheral Component Interconnection (PCI), PCI Express (PCIe), Nonvolatile Memory Express (NVMe), Universal Flash Storage (UFS), Secure Digital (SD), Multi-Media Card (MMC), Embedded MMC (eMMC), Dual In-Line Memory Module (DIMM), Registered DIMM (RDIMM) und Load Reduced DIMM (LRDIMM).
  • Der Host 400 kann einen Host-Speicher 410 und eine Host-Steuerung 420 umfassen. Informationen über einen durchzuführenden Prozess können in den Host 400 eingegeben werden, und die Informationen können von einem Benutzer eingegeben werden. Durchzuführende Befehle bzw. Anweisungen für einen Prozessvorgang können durch die Informationen über den Prozess erzeugt und in dem Host-Speicher 410 gespeichert werden. Das heißt, die Befehle können durch eine Anforderung des Benutzers erzeugt werden. Die Host-Steuerung 420 kann auf der Grundlage der im Host-Speicher 410 gespeicherten Informationen einen Befehl zum Anfordern des Durchführens eines bestimmten Vorgangs an das Speichergerät 50 bereitstellen. Zum Beispiel kann die Host-Steuerung 420 den Befehl zum Anfordern des Durchführens eines Eingabevorgangs an das Speichergerät bereitstellen. In einem anderen Beispiel kann die Host-Steuerung 420 in Vorbereitung auf den Eingabevorgang einen Befehl zum Anfordern des Änderns einer Einstellung des Speichergeräts 50 an das Speichergerät 50 senden, bevor der Vorgang durchgeführt wird. In einer Ausführungsform kann die Host-Steuerung 420 auf der Grundlage der in dem Host-Speicher 410 gespeicherten Befehle, wenn die Host-Steuerung 420 bestimmt, dass es sich bei einem in der Zukunft durchzuführenden Prozess um einen Prozess handelt, der eine relativ große Menge an Lesebefehlen anfordert, in Vorbereitung darauf das Speichergerät 50 auffordern, eine Einstellung zu ändern, die in der Lage ist, die relativ große Menge an Lesebefehlen reibungsloser durchzuführen, bevor ein Lesebefehl bereitgestellt wird.
  • 2 zeigt ein Diagramm, das die Speichervorrichtung von 1 gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf 2 kann die Speichervorrichtung 100 ein Speicherzellenfeld 110, einen Spannungsgenerator 120, einen Adressendecoder 130, eine Eingangs-/Ausgangsschaltung 140 und eine Steuerlogik 150 umfassen.
  • Das Speicherzellenfeld 110 umfasst 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 kann ü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 umfassen.
  • Jeder der Vielzahl von Speicherblöcken BLK1 bis BLKi umfasst eine Vielzahl von Speicherzellen. In einer Ausführungsform kann die Vielzahl von Speicherzellen nichtflüchtige Speicherzellen sein. Speicherzellen, die unter der Vielzahl von Speicherzellen mit der gleichen Wortleitung 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 Speichervorrichtung 100 kann ausgeführt sein als Single-Level-Zelle (SLC), um ein Datenbit zu speichern, 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.
  • In einer Ausführungsform können der Spannungsgenerator 120, der Adressendecoder 130 und die Eingangs-/Ausgangsschaltung 140 zusammen als Peripherieschaltung bezeichnet werden. Die Peripherieschaltung kann das Speicherzellenfeld 110 unter einer Steuerung der Steuerlogik 150 ansteuern. Die Peripherieschaltung kann das Speicherzellenfeld 110 ansteuern, um den Programmiervorgang, den Lesevorgang und den Löschvorgang durchzuführen.
  • Der Spannungsgenerator 120 ist eingerichtet, um eine Vielzahl von Versorgungsspannungen unter Verwendung einer der Speichervorrichtung 100 zugeführten externen Versorgungsspannung zu erzeugen. Der Spannungsgenerator 120 arbeitet als Antwort auf die Steuerung der Steuerlogik 150 .
  • In einer Ausführungsform kann der Spannungsgenerator 120 durch Regulieren der externen Versorgungsspannung eine interne Versorgungsspannung erzeugen. Die vom Spannungsgenerator 120 erzeugte interne Versorgungsspannung wird als eine Betriebsspannung der Speichervorrichtung 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 eingerichtet sein, um verschiedene Spannungen zu erzeugen, die in der Speichervorrichtung 100 benötigt werden. Zum Beispiel kann der Spannungsgenerator 120 eine Vielzahl von Löschspannungen, eine Vielzahl von Programmierspannungen, eine Vielzahl von Durchgangsspannungen, eine Vielzahl von ausgewählten Lesespannungen und eine Vielzahl von nicht ausgewählten Lesespannungen erzeugen.
  • Der Spannungsgenerator 120 kann eine Vielzahl von Pumpkondensatoren umfassen, 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 als Antwort auf die Steuerung der Steuerlogik 150 erzeugen.
  • Die erzeugte Vielzahl von Betriebsspannungen kann dem Speicherzellenfeld 110 durch den Adressendecoder 130 zugeführt werden.
  • Der Adressendecoder 130 ist über die Zeilenleitungen RL mit dem Speicherzellenfeld 110 verbunden. Der Adressendecoder 130 ist eingerichtet, um als Antwort auf die Steuerung durch die Steuerlogik 150 zu arbeiten. Der Adressendecoder 130 kann eine Adresse ADDR von der Steuerlogik 150 empfangen. Der Adressendecoder 130 kann eine Blockadresse unter den empfangenen Adressen ADDR dekodieren. Der Adressendecoder 130 wählt zumindest einen Speicherblock unter den Speicherblöcken BLK1 bis BLKi gemäß der dekodierten Blockadresse aus. Der Adressendecoder 130 kann eine Zeilenadresse unter den empfangenen Adressen ADDR dekodieren. Der Adressendecoder 130 kann gemäß der dekodierten Zeilenadresse zumindest eine Wortleitung unter den Wortleitungen eines ausgewählten Speicherblocks 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 gemäß der dekodierten Spaltenadresse miteinander verbinden.
  • Der Adressendecoder 130 kann zum Beispiel Komponenten wie einen Zeilendecoder, einen Spaltendecoder und einen Adresspuffer umfassen.
  • Die Eingangs-/Ausgangsschaltung 140 kann eine Vielzahl von Seitenpuffern umfassen. Die Vielzahl von Seitenpuffern kann über die Bitleitungen mit dem Speicherzellenfeld 110 verbunden sein. Während des Programmiervorgangs können Daten in ausgewählten Speicherzellen gemäß 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 abgetastet werden, und die abgetasteten 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 als Antwort auf den von einer externen Vorrichtung übertragenen Befehl CMD arbeiten. Die Steuerlogik 150 kann als Antwort auf den Befehl CMD und die Adresse ADDR Steuersignale zum Steuern der Peripherieschaltungen erzeugen.
  • 3 zeigt ein Diagramm, das einen Aufbau eines Speicherblocks unter den Speicherblöcken von 2 gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Der Speicherblock BLKi ist ein Speicherblock BLKi unter den Speicherblöcken BLK1 bis BLKi von 2.
  • Unter Bezugnahme auf 3 kann eine Vielzahl von parallel zueinander angeordneten 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 ST umfassen, 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 derart eingerichtet sein können, dass sie identisch sind, wird ein String ST, der mit der ersten Bitleitung BL1 verbunden ist, als Beispiel besonders beschrieben.
  • Der String ST kann einen Source-Auswahltransistor SST, eine Vielzahl von Speicherzellen MC1 bis MC16 und einen Drain-Auswahltransistor DST umfassen, der zwischen der Source-Leitung SL und der ersten Bitleitung BL1 in Reihe geschaltet ist. Ein String ST kann zumindest einen oder mehrere des Source-Auswahltransistors SST und des Drain-Auswahltransistors DST umfassen und kann eine Anzahl von Speicherzellen MC1 bis MC16 umfassen, die größer ist als die in der Figur gezeigte Anzahl.
  • Eine Source des Source-Auswahltransistors SST kann mit der Source-Leitung SL und ein Drain des Drain-Auswahltransistors DST kann mit der ersten Bitleitung BL1 verbunden sein. Die Speicherzellen MC1 bis MC16 können in Reihe zwischen dem Source-Auswahltransistor SST und dem Drain-Auswahltransistor DST geschaltet werden. Gates der Source-Auswahltransistoren SST, die in den verschiedenen Strings ST umfasst sind, können mit der Source-Auswahlleitung SSL verbunden werden, Gates der Drain-Auswahltransistoren DST können mit der Drain-Auswahlleitung DSL verbunden werden, und Gates der Speicherzellen MC1 bis MC16 können mit der Vielzahl von Wortleitungen WL1 bis WL16 verbunden werden. Eine Gruppe von Speicherzellen, die an dieselbe Wortleitung angeschlossen sind, kann unter den Speicherzellen, die in verschiedenen Strings ST umfasst sind, als physische Seite PG bezeichnet werden. Daher kann der Speicherblock BLKi eine Anzahl von physischen Seiten PG umfassen, die der Anzahl der Wortleitungen WL1 bis WL16 entspricht.
  • Eine Speicherzelle kann ein Bit an Daten speichern. Dies wird gemeinhin als Single Level Cell (SLC) bezeichnet. In diesem Fall kann eine physische Seite PG Daten einer logischen Seite (Logical Page Data - LPG) Daten speichern. Die Daten einer logischen Seite (LPG) können eine Anzahl von Datenbits umfassen, die der Anzahl der Zellen entspricht, die in einer physischen Seite PG umfasst sind.
  • Die eine Speicherzelle kann zwei oder mehr Datenbits speichern. In diesem Fall kann eine physische Seite PG Daten mit zwei oder mehr logische Seiten (LPG) speichern.
  • Der Lesevorgang kann in einer Einheit einer physischen Seite PG durchgeführt werden.
  • 4 zeigt ein Diagramm, das eine Steuerung einer Speichervorrichtung gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf 4 kann das Speichergerät 50 die Speichervorrichtung 100 und die Pufferspeichereinrichtung 300 umfassen und kann die Speichersteuerung 200 umfassen, die die Speichervorrichtung 100 und die Pufferspeichervorrichtung 300 steuert. Die Pufferspeichervorrichtung 300 kann einen Lesepufferbereich 310, einen Schreibpufferbereich 320 und einen Abbildungspufferbereich 330 umfassen, ist aber nicht darauf beschränkt und kann auch andere Pufferbereiche für verschiedene Vorgänge bzw. Operationen umfassen, wie z.B. einen Pufferbereich für Hintergrundvorgänge (nicht gezeigt). Der Lesepufferbereich 310 kann aus der Speichervorrichtung 100 gelesene Daten vorübergehend speichern und der Schreibpufferbereich 320 kann Daten vorübergehend speichern, die in der Speichervorrichtung 100 gespeichert werden sollen. Auch der Abbildungspufferbereich 330 kann Abbildungsdaten aus der Speichervorrichtung 100 abrufen und ermöglichen, dass die Abbildungsdaten für einen Vorgang der Speichervorrichtung verwendet werden, wie beispielsweise für einen Lese- oder Schreibvorgang.
  • Die Speichersteuerung 200 kann eine oder mehrere der jeweiligen Verwendungen der Vielzahl von Bereichen zuweisen, die in der Speichervorrichtung 300 umfasst sind. Zum Beispiel kann ein Abschnitt der Vielzahl von Bereichen als Lesepufferbereich 310 zugewiesen werden, ein anderer Abschnitt kann als Schreibpufferbereich 320 zugewiesen werden, und noch ein anderer Abschnitt kann als Abbildungspufferbereich 330 zugewiesen werden. Der Lesepufferbereich 310 kann vorübergehend Daten speichern, die von der Speichervorrichtung 100 an den Host 400 für den Lesevorgang des Lesens von Daten aus der Speichervorrichtung 100 übertragen werden, der Schreibpufferbereich 320 kann vorübergehend Daten speichern, die von dem Host 400 an die Speichervorrichtung 100 für den Schreibvorgang des Speicherns von Daten in der Vorrichtung 100 übertragen werden, und der Abbildungspufferbereich 330 kann Abbildungsdaten speichern, wie z.B. eine Tabelle zur Abbildung logischer auf physikalische Adressen, die eine Beziehung zwischen einer logischen Adresse und einer physikalischen Adresse festlegt.
  • Die Speichersteuerung 200 kann die Pufferspeichervorrichtung 300 steuern, um die Verwendung der in der Pufferspeichervorrichtung 300 zugewiesenen Bereiche zu ändern. In einer Ausführungsform kann die Speichersteuerung 200 die Verwendung der in der Pufferspeichervorrichtung 300 zugewiesenen Bereiche gemäß einer Anforderung des Hosts ändern.
  • Die Host-Steuerung 420 in dem Host kann die Speichervorrichtung 200 auffordern, die Verwendung der Vielzahl von Bereichen der Pufferspeichervorrichtung 300 zu ändern. In einer Ausführungsform kann die Host-Steuerung 420 bestimmen, dass ein Prozess des Anforderns einer relativ großen Menge von Lesebefehlen folgt, und kann anfordern, die Verwendung der Vielzahl von Bereichen der Pufferspeichervorrichtung 300 zu ändern, um dies vorzubereiten. Das heißt, die Host-Steuerung 420 kann anfordern, einen intensiven Lesemodus zu aktivieren, der in der Lage ist, eine große Menge von Lesebefehlen durchzuführen. In einer Ausführungsform kann sich bei Aktivierung des intensiven Lesemodus ein Lesepufferbereich 310 oder ein Abbildungspufferbereich 330 in der Speichervorrichtung 300 vergrößern. Dementsprechend kann die Leistung in Bezug auf den Lesevorgang verbessert werden, indem mehr Daten gelesen und in dem Lesepufferbereich 310 gespeichert werden, oder indem mehr Abbildungsdaten in den Abbildungsdatenpufferbereich 330 geholt und für den Lesevorgang verwendet werden.
  • Die Host-Steuerung 420 kann auf der Grundlage der in dem Host-Speicher 410 gespeicherten Befehle zum Durchführen eines nachfolgenden Prozesses bestimmen, ob eine Aktivierung des intensiven Lesemodus des Speichergeräts 50 erforderlich ist. Zum Beispiel kann die Host-Steuerung 420 in Bezug auf eine Reihe nachfolgender Prozesse bestimmen, dass der intensive Lesemodus aktiviert werden muss, wenn eine Größe von Daten, die gemäß dem Lesebefehl aus der Speichervorrichtung 100 gelesen werden sollen, gleich oder größer als eine voreingestellte Größe ist. In einem anderen Beispiel kann die Host-Steuerung 420 bestimmen, dass der intensive Lesemodus aktiviert werden muss, wenn ein Verhältnis von Lesebefehlen unter den Befehlen, die an das Speichergerät 50 durch den Host in der Reihe der nachfolgenden Prozesse bereitgestellt werden, gleich oder größer als ein vorgegebenes Verhältnis ist. In einem weiteren Beispiel kann die Host-Steuerung 420 bestimmen, dass der intensive Lesemodus aktiviert werden muss, wenn der Host verpflichtet ist, den Lesebefehl an das Speichergerät in der Reihe der nachfolgenden Prozesse eine vorgegebene Anzahl von Malen oder mehr bereitzustellen. Ein Fall, in dem der intensive Lesemodus aktiviert werden muss, ist nicht auf die oben beschriebenen Beispiele beschränkt, und verschiedene Beispiele, die eine relativ große Anzahl von Lesevorgängen erfordern, können angewendet werden.
  • Wie oben beschrieben, kann die Host-Steuerung 420, wenn sie bestimmt, dass der intensive Lesemodus aktiviert werden muss, einen Befehl bereitstellen, der angibt, dass der Lesebefehl an das Speichergerät 50 bereitgestellt werden soll. In dem Befehl können Informationen in Bezug darauf umfasst sein, ob der intensive Lesemodus aktiviert ist. In einer Ausführungsform kann der Befehl in Form einer Abfrageanforderung bereitgestellt werden. In einer Ausführungsform kann die Abfrageanforderung eine Abfrageanforderung zum Setzen von Flags (Set-Flag-Abfrageanforderung) zum Einstellen eines Betriebsmodus des Speichergeräts 50 sein, wobei die Abfrageanforderung zum Setzen von Flags Informationen umfassen kann, die eine Abfrageanforderung zum Einstellen des Betriebsmodus des Speichergeräts angeben, Informationen, die einen Typ einer Abfragefunktion in Bezug auf den Betriebsmodus angeben, und Informationen über ein Flag, das angibt, ob der intensive Lesemodus aktiviert ist. Das heißt, die Abfrageanforderung zum Setzen von Flags kann eine Anforderung zum Einstellen von Einstellungen zum Durchführen eines bestimmten Vorgangs des Speichergeräts 50 sein, und der Betriebsmodus bedeutet, dass das Speichergerät 50 einen bestimmten Vorgang mit der bestimmten Einstellung durchführt. Beispielsweise kann der Betriebsmodus einen normalen Lesemodus umfassen, in dem das Speichergerät 50 einen Lesevorgang mit einer allgemeinen Einstellung durchführt, und einen intensiven Lesemodus, in dem das Speichergerät 50 einen Lesevorgang mit einer Einstellung durchführt, in der das Speichergerät 50 stärker auf den Lesevorgang ausgerichtet ist. Auf der Grundlage der Informationen über das Flag, das angibt, ob der intensive Lesemodus aktiviert ist, kann die Speichersteuerung 200 die Verwendung der Vielzahl von Bereichen in der Pufferspeichervorrichtung 300 ändern. Die Verwendung kann gemäß einer voreingestellten Einstellung geändert werden. Wenn der intensive Lesemodus aktiviert ist, kann die Speichersteuerung 200 die Verwendung zumindest eines Abschnitts der Vielzahl von Bereichen in der Pufferspeichervorrichtung 300 auf eine Verwendung in Bezug auf den Lesebefehl ändern, der von dem Host bereitgestellt werden soll. In einer Ausführungsform kann die Speichersteuerung 200 als Antwort auf die von der Host-Steuerung 420 empfangene Abfrageanforderung zumindest einen Abschnitt eines Bereichs mit Ausnahme des Lesepufferbereichs 310 und des Abbildungspufferbereichs 330 unter der Vielzahl von Bereichen in einen zusätzlichen Abschnitt des Lesepufferbereichs 310 ändern. In einer anderen Ausführungsform kann die Speichersteuerung 200 als Antwort auf die von der Host-Steuerung 420 empfangene Abfrageanforderung zumindest einen Abschnitt des Bereichs mit Ausnahme des Lesepufferbereichs 310 und des Abbildungspufferbereichs 330 unter der Vielzahl von Bereichen in den Abbildungspufferbereich 330 ändern. Wie oben beschrieben, kann das Speichergerät 50 unter Verwendung der Pufferspeichervorrichtung 300, in der zumindest ein Abschnitt der Vielzahl von Bereichen geändert wird, den nachfolgenden Prozess mit der relativ großen Anzahl von Lesevorgängen durchführen.
  • In einer Ausführungsform kann die Host-Steuerung 420 bestimmen, dass der intensive Lesemodus nicht mehr aktiviert werden muss. Dementsprechend kann die Host-Steuerung 420 das Speichergerät 50 auffordern, den intensiven Lesemodus zu deaktivieren, und in einer Ausführungsform kann die Aufforderung als ein Befehl in der Form einer Abfrageanforderung bereitgestellt werden. Wie oben beschrieben, kann die Abfrageanforderung zum Deaktivieren des intensiven Lesemodus eine Abfrageanforderung zum Löschen von Flags (Clear-Flag-Abfrageanforderung) zum Aufheben des eingestellten Modus des Speichergeräts 50 sein. Als Antwort darauf kann die Speichersteuerung 200 die Einstellung zum Aktivieren des intensiven Lesemodus aufheben, und somit kann die Speichersteuerung 200 die Verwendung der Vielzahl von Bereichen in der Pufferspeichervorrichtung 300 wieder ändern. Die Änderung der Verwendung kann zum Zurückkehren zu der Verwendung vor der Aktivierung des intensiven Lesemodus oder zum Initialisieren der Verwendung der Vielzahl von Bereichen dienen, wie dies ursprünglich eingestellt war, ist aber nicht darauf beschränkt, und kann zum Ändern zu einer neuen Verwendung gemäß einer voreingestellten Einstellung dienen. Wenn der intensive Lesemodus deaktiviert ist, kann die Speichersteuerung 200 demzufolge zumindest einen Abschnitt des Bereichs, der als die Verwendung gemäß dem Lesevorgang unter der Vielzahl von Bereichen in der Pufferspeichervorrichtung 300 zugewiesen ist, in eine Verwendung ändern, die nicht mit dem Lesevorgang in Beziehung steht.
  • 5 zeigt ein Diagramm, das einen Aufbau einer Abfrageanforderungs-Protokolleinheit (Protokollinformationseinheit (PIU)) gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Die Abfrageanforderung PIU kann verwendet werden, um Daten zwischen dem Host und dem Speichergerät zu übertragen, wobei sich die Daten von den Lese- oder Schreibvorgangsdaten einer allgemeinen Vorrichtung unterscheiden, und können Systemdaten, Konfigurationsdaten, Produktinformationen, ein Deskriptor, ein spezieller Parameter, ein Flag oder dergleichen sein. Die Abfrageanforderung PIU kann zum Beispiel verwendet werden, um Parameterdaten zu lesen oder zu schreiben. Die Abfrageanforderung PIU kann verwendet werden, um Informationen über Konfiguration oder Aufzählung zu empfangen, um einen Bus- oder gesamten Gerätezustand zu setzen bzw. einzustellen oder zu löschen, um Stromversorgungs-, Bus- oder Netzwerkinformationen zu setzen bzw. einzustellen oder zu empfangen, oder um eine Seriennummer oder global eindeutige Identifikatoren (Globally Unique Identifiers - GUIDs) zu empfangen. Als Antwort auf die Abfrageanforderung PIU kann das Speichergerät eine Abfrageantwort PIU senden. Nach dem Senden der Abfrageanforderung PIU darf der Host erst dann eine neue Abfrageanforderung PIU senden, wenn der Host die Abfrageantwort PIU von dem Speichergerät empfängt. Wenn das Speichergerät die neue Abfrageanforderung PIU empfängt, während es eine vorherige Abfrageanforderung PIU verarbeitet, kann die neu empfangene Abfrageanforderung PIU ignoriert werden. Die Abfrageanforderung PIU umfasst ein Feld, das in Bezug auf die Abfragefunktion definiert ist, und folgt ansonsten einem allgemeinen PIU-Format.
  • Die Abfragefunktion kann allgemein zum Lesen oder Schreiben eines Deskriptors, eines Attributs und eines Flags verwendet werden. Dabei handelt es sich um allgemeine Datenstrukturen, die unter Verwendung einer Abfragefunktion übermittelt werden, und können zum Steuern des Speichergeräts oder zum Definieren eines Vorganges verwendet werden. Der Deskriptor kann ein Block oder eine Seite eines Parameters sein, der etwas über das Speichergerät beschreibt, und kann beispielsweise einen Gerätedeskriptor, einen Konfigurationsdeskriptor, einen Einheitendeskriptor und dergleichen umfassen. Das Attribut kann ein einzelner Parameter sein, der einen bestimmten Bereich eines numerischen Wertes darstellt, der eingestellt oder gelesen werden kann, und dieser Wert kann ein Byte, ein Wort oder eine Gleitkommazahl sein. Das Attribut kann beispielsweise eine Übertragungsgeschwindigkeit, eine Blockgröße oder dergleichen angeben, und die Größe des Attributs kann 1 Bit bis 32 Bit betragen. Attribute desselben Typs können in einem Array konfiguriert werden, und jedes aus einer Vielzahl von Attributen, die in dem Array konfiguriert sind, kann durch einen Index identifiziert werden. Das Flag kann ein einzelner boolescher Wert sein, der einen Wert von WAHR oder FALSCH, 0 oder 1, EIN oder AUS oder dergleichen angibt. Das Flag kann gelöscht, zurückgesetzt, gesetzt, umgeschaltet oder gelesen werden. Das Flag kann verwendet werden, um eine bestimmte Funktion, einen Modus oder einen Zustand in einer Vorrichtung zu aktivieren oder zu deaktivieren.
  • Unter Bezugnahme auf 5 kann die Abfrageanforderung PIU ein Basis-Kopfsegment, ein transaktionsspezifisches Feld und ein Datensegment umfassen.
  • Das Basis-Kopfsegment kann eine Größe von 12 Byte aufweisen. Das Basis-Kopfsegment kann in der Regel alle PIUs umfassen.
  • Das transaktionsspezifische Feld kann eine Byte-Adresse 31 aus einer Byte-Adresse 12 der PIU umfassen. Das transaktionsspezifische Feld kann einen speziellen Transaktionscode gemäß einem Typ der PIU umfassen.
  • Das Datensegment kann eine Datenausgangs- oder eine Dateneingangs-PIU umfassen und darf nicht in anderen PIUs umfasst sein.
  • Das Basis-Kopfsegment kann einen Transaktionstyp, Flags, ein Task- bzw. Aufgaben-Tag, eine Abfragefunktion, eine gesamte Extra-Kopfsegment-Länge (Total EHS Length), Geräteinformationen und eine Datensegmentlänge umfassen.
  • Die Transaktionsart kann gemäß der Art der PIU einen eindeutigen Wert aufweisen. Ein Beispiel der Transaktionsart gemäß der Art der PIU ist in [Tabelle 1] unten gezeigt. [Tabelle 1]
    Wenn der Host dem Speichergerät bereitstellt Transaktionsart Wenn das Speichergerät dem Host bereitstellt Transaktionsart
    Befehl PIU 00 0001b Antwort PIU 10 0001b
    Daten aus PIU 00 0010b Daten in PIU 10 0010b
    X X Bereit zur Übertragung PIU 11 0001b
    Abfrageanforderung PIU 01 0110b Abfrageantwort PIU 11 0110b
  • Wenn der Host eine Abfrageanforderung an das Speichergerät bereitstellt, wie der Host in der obigen Tabelle 1 überprüfen kann, kann die Transaktionsart in einer Ausführungsform als 01 0110b angegeben werden. Das heißt, das Speichergerät kann durch Bezugnahme auf die Transaktionsart des Basis-Kopfsegments erkennen, dass ein empfangener Befehl die Abfrageanforderung ist. Bei der Abfrageanforderung kann es sich um eine Anfrage zum Einstellen des Betriebsmodus des Speichergeräts handeln. Bei den Flags kann es sich um Felder handeln, die gemäß der Transaktionsart unterschiedliche Werte aufweisen.
  • Das Aufgaben-Tag kann ein Feld sein, das gemäß der Transaktionsart unterschiedliche Werte aufweist.
  • Die Abfragefunktion kann ein Feld sein, das in die PIU der Abfrageanforderung oder der Abfrageantwort eingegeben wird. Die Abfragefunktion kann sich auf den Betriebsmodus beziehen, der durch die Abfrageanforderung eingestellt werden soll. Dies wird unter Bezugnahme auf 6 weiter unten näher beschrieben.
  • Die gesamte Länge des Extra-Kopfsegments (Total EHS Length) kann ein Feld sein, das die Größe des zusätzlichen Kopfsegments in 32-Bit-Einheiten angibt. Das Extra-Kopfsegment kann ein Bereich sein, der Daten zusätzlich speichern kann, wenn in dem Basis-Kopfsegment nicht genügend Informationen umfasst sind, und kann selektiv in der PIU umfasst sein. Die gesamte Länge des Extra-Kopfsegments (Total EHS Length) kann verwendet werden, wenn die PIU ein zusätzliches Kopfsegment umfasst. Die Länge des zusätzlichen Kopfsegments kann eine Einheit von 4 Byte sein. Ein Wert der gesamten Länge des Extra-Kopfsegments (Total EHS Length) kann ein Wert sein, der durch Dividieren der Gesamtzahl der Bytes des zusätzlichen Kopfsegments durch 4 erhalten wird. Eine maximale Größe des zusätzlichen Kopfsegments kann 1024 Bytes betragen. Wenn das zusätzliche Kopfsegment nicht verwendet wird, kann die Gesamtlänge des zusätzlichen Kopfsegments (Total EHS Length) 0 betragen.
  • Die Datensegmentlänge kann ein Feld sein, das eine Länge eines Datensegments der PIU angibt. Wenn die PIU das Datensegment nicht umfasst, kann die Datensegmentlänge 0 sein.
  • Das transaktionsspezifische Feld der Abfrageanforderung PIU ist für jeden Aufgabentyp spezifisch definiert. In einer Ausführungsform kann das transaktionsspezifische Feld Informationen über das Flag umfassen, das angibt, ob der intensive Lesemodus aktiviert ist. Das Speichergerät kann auf der Grundlage der in dem transaktionsspezifischen Feld umfassten Informationen über das Flag einen Zustand des intensiven Lesemodus bestimmen und eine Einstellung des Speichergeräts entsprechend ändern. Dies wird unter Bezugnahme auf die 7 bis 10 näher beschrieben. Dabei kann der Zustand bedeuten, ob der intensive Lesemodus aktiviert werden soll.
  • Das Datensegment der Abfrageanforderung PIU kann gemäß einem Wert der Abfragefunktion selektiv vorhanden sein. Wenn das Datensegment nicht vorhanden ist, kann, wie oben beschrieben, ein Datensegmentlängenfeld in dem Basis-Kopfsegment auf 0 gesetzt werden.
  • 6 zeigt ein Diagramm, das einen Typ einer Abfragefunktion und einen Feldwert gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf 5 und 6 kann in dem Basis-Kopfsegment der Abfrageanforderung PIU ein Abfragefunktionsfeld vorhanden sein, in dem ein Abfragetyp, der eine durchzuführende Abfragefunktion beschreibt, ausgedrückt wird. Unter Bezugnahme auf 6 kann der Typ der Abfragefunktion eine Standard-Leseanforderung, eine herstellerspezifische Lesefunktion, eine Standard-Schreibanforderung, eine herstellerspezifische Schreibfunktion und dergleichen umfassen. Eine Standard-Leseanforderung kann verwendet werden, um von dem Speichergerät angeforderte Informationen zu lesen. Das Speichergerät kann die angeforderten Informationen über die Abfrageantwort PIU an den Host übertragen. Die Standard-Schreibanforderung kann verwendet werden, um Informationen und Daten in dem Speichergerät zu speichern. Die Informationen und die Daten, die im Speichergerät gespeichert werden sollen, können in dem Datensegment der Abfrageanforderung PIU umfasst sein und von dem Host zu dem Speichergerät übertragen werden. In einer Ausführungsform kann die Abfragefunktion der Abfrageanforderung, die verwendet wird, wenn der intensive Lesemodus aktiviert oder der intensive Lesemodus deaktiviert ist, die Standard-Schreibanfrage sein. Dies wird unter Bezugnahme auf die 7 bis 10 weiter unten näher beschrieben.
  • 7 zeigt ein Diagramm, das einen Aufbau eines transaktionsspezifischen Feldes gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt, wenn die Abfragefunktion der Abfrageanforderung die Standard-Schreibanforderung ist.
  • Unter Bezugnahme auf 7 kann das transaktionsspezifische Feld der Abfrageanforderung, deren Abfragefunktion die Standard-Schreibanforderung ist, ein Vorgangscode- bzw. Operationscode- (Opcode) Feld und ein spezifisches Vorgangscode- bzw. Operationscodefeld (OSF) umfassen. Das Operationscodefeld gibt einen durchzuführenden Vorgang an, und ein damit verbundener OPCODE-Wert wird nachstehend unter Bezugnahme auf 8 näher beschrieben. Das OSF kann jeden spezifischen Operationscode definieren. In einer Ausführungsform, wenn der von der Speichersteuerung empfangene Befehl in Form einer Abfrageanforderung vorliegt und die Abfragefunktion gemäß dieser die Standard-Schreibanforderung ist, kann die Speichersteuerung auf der Grundlage der in dem transaktionsspezifischen Feld umfassten Informationen über das Flag einen Zustand des intensiven Lesemodus bestimmen. Darüber hinaus kann die Verwendung der Vielzahl von Bereichen in der Pufferspeichervorrichtung gemäß dem bestimmten Zustand des intensiven Lesemodus geändert werden.
  • 8 zeigt ein Diagramm, das einen Typ eines Vorgangs- bzw. Operationscodes (Opcode) der Abfragefunktion gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf die und kann das transaktionsspezifische Feld der Abfrageanforderung PIU das Operationscodefeld umfassen und gemäß einer Art des Vorganges unterschiedliche Werte für den Operationscode aufweisen. In einer Ausführungsform kann der Betriebscode angeben, ob der intensive Lesemodus aktiviert ist. Zum Beispiel kann im Falle einer Operation zum Setzen von Flags (SET FLAG), die verwendet wird, um den intensiven Lesemodus zu aktivieren, aus 8 ersichtlich sein, dass der entsprechende Operationscode 06h ist und die entsprechende Abfragefunktion die Standard-Schreibanforderung ist. Darüber hinaus ist in einem Fall einer Operation zum Löschen von Flags (CLEAR FLAG), die verwendet wird, um den intensiven Lesemodus zu deaktivieren, aus 8 ersichtlich, dass der entsprechende Operationscode 07h ist und die entsprechende Abfragefunktion die Standard-Schreibanforderung ist.
  • 9 zeigt ein Diagramm, das einen Aufbau eines transaktionsspezifischen Feldes einer Abfrageanforderung zum Setzen von Flags bzw. Kennzeichen gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf die 5 bis 9 kann im Falle der Abfrageanforderung zum Setzen von Flags das Abfragefunktionsfeld des Basis-Kopfsegments 81h sein, was die Standard-Schreibanforderung bezeichnet, und der OPCODE-Wert des transaktionsspezifischen Feldes kann 06h sein, was das Setzen des Flags bezeichnet. Darüber hinaus kann das transaktionsspezifische Feld ein Flag-Identifikations- (FLAG IDN) Feld umfassen, das einen Wert umfassen kann, der ein spezifisches Flag erkennt, das in dem Speichergerät gesetzt werden soll. Darüber hinaus kann das transaktionsspezifische Feld ein Indexfeld umfassen, das verwendet werden kann, um ein spezifisches Element eines Flags zu erkennen. Darüber hinaus kann das transaktionsspezifische Feld ein Auswahlfeld umfassen, das verwendet werden kann, um das spezifische Element des Flags weiter zu erkennen. Ein Flag-Wert einer dazu entsprechenden spezifischen Adresse kann auf WAHR oder 1 gesetzt werden. Darüber hinaus kann im Fall der Abfrage zum Setzen von Flags ein Datensegment nicht unbedingt umfasst sein, und somit kann ein Wert des Datensegmentlängenfeldes in dem Basis-Kopfsegment 0 sein. In einer Ausführungsform kann die Abfrage zum Setzen von Flags von dem Host an das Speichergerät bereitgestellt werden, um den intensiven Lesemodus zu aktivieren, und zu diesem Zeitpunkt kann das transaktionsspezifische Feld Informationen über das Flag umfassen, das eine Aktivierung des intensiven Lesemodus angibt. Beispielsweise kann das OPCODE-Feld einen Wert aufweisen, der die Flag-Einstellung angibt, und das Flag-Identifikationsfeld kann einen Flag-Identifikationswert aufweisen, der das Flag für den intensiven Lesemodus angibt. Wenn die Speichersteuerung eine solche Abfrageanforderung empfängt, kann die Speichersteuerung daher bestimmen, dass der intensive Lesemodus aktiviert werden muss, und somit kann die Speichersteuerung die Verwendung der Vielzahl von Bereichen in der Speichervorrichtung ändern.
  • 10 zeigt ein Diagramm, das einen Aufbau eines transaktionsspezifischen Feldes einer Abfrageanforderung zum Löschen von Flags bzw. Kennzeichen gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf die 5 bis 8 und 10 kann das Abfragefunktionsfeld des Basis-Kopfsegments im Fall der Abfrageanforderung zum Löschen von Flags 81h sein, was die Standard-Schreibanforderung angibt, und der OPCODE-Wert des transaktionsspezifischen Feldes kann 07h sein, was das Löschen des Flags bedeutet. Darüber hinaus kann das transaktionsspezifische Feld das Flag-Identifikations- (FLAG IDN) Feld umfassen, das einen Wert umfassen kann, der ein spezifisches Flag erkennt, das in dem Speichergerät gesetzt werden soll. Darüber hinaus kann das transaktionsspezifische Feld ein Indexfeld umfassen, das verwendet werden kann, um ein spezifisches Element des Flags zu erkennen. Darüber hinaus kann das transaktionsspezifische Feld ein Auswahlfeld umfassen, das verwendet werden kann, um das spezifische Element weiter zu erkennen. Dementsprechend kann der Flag-Wert der spezifischen Adresse auf FALSE oder 0 gesetzt werden. Darüber hinaus kann in einem Fall der Flag-Abfrageanforderung das Datensegment nicht unbedingt umfasst sein, und somit kann der Wert des Datensegmentlängenfelds in dem Basis-Kopfsegment 0 sein. In einer Ausführungsform kann die Abfrageanforderung zum Löschen von Flags von dem Host an das Speichergerät bereitgestellt werden, um den intensiven Lesemodus zu deaktivieren, und zu diesem Zeitpunkt kann das transaktionsspezifische Feld Informationen zum Deaktivieren des intensiven Lesemodus umfassen, d.h. Informationen in Bezug auf ein Löschen des für den aktivierten intensiven Lesemodus gesetzten Flags. Beispielsweise kann das OPCODE-Feld einen Wert aufweisen, der ein Löschen des Flags angibt, und das Flag-Identifikationsfeld kann einen Flag-Identifikationswert aufweisen, der ein Flag für den intensiven Lesemodus angibt. Wenn die Speichersteuerung die Abfrageanforderung empfängt, kann die Speichersteuerung daher bestimmen, dass der intensive Lesemodus deaktiviert werden muss, und somit kann die Speichersteuerung die Verwendung der Vielzahl von Bereichen in der Pufferspeichervorrichtung ändern oder initialisieren.
  • 11 zeigt ein Sequenzdiagramm, das einen Betrieb eines Speichergeräts gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf 11 kann das Speichergerät 50 in Vorgang S10 einen allgemeinen normalen Lesevorgang durchführen. Genauer gesagt empfängt das Speichergerät 50 in Vorgang S11 den Lesebefehl von dem Host 400 und überträgt somit in Vorgang S12 Lesedaten an den Host 400. In Vorgang S13 antwortet das Speichergerät 50 mit einer Antwort auf den Lesebefehl.
  • Wenn der Host 400 bestimmt, dass der intensive Lesemodus aktiviert werden muss, kann der Host 400 die Abfrageanforderung zum Anfordern der Einstellung bzw. des Setzens von Flags zum Aktivieren des intensiven Lesemodus an das Speichergerät 50 wie in Vorgang S21 bereitstellen. Gemäß der Abfrageanforderung kann das Speichergerät 50 den intensiven Lesemodus aktivieren, und wenn die Aktivierung des intensiven Lesemodus abgeschlossen ist, kann das Speichergerät 50 die Abfrageantwort an den Host 400 wie in Vorgang S22 beantworten.
  • Ein Vorgang des intensiven Lesens kann gemäß dem aktivierten Modus des intensiven Lesens in Vorgang S30 durchgeführt werden. In Vorgang S31 kann das Speichergerät 50 den Lesebefehl von dem Host 400 empfangen und den Lesevorgang unter Verwendung einer gemäß der Aktivierung des Modus des intensiven Lesens geänderten Einstellung durchführen. Wenn beispielsweise der intensive Lesemodus aktiviert ist, kann die Verwendung zumindest eines Abschnitts der Vielzahl von Bereichen in der Pufferspeichervorrichtung auf eine Verwendung in Bezug auf den Lesevorgang geändert werden, und der Lesevorgang kann unter Verwendung des Bereichs in der Pufferspeichervorrichtung durchgeführt werden, dessen Verwendung wie oben beschrieben geändert wurde. In Vorgang S32 überträgt das Speichergerät 50 die gespeicherten Daten an den Host 400, und in Vorgang S33 antwortet das Speichergerät 50 mit einer Antwort auf den Lesebefehl.
  • Wenn der Host 400 bestimmt, dass der intensive Lesemodus nicht mehr benötigt wird, d.h., dass der intensive Lesemodus deaktiviert werden muss, kann der Host 400 die Abfrageanforderung zum Anfordern des Löschens von Flags zum Deaktivieren des intensiven Lesemodus an das Speichergerät 50 wie in Vorgang S41 bereitstellen. Gemäß der Abfrageanforderung kann das Speichergerät 50 den intensiven Lesemodus deaktivieren, und wenn die Deaktivierung des intensiven Lesemodus abgeschlossen ist, kann das Speichergerät 50 auf die Abfrageantwort an den Host 400 wie in Vorgang S42 antworten.
  • Da der Modus des intensiven Lesens deaktiviert ist, kann das Speichergerät 50 in Vorgang S50 wieder den allgemeinen normalen Lesevorgang durchführen. Genauer gesagt empfängt das Speichergerät 50 in Vorgang S51 den Lesebefehl von dem Host 400, und somit überträgt das Speichergerät 50 in Vorgang S52 die gelesenen Daten an den Host 400. In Vorgang S53 antwortet das Speichergerät 50 mit einer Antwort auf den Lesebefehl.
  • 12 zeigt ein Flussdiagramm, das eine Bereitstellung der Abfrageanforderung zum Setzen von Flags einer Hostvorrichtung gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf die 1 und 12 kann die Host-Steuerung 420 in Vorgang S1201 die in dem Host-Speicher 410 gespeicherten Befehle in Bezug auf einen nachfolgenden Prozess überprüfen. Die Host-Steuerung 420, die die gespeicherten Befehle prüft, kann bestimmen, ob der intensive Lesemodus des Speichergeräts 50 in Vorgang S1203 eingestellt werden soll. Wenn die Host-Steuerung 420 bestimmt, dass der intensive Lesemodus des Speichergeräts 50 aktiviert werden muss (Ja in S1203), kann die Host-Steuerung 420 in Vorgang S1205 die Abfrage zum Setzen von Flags an das Speichergerät 50 bereitstellten. Dementsprechend kann das Speichergerät 50 die Einstellung auf den intensiven Lesemodus ändern, und das Speichergerät 50 kann den Lesevorgang auf der Grundlage der geänderten Einstellung gemäß der Aktivierung des intensiven Lesemodus in Bezug auf einen nachfolgenden Lesebefehl durchführen. Wenn die Host-Steuerung 420 in Vorgang S1203 bestimmt, dass die Aktivierung des intensiven Lesemodus des Speichergeräts 50 nicht erforderlich ist (Nein in S1203), kann ein separater Befehl, der angibt, dass der Lesebefehl für das Speichergerät 50 geplant ist, möglicherweise nicht bereitgestellt werden, und die Host-Steuerung 420 kann die in dem Host-Speicher 410 gespeicherten Befehle wiederholt überprüfen.
  • 13 zeigt ein Flussdiagramm, das einen Bestimmungsprozess einer Hostvorrichtung gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf die 1 und 13 kann die Host-Steuerung 420 in Vorgang S1301 bestimmen, ob eine Größe von Daten, die von der Speichervorrichtung 100 in dem Speichergerät durch den Lesebefehl unter den Befehlen in dem Host-Speicher 410 gelesen werden sollen, die sich auf eine Reihe von nachfolgenden Prozessen beziehen, die gespeichert sind, einen Wert überschreitet, der als ein Schwellenwert voreingestellt ist. Wenn die Größe der zu lesenden Daten den Schwellenwert überschreitet (Ja in S1301), kann der Host-Steuerung 420 in Vorgang S1307 dem Speichergerät 50 mitteilen, dass der Lesebefehl im Voraus bereitgestellt werden soll, und die Abfrageanforderung zum Anfordern zum Aktivieren des intensiven Lesemodus bereitstellen. Wenn die Größe der zu lesenden Daten den Schwellenwert (NO in S1301) nicht überschreitet, kann bestimmt werden, ob der intensive Lesemodus erforderlich ist, indem zusätzlich eine andere Eigenschaft der in dem Host-Speicher 410 gespeicherten Befehle überprüft wird.
  • In Vorgang S1303 kann die Host-Steuerung 420 bestimmen, ob ein Verhältnis der Lesebefehle unter den Befehlen für die Reihe nachfolgender Prozesse, die in dem Host-Speicher 410 gespeichert sind, ein als Schwellenwert vorgegebenes Verhältnis überschreitet. Wenn das Verhältnis der Lesebefehle den Schwellenwert überschreitet (Ja in S1303), kann die Host-Steuerung 420 dem Speichergerät 50 mitteilen, dass der Lesebefehl im Voraus bereitgestellt werden soll, und die Abfrageanforderung zum Anfordern zum Aktivieren des intensiven Lesemodus bereitstellen. Wenn das Verhältnis der Lesebefehle den Schwellenwert (NO in S1303) nicht überschreitet, kann bestimmt werden, ob der intensive Lesemodus erforderlich ist, indem zusätzlich eine andere Eigenschaft der in dem Host-Speicher 410 gespeicherten Befehle überprüft wird.
  • In Vorgang S1305 kann die Host-Steuerung 420 bestimmen, ob der Lesebefehl unter den Befehlen für die Reihe nachfolgender Prozesse, die in dem Host-Speicher 410 gespeichert sind, nacheinander eine vorgegebene Anzahl von Malen oder mehr gespeichert wird. Das heißt, es kann bestimmt werden, ob der Lesebefehl an das Speichergerät nacheinander eine vorgegebene Anzahl von Malen oder mehr bereitgestellt werden muss. Wenn die Anzahl der nacheinander gespeicherten Lesebefehle einen Schwellenwert (Ja in S1305) überschreitet, kann die Host-Steuerung 420 dem Speichergerät 50 mitteilen, dass der Lesebefehl im Voraus bereitgestellt werden soll, und die Abfrageanforderung zum Anfordern zum Aktivieren des intensiven Lesemodus bereitstellen. Wenn die Anzahl der nacheinander gespeicherten Lesebefehle innerhalb des Schwellenwerts (NO in S1305) liegt, kann die Host-Steuerung 420 bestimmen, dass der intensive Lesevorgang nicht erforderlich ist, und kann dem Speichergerät 50 möglicherweise keinen separaten, dem Lesebefehl vorausgehenden Befehl bereitstellen. Somit führt das Speichergerät 50 einen allgemeinen normalen Lesevorgang durch.
  • Obwohl der Prozess, in dem der Host bestimmt, ob der intensive Lesemodus erforderlich ist, in 13 beschrieben ist, ist ein Element oder eine Reihenfolge der Bestimmung nicht auf das bzw. die in 13 offenbarte beschränkt, und es kann durch verschiedene andere Bestimmungsstandards und verschiedene andere Bestimmungsreihenfolgen bestimmt werden, ob der intensive Lesemodus erforderlich ist.
  • 14 zeigt ein Flussdiagramm, das eine Bereitstellung der Abfrageanforderung zum Löschen von Flags einer Hostvorrichtung gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf die 1, 12 und 14 kann die Host-Steuerung 420 in Vorgang S1401 die in dem Host-Speicher 410 gespeicherten Befehle in Bezug auf einen nachfolgenden Prozess überprüfen. Zu diesem Zeitpunkt kann das Speichergerät 50 die Abfrageanforderung zum Setzen von Flags für die Aktivierung des intensiven Lesemodus empfangen, wie in 12 gezeigt, und somit kann der intensive Lesemodus aktiviert werden. In Vorgang S1403 kann die Host-Steuerung 420, die die gespeicherten Befehle überprüft, bestimmen, ob der intensive Lesemodus in dem Speichergerät 50, in dem der intensive Lesemodus aktiviert ist, freigegeben werden muss. Wenn die Host-Steuerung 420 bestimmt, dass der intensive Lesemodus der Vorrichtung 50 freigegeben werden muss (Ja in S1403), kann die Host-Steuerung 420 in Vorgang S1405 eine Abfrageanforderung zum Löschen von Flags an das Speichergerät 50 bereitstellen. Dementsprechend kann das Speichergerät 50 von einer Einstellung gemäß dem intensiven Lesemodus zu einer ursprünglichen Einstellung wechseln, und das Speichergerät 50 kann den Lesevorgang auf der Grundlage einer allgemeinen ursprünglichen Einstellung gemäß der Deaktivierung des intensiven Lesemodus in Bezug auf einen nachfolgenden Lesebefehl durchführen. Wenn die Host-Steuerung 420 bestimmt, dass der intensive Lesemodus des Speichergeräts 50 in Vorgang S1403 (Nein in S1403) kontinuierlich erforderlich ist, kann die Host-Steuerung 420 möglicherweise keinen separaten zusätzlichen Befehl an das Speichergerät 50 bereitstellen, und somit kann das Speichergerät 50 den intensiven Lesemodus kontinuierlich beibehalten. Darüber hinaus kann die Host-Steuerung 420 die in dem Host-Speicher 410 gespeicherten Befehle wiederholt überprüfen.
  • 15 zeigt ein Flussdiagramm, das einen Betrieb eines Speichergeräts gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf die 1 und 15 kann das Speichergerät 50 die Abfrageanforderung in Vorgang S1501 empfangen, und das Speichergerät 50 kann in Vorgang S1503 bestimmen, ob die Abfrageanforderung die Abfrageanforderung zum Setzen von Flags ist. Wenn die Abfrageanforderung die Abfrageanforderung zum Setzen von Flags ist (Ja in S1503), kann die Pufferspeichervorrichtung 300 für den intensiven Lesemodus in Vorgang S1505 zugewiesen werden, und im Einzelnen kann ein Abschnitt unter der Vielzahl von Bereichen in der Pufferspeichervorrichtung 300 auf die Verwendung in Bezug auf den nachfolgend bereitzustellenden Lesebefehl geändert werden. Wenn es sich bei der Abfrageanforderung nicht um die Abfrageanforderung zum Setzen von Flags (Nein in S1503) handelt, beispielsweise um die Abfrageanforderung zum Löschen von Flags, kann die Pufferspeichervorrichtung 300 für den allgemeinen normalen Lesemodus mit Ausnahme des intensiven Lesemodus in Vorgang S1507 zugewiesen werden. Im Einzelnen kann die gemäß dem intensiven Lesemodus geänderte Verwendung der Vielzahl von Bereichen in der Pufferspeichervorrichtung 300 zu einer ursprünglichen Verwendung zurückgeführt werden. In Vorgang S1509 kann das Speichergerät 50 den Lesevorgang unter Verwendung der in den Vorgängen S1505 und S1507 zugewiesenen Pufferspeichereinrichtung durchführen. Wenn beispielsweise die Pufferspeichervorrichtung 300 für den intensiven Lesebetrieb wie in S1505 zugewiesen wird, kann eine exzellentere Lesebetriebsleistung erzielt werden. Andererseits kann, wie in S1507, wenn die Pufferspeichervorrichtung 300 für den normalen Lesevorgang zugewiesen wird, die Leistung des Lesevorgangs niedriger sein als die des intensiven Lesevorgangs, aber es ist besonders bevorzugt, einen anderen Vorgang als den Lesevorgang durchzuführen.
  • 16 zeigt ein Diagramm, das eine Zuweisung eines Bereichs in einer Pufferspeichervorrichtung als Antwort auf einen Empfang der Abfrageanforderung von einem Speichergerät gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf die 1, 4 und 16 kann die Pufferspeichervorrichtung die Vielzahl von Bereichen umfassen, und die Vielzahl von Bereichen kann den Lesepufferbereich 310, den Schreibpufferbereich 320 und den Abbildungspufferbereich 330 umfassen. Darüber hinaus kann die Vielzahl von Bereichen auch andere Pufferbereiche umfassen, wie z.B. einen Pufferbereich für einen Hintergrundvorgang (nicht gezeigt).
  • Eine Zuweisung der Vielzahl von Bereichen, die verschiedene Verwendungen in der Pufferspeichervorrichtung aufweisen, kann von der Speichersteuerung 200 durchgeführt werden. Wenn die Speichersteuerung 200 die Abfrageanforderung zum Anfordern zum Aktivieren des intensiven Lesemodus von der Hostvorrichtung 400 empfängt, kann die Speichersteuerung die Verwendung der Vielzahl von Bereichen in der Pufferspeichervorrichtung 300 gemäß der Einstellung des intensiven Lesemodus ändern. Die Verwendung kann gemäß einer voreingestellten Einstellung geändert werden. Wenn der Intensivlesemodus aktiviert ist, kann die Speichersteuerung 200 die Verwendung zumindest eines Abschnitts von der Vielzahl von Bereichen in der Pufferspeichervorrichtung 300 auf die Verwendung in Bezug auf den von dem Host 400 bereitzustellenden Lesebefehl ändern. In einer Ausführungsform kann die Speichersteuerung 200 als Antwort auf die von dem Host 400 empfangene Abfrageanforderung zumindest einen Abschnitt eines Bereichs mit Ausnahme des Lesepufferbereichs 310 und des Abbildungspufferbereichs 330 unter der Vielzahl von Bereichen in den Lesepufferbereich 310 ändern. In einer anderen Ausführungsform kann die Speichersteuerung als Antwort auf die von dem Host empfangene Abfrageanforderung zumindest einen Abschnitt des Bereichs mit Ausnahme des Lesepufferbereichs 310 und des Abbildungspufferbereichs 330 unter der Vielzahl von Bereichen in den Abbildungspufferbereich 330 ändern. Beispielsweise kann, wie in 16 gezeigt, ein Abschnitt des Schreibpufferbereichs 320 in einen zusätzlichen Abschnitt des Lesepufferbereichs 310 geändert werden, und ein anderer Abschnitt kann in den Abbildungspufferbereich 330 geändert werden. Wie oben beschrieben, kann das Speichergerät 50 unter Verwendung der Pufferspeichervorrichtung, in der zumindest ein Abschnitt der Vielzahl von Bereichen geändert wird, einen nachfolgenden Prozess durchführen, der eine relativ große Anzahl von Lesevorgängen umfasst.
  • 17 zeigt ein Diagramm, das eine Speichersteuerung von 1 gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
  • Unter Bezugnahme auf 17 kann die Speichersteuerung 1000 einen Prozessor 1010, einen internen Speicher 1020, eine Fehlerkorrekturcodeschaltung 1030, eine Host-Schnittstelle 1040, eine Pufferspeicher-Schnittstelle 1050 und eine Speichers-Schnittstelle 1060 umfassen.
  • Der Prozessor 1010 kann verschiedene Vorgänge bzw. Operationen durchführen oder verschiedene Befehle zum Steuern der Speichervorrichtung 100 erzeugen. Wenn er eine Anforderung von dem Host 400 empfängt, kann der Prozessor 1010 einen Befehl gemäß der empfangenen Anforderung erzeugen und den erzeugten Befehl an eine Warteschlangensteuerung (nicht gezeigt) übertragen.
  • Der interne Speicher 1020 kann verschiedene Informationen speichern, die für einen Betrieb der Speichersteuerung 1000 erforderlich sind. Der interne Speicher 1020 kann zum Beispiel logische und physikalische Adressabbildungstabellen umfassen. Der interne Speicher 1020 kann zumindest einen aus einem Direktzugriffsspeicher (Random Access Memory - RAM), einem dynamischen Direktzugriffsspeicher (Dynamic RAM - DRAM), einem statischen Direktzugriffsspeicher (Static RAM - SRAM), einem Cache und einem eng gekoppelten Speicher (Tightly Coupled Memory - TCM) gebildet sein.
  • Die Fehlerkorrekturcodeschaltung 1030 ist eingerichtet, um einen Fehler der von der Speichervorrichtung 100 empfangenen Daten unter Verwendung eines Fehlerkorrekturcodes (ECC) zu erfassen und zu korrigieren. Der Prozessor 1010 kann eine Lesespannung gemäß einem Fehlererkennungsergebnis der Fehlerkorrekturcodeschaltung 1030 einstellen und die Speichervorrichtung 100 zum Durchführen eines erneuten Lesens steuern. In einer Ausführungsform kann ein Fehlerkorrekturblock als eine Komponente der Speichersteuerung 1000 vorgesehen sein.
  • Die Host-Schnittstelle 1040 kann einen Befehl, eine Adresse und Daten zwischen der Speichersteuerung 1000 und dem Host 400 austauschen. Beispielsweise kann die Host-Schnittstelle 1040 eine Anforderung, eine Adresse und Daten vom Host 400 empfangen und von der Speichervorrichtung 100 gelesene Daten an den Host 400 ausgeben. Die Host-Schnittstelle 1040 kann mit dem Host 400 unter Verwendung von Kommunikationsstandards oder Schnittstellen wie Universal Serial Bus (USB), Serial AT Attachment (SATA), Serial Attached SCSI (SAS), High Speed Interchip (HSIC), Small Computer System Interface (SCSI), Peripheral Component Interconnection (PCI), PCI express (PCIe), nonvolatile memory express (NVMe), universal flash storage (UFS), secure digital (SD), multimedia card (MMC), embedded MMC (eMMC), dual in-line memory module (DIMM), registered DIMM (RDIMM), load reduced DIMM (LRDIMM), enhanced small disk interface (ESDI), oder integrated drive electronics (IDE) kommunizieren bzw. in Verbindung treten. Die Host-Schnittstelle 1040 kann den Befehl empfangen, der angibt, dass der Lesebefehl zum Anfordern von in der Speichervorrichtung gespeicherten Daten von dem Host 400 bereitgestellt werden soll. Ein solcher Befehl kann in Form einer Abfrageanforderung empfangen werden.
  • Die Pufferspeicher-Schnittstelle 1050 kann Daten zwischen dem Prozessor 1010 und der Pufferspeichervorrichtung 300 übertragen. Die Pufferspeichervorrichtung 300 kann als ein Operations- bzw. Betriebsspeicher oder als ein Cache-Speicher der Speichersteuerung 1000 verwendet werden und kann Daten speichern, die in dem Speichergerät 50 verwendet werden. Die Pufferspeicher-Schnittstelle 1050 kann die Pufferspeichervorrichtung 300 als Lesepuffer, Schreibpuffer, Abbildungspuffer (Map-Puffer), Hintergrundvorgangspuffer und dergleichen durch den Prozessor 1010 verwenden. Darüber hinaus kann die Pufferspeicher-Schnittstelle 1050 die Verwendung der Pufferspeichervorrichtung gemäß einer Anforderung des Prozessors 1010 ändern. Beispielsweise kann die Pufferspeicher-Schnittstelle 1050, wenn die Host-Schnittstelle 1040 den Befehl empfängt, der angibt, dass der Lesebefehl zum Anfordern von in der Speichervorrichtung gespeicherten Daten von dem Host 400 bereitgestellt werden soll, die Verwendung von zumindest einem Abschnitt unter der Vielzahl von Bereichen in der Pufferspeichervorrichtung 300 auf die Verwendung in Bezug auf den bereitzustellenden Lesebefehl gemäß der Anforderung des Prozessors 1010 ändern. Wenn die Pufferspeichervorrichtung beispielsweise den Lesepufferbereich, den Schreibpufferbereich, den Hintergrundvorgangspufferbereich, den Abbildungspufferbereich und dergleichen umfasst, kann die Pufferspeichervorrichtungs-Schnittstelle zumindest einen Abschnitt eines Bereichs außer dem Lesepufferbereich und dem Abbildungspufferbereich unter dem Lesepufferbereich, dem Schreibpufferbereich, dem Hintergrundvorgangspufferbereich, dem Abbildungspufferbereich und dergleichen in einen zusätzlichen Abschnitt des Lesepufferbereichs oder des Abbildungspufferbereichs ändern.
  • Gemäß einer Ausführungsform kann die Pufferspeichervorrichtung 300 einen synchronen dynamischen Direktzugriffsspeicher mit doppelter Datenrate (DDR SDRAM - Double Data Rate Synchronous Dynamic Random Access Memory), DDR4 SDRAM, SDRAM mit doppelter Datenrate4 mit niedriger Leistung (LPDDR4 - Low Power Double Data Rate4), Grafik-SDRAM mit doppelter Datenrate (GDDR - Graphics Double Data Rate), DDR mit niedriger Leistung (LPDDR - Low Power DDR) oder einen dynamischen Rambus-Direktzugriffsspeicher (RDRAM - Rambus Dynamic Random Access Memory) umfassen. Wenn die Pufferspeichervorrichtung in der Speichersteuerung 1000 umfasst ist, kann die Pufferspeicher-Schnittstelle 1050 weggelassen werden.
  • Die Speicherschnittstelle 1060 kann den Befehl, die Adresse und die Daten zwischen der Speichersteuerung 1000 und der Speichervorrichtung 100 austauschen. Zum Beispiel kann die Speicherschnittstelle 1060 den Befehl, die Adresse, die Daten und dergleichen an die Speichervorrichtung 100 übertragen und die Daten und dergleichen von der Speichervorrichtung 100 über einen Kanal empfangen.
  • 18 zeigt ein Blockdiagramm, das ein Speicherkartensystem darstellt, auf das ein Speichergerät gemäß einer Ausführungsform der vorliegenden Offenbarung angewendet wird.
  • Unter Bezugnahme auf 18 umfasst das Speicherkartensystem 2000 eine Speichersteuerung 2100, eine Speichervorrichtung 2200 und einen Steckverbinder 2300 .
  • Die Speichersteuerung 2100 ist mit der Speichervorrichtung 2200 verbunden. Die Speichersteuerung 2100 ist eingerichtet, um auf die Speichervorrichtung 2200 zuzugreifen. Zum Beispiel kann die Speichersteuerung 2100 eingerichtet sein, um Lese-, Programm-, Lösch- und Hintergrundvorgänge der Speichervorrichtung 2200 zu steuern. Die Speichersteuerung 2100 ist eingerichtet, um eine Schnittstelle zwischen der Speichervorrichtung 2200 und einem Host bereitzustellen. Die Speichersteuerung 2100 ist eingerichtet, um Firmware zum Steuern der Speichervorrichtung 2200 anzusteuern. Die Speichersteuerung 2100 kann identisch mit der unter Bezugnahme auf 1 beschriebenen Speichersteuerung 200 ausgeführt sein. Die Speichersteuerung 2100 kann die Speichervorrichtung 2200 gemäß einem von dem Host empfangenen Befehl steuern. In einer Ausführungsform kann die Speichersteuerung 2100 empfangen, dass der Lesebefehl von dem Host bereitgestellt werden soll, und somit kann eine Einstellung der Speichersteuerung 2100, der Speichervorrichtung 2200 oder der Pufferspeichervorrichtung (nicht gezeigt) gemäß dem intensiven Lesemodus geändert werden. Darüber hinaus kann in einer Ausführungsform die Speichersteuerung 2100 den Lesebefehl von dem Host empfangen, und somit kann die Speichersteuerung 2100 Daten aus der Speichervorrichtung 2200 lesen und die Daten an den Host liefern.
  • Die Speichersteuerung 2100 kann beispielsweise Komponenten wie einen Direktzugriffsspeicher (RAM), einen Prozessor, eine Host-Schnittstelle, eine Speicherschnittstelle und eine Fehlerkorrektureinrichtung umfassen.
  • Die Speichersteuerung 2100 kann über den Steckverbinder 2300 mit einer externen Vorrichtung kommunizieren bzw. in Verbindung treten. Die Speichersteuerung 2100 kann gemäß einem bestimmten Kommunikationsstandard mit einer externen Vorrichtung (z.B. der Hostvorrichtung) kommunizieren. Beispielsweise ist die Speichersteuerung 2100 eingerichtet, um mit einer externen Vorrichtung über zumindest einen von verschiedenen Kommunikationsstandards oder Schnittstellen zu kommunizieren, wie z.B. einen universellen seriellen Bus (Universal Serial Bus - USB), eine Multimedia-Karte (Multimedia Card - MMC), eine eingebettete MMC (embedded MMC - eMMC), Peripheral Component Interconnection (PCI), PCI Express (PCI-e oder PCIe), 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. Beispielsweise kann der Steckverbinder 2300 durch zumindest einen der verschiedenen oben beschriebenen Kommunikationsstandards oder Schnittstellen definiert sein.
  • Beispielsweise kann die Speichervorrichtung 2200 aus verschiedenen nichtflüchtigen Speicherelementen eingerichtet sein, wie einem elektrisch löschbaren und programmierbaren ROM (EEPROM), einem NAND-Flash-Speicher, einem NOR-Flash-Speicher, einem Phase-Change RAM (PRAM), einem resistiven RAM (ReRAM), einem ferroelektrischen RAM (FRAM) und einem Spin Transfer Torque-Magnetic RAM (STT-MRAM).
  • Die Speichersteuerung 2100 und die Vorrichtung 2200 können in eine Halbleitervorrichtung integriert werden, um eine Speicherkarte zu bilden. Zum Beispiel können die Speichersteuerung 2100 und die Speichervorrichtung 2200 in eine Halbleitereinrichtung integriert sein, um eine Speicherkarte wie eine PC-Karte (Personal Computer Memory card International Association - PCMCIA), eine Compact-Flash- (CF) Karte, 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 bilden.
  • 19 zeigt ein Blockdiagramm, das ein Solid-State-Laufwerk (Solid State Drive - SSD) darstellt, auf das ein Speichergerät gemäß einer Ausführungsform der vorliegenden Offenbarung angewendet wird.
  • Unter Bezugnahme auf 19 umfasst das SSD-System 3000 einen Host 3100 und ein SSD 3200. Die SSD 3200 tauscht über einen Signalanschluss 3001 ein Signal mit dem Host 3100 aus und wird über einen Stromanschluss 3002 mit Strom versorgt. Die SSD 3200 umfasst eine SSD-Steuerung 3210, eine Vielzahl von Flash-Speichern 3221 bis 322n, eine Hilfsstromversorgung 3230 und einen Pufferspeicher 3240 .
  • Gemäß einer Ausführungsform der vorliegenden Offenbarung kann die SSD-Steuerung 3210 die unter Bezugnahme auf 1 beschriebene Funktion der Speichersteuerung 200 durchführen.
  • Die SSD-Steuerung 3210 kann die Vielzahl von Flash-Speichern 3221 bis 322n als Antwort auf ein von dem Host 3100 empfangenes Signal steuern. Bei dem Signal kann es sich zum Beispiel um Signale auf der Grundlage einer Schnittstelle zwischen dem Host 3100 und dem SSD 3200 handeln. Das Signal kann beispielsweise ein Signal sein, das zumindest durch einen Kommunikationsstandard oder eine Schnittstelle definiert ist, wie z.B. einen universellen seriellen Bus (USB), eine Multimedia-Karte (MMC), eine eingebettete MMC (eMMC), Peripheral Component Interconnection (PCI), PCI express (PCI-e oder PCIe), 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.
  • Die Hilfsstromversorgung 3230 ist über den Stromanschluss 3002 mit dem Host 3100 verbunden. Die Hilfsstromversorgung 3230 kann die Energie von dem Host 3100 empfangen und die Energie ausladen. Die Hilfsstromversorgung 3230 kann das SSD 3200 mit Strom versorgen, wenn die Stromversorgung von dem Host 3100 nicht reibungslos funktioniert. Die Hilfsstromversorgung 3230 kann beispielsweise in dem SSD 3200 angeordnet sein oder außerhalb des SSD 3200 angeordnet sein. Beispielsweise kann die Hilfsstromversorgung 3230 auf einer Hauptplatine (Main Board) angeordnet sein und das SSD 3200 mit Hilfsstrom versorgen.
  • Der Pufferspeicher 3240 arbeitet als Pufferspeicher des SSD 3200. Der Pufferspeicher 3240 kann beispielsweise von dem Host 3100 empfangene Daten oder von der Vielzahl von Flash-Speichern 3221 bis 322n empfangene Daten vorübergehend speichern, oder er kann 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 umfassen. Eine Verwendung des Pufferspeichers 3240 kann gemäß der Steuerung der SSD-Steuerung 3210 geändert werden. In einer Ausführungsform kann die SSD-Steuerung 3210 die Verwendung des Pufferspeichers 3240 derart ändern, dass er für das Durchführen des Lesevorgangs besser geeignet ist.
  • 20 zeigt ein Blockdiagramm, das ein Benutzersystem darstellt, in dem ein Speichergerät gemäß einer Ausführungsform der vorliegenden Offenbarung verwendet wird.
  • Unter Bezugnahme auf 20 umfasst das Benutzersystem 4000 einen Anwendungsprozessor 4100, ein Speichermodul 4200, ein Netzwerkmodul 4300, ein Speichermodul 4400 und eine Benutzerschnittstelle 4500.
  • Der Anwendungsprozessor 4100 kann Komponenten, ein Betriebssystem (Operating System - OS), ein Benutzerprogramm oder dergleichen umfassen, die in dem Benutzersystem 4000 umfasst sind. Der Anwendungsprozessor 4100 kann beispielsweise Steuerungen, Schnittstellen, Grafik-Engines und dergleichen umfassen, die die in dem Benutzersystem 4000 umfassten Komponenten steuern. Der Anwendungsprozessor 4100 kann als System-on-chip (SoC) bereitgestellt werden. Der Anwendungsprozessor 4100 kann zunächst Befehle bestimmen, die dem Speichermodul 4400 in der Zukunft bereitgestellt werden sollen, und kann den Befehl, der angibt, dass der Lesebefehl bereitgestellt werden soll, dem Speichermodul 4400 im Voraus bereitstellen, bevor der Lesebefehl bereitgestellt wird.
  • Das Speichermodul 4200 kann als Hauptspeicher, Betriebsspeicher, Pufferspeicher oder Cache-Speicher des Benutzersystems 4000 arbeiten. Das Speichermodul 4200 kann einen flüchtigen Direktzugriffsspeicher wie einen DRAM, einen SDRAM, einen DDR SDRAM, einen DDR2 SDRAM, einen DDR3 SDRAM, einen LPDDR SDRAM, einen LPDDR2 SDRAM und einen LPDDR3 SDRAM oder einen nichtflüchtigen Direktzugriffsspeicher wie einen PRAM, einen ReRAM, einen MRAM und einen FRAM umfassen. Beispielsweise können der Anwendungsprozessor 4100 und das Speichermodul 4200 auf der Grundlage eines Package-on-Package (POP) in einer einzigen Halbleiterbaugruppe untergebracht bzw. verpackt sein.
  • Das Netzwerkmodul 4300 kann mit externen Vorrichtungen kommunizieren bzw. in Verbindung stehen. Beispielsweise kann das Netzwerkmodul 4300 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 zum Beispiel den Anwendungsprozessor 4100 umfassen.
  • Das Speichermodul 4400 kann Daten speichern. Beispielsweise kann das Speichermodul 4400 Daten speichern, die von dem Anwendungsprozessor 4100 empfangen werden. 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 Phase-Change RAM (PRAM), einem magnetischen RAM (MRAM), einem resistiven RAM (RRAM), einem NAND-Flash, einem NOR-Flash und einem dreidimensionalen NAND-Flash realisiert sein. Das Speichermodul 4400 kann beispielsweise als herausnehmbares Speichergerät (Wechsellaufwerk), wie eine Speicherkarte, und als externes Laufwerk des Benutzersystems 4000 bereitgestellt werden.
  • Das Speichermodul 4400 kann zum Beispiel eine Vielzahl von nichtflüchtigen Speichervorrichtungen umfassen, und die Vielzahl von nichtflüchtigen Speichervorrichtungen kann identisch mit der unter Bezugnahme auf 1 bezeichneten Speichervorrichtung 100 arbeiten. Das Speichermodul 4400 kann identisch mit dem unter Bezugnahme auf 1 beschriebenen Speichergerät 50 arbeiten.
  • Die Benutzerschnittstelle 4500 kann Schnittstellen zum Eingeben von Daten oder einer Anweisung an den Anwendungsprozessor 4100 oder zum Ausgeben von Daten an eine externe Vorrichtung umfassen. Die Benutzerschnittstelle 4500 kann beispielsweise Benutzereingabeschnittstellen wie eine Tastatur (Keyboard), ein Tastenfeld (Keypad), eine Taste, ein Touchpanel, einen Touchscreen, ein Touchpad, einen Touchball, eine Kamera, ein Mikrofon, einen Gyroskopsensor, einen Vibrations- bzw. Schwingungssensor und ein piezoelektrisches Element umfassen. Die Benutzerschnittstelle 4500 kann Benutzerausgabeschnittstellen umfassen, wie z.B. eine Flüssigkristallanzeige (Liquid Crystal Display - LCD), eine OLED - (organische Leuchtdioden) Anzeigevorrichtung, eine AMOLED- (Aktiv-Matrix-OLED) Anzeigevorrichtung, eine LED, einen Lautsprecher und einen Monitor.
  • Obwohl verschiedene Ausführungsformen zur Veranschaulichung dargestellt worden sind, wird es für den Fachmann offensichtlich sein, dass verschiedene Änderungen und Modifikationen vorgenommen werden können, ohne von der Lehre und dem Umfang der Erfindung, wie sie in den folgenden Ansprüchen definiert ist, abzuweichen. Darüber hinaus können die Ausführungsformen kombiniert werden, um zusätzliche Ausführungsformen zu bilden.

Claims (20)

  1. Speichergerät, aufweisend: eine Hauptspeichervorrichtung; eine Pufferspeichervorrichtung, die eine Vielzahl von Bereichen umfasst und als Puffer der Hauptspeichervorrichtung arbeitet; und eine Speichersteuerung, die eingerichtet ist, um eine oder mehrere von jeweiligen Verwendungen der Vielzahl von Bereichen als Antwort auf einen Vorbereitungsbefehl zu ändern, der angibt, dass ein oder mehrere Lesebefehle zum Anfordern von in der Hauptspeichervorrichtung gespeicherten Daten bereitgestellt werden sollen, die von einem externen Host empfangen werden.
  2. Speichergerät nach Anspruch 1, wobei der Vorbereitungsbefehl aufweist: ein Basis-Kopfsegment, umfassend Informationen, die angeben, dass der Vorbereitungsbefehl eine Abfrageanforderung zum Einstellen eines Betriebsmodus des Speichergeräts ist, und Informationen, die einen Typ einer Abfragefunktion angeben, die mit dem Betriebsmodus verbunden ist; und ein transaktionsspezifisches Feld, das Informationen über ein Flag umfasst, das angibt, ob ein intensiver Lesemodus aktiviert ist.
  3. Speichergerät nach Anspruch 2, wobei die Speichersteuerung ferner eingerichtet ist, um, wenn die Abfragefunktion eine Standardschreibanforderung ist, auf der Grundlage der Information über das Flag zu bestimmen, ob ein intensiver Lesemodus aktiviert werden soll, und wobei die Speichersteuerung die eine oder mehreren jeweiligen Verwendungen der Vielzahl von Bereichen gemäß der Bestimmung des intensiven Lesemodus ändert.
  4. Speichergerät nach Anspruch 3, wobei die Informationen über das Flag umfassen einen Operationscode, der angibt, ob der intensive Lesemodus aktiviert ist, und einen Flag-Identifikationswert, der ein Flag für den intensiven Lesemodus angibt.
  5. Speichergerät nach Anspruch 4, wobei die Speichersteuerung eingerichtet ist, um den intensiven Lesemodus zu aktivieren, wenn der Operationscode Informationen umfasst, die angeben, dass das Flag zu setzen ist.
  6. Speichergerät nach Anspruch 5, wobei die Vielzahl von Bereichen einen Lesepufferbereich, einen Schreibpufferbereich, einen Hintergrundvorgangspufferbereich und einen Abbildungspufferbereich umfasst.
  7. Speichergerät nach Anspruch 6, wobei die Speichersteuerung die eine oder mehreren jeweiligen Verwendungen der Vielzahl von Bereichen ändert, indem sie die Pufferspeichervorrichtung steuert, um zumindest einen Abschnitt eines Bereichs mit Ausnahme des Lesepufferbereichs und des Abbildungspufferbereichs unter der Vielzahl von Bereichen in einen zusätzlichen Lesepufferbereich zu ändern, wenn der intensive Lesemodus aktiviert ist.
  8. Speichergerät nach Anspruch 6, wobei die Speichersteuerung die eine oder mehreren jeweiligen Verwendungen der Vielzahl von Bereichen ändert, indem sie die Pufferspeichervorrichtung steuert, um zumindest einen Abschnitt eines Bereichs mit Ausnahme des Lesepufferbereichs und des Abbildungspufferbereichs unter der Vielzahl von Bereichen in einen zusätzlichen Abbildungspufferbereich zu ändern, wenn der intensive Lesemodus aktiviert ist.
  9. Speichergerät nach Anspruch 4, wobei die Speichersteuerung eingerichtet ist, um den intensiven Lesemodus zu deaktivieren, wenn der Operationscode eine Information umfasst, die angibt, dass das Flag zu löschen ist.
  10. Speichergerät nach Anspruch 9, wobei die Speichersteuerung ferner eingerichtet ist, um, wenn der intensive Lesemodus deaktiviert ist, die Pufferspeichervorrichtung zu steuern, um die eine oder mehreren jeweiligen Verwendung der Vielzahl von Bereichen auf voreingestellte Verwendungen zu initialisieren.
  11. Speichersteuerung, die eine Hauptspeichervorrichtung und eine Pufferspeichervorrichtung steuert, die als ein Puffer der Hauptspeichervorrichtung arbeitet und eine Vielzahl von Bereichen aufweist, die Speichersteuerung aufweisend: eine Host-Schnittstelle, die eingerichtet ist, um einen Vorbereitungsbefehl zu empfangen, der angibt, dass ein oder mehrere Lesebefehle zum Anfordern von in der Hauptspeichervorrichtung gespeicherten Daten von einem externen Host bereitgestellt werden sollen; und eine Pufferspeichervorrichtungs-Schnittstelle, die eingerichtet ist, um eine oder mehrere jeweilige Verwendungen der Vielzahl von Bereichen als Antwort auf den Vorbereitungsbefehl zu ändern.
  12. Speichersteuerung nach Anspruch 11, wobei die Pufferspeichervorrichtungs-Schnittstelle die eine oder mehreren jeweiligen Verwendungen der Vielzahl von Bereichen auf eine Verwendung in Bezug auf den Lesebefehl ändert.
  13. Die Speichersteuerung nach Anspruch 12, wobei die Vielzahl von Bereichen einen Lesepufferbereich, einen Schreibpufferbereich, einen Hintergrundvorgangspufferbereich und einen Abbildungspufferbereich umfasst.
  14. Speichersteuerung nach Anspruch 13, wobei die Pufferspeichervorrichtungs-Schnittstelle die eine oder die mehreren jeweiligen Verwendungen der Vielzahl von Bereichen ändert, indem die Pufferspeichervorrichtung gesteuert wird, um zumindest einen Abschnitt eines Bereichs mit Ausnahme des Lesepufferbereichs und des Abbildungspufferbereichs unter der Vielzahl von Bereichen in einen zusätzlichen Lesepufferbereich oder einen zusätzlichen Abbildungspufferbereich zu ändern.
  15. Hostvorrichtung, aufweisend: einen Host-Speicher, der eingerichtet ist, um darin Befehle zu speichern, die gemäß einer Anforderung eines Benutzers erzeugt werden; und eine Host-Steuerung, die eingerichtet ist, um einem Speichergerät auf der Grundlage der gespeicherten Befehle in dem Host-Speicher, die den einen oder die mehreren Lesebefehle umfassen, einen Vorbereitungsbefehl bereitzustellen, der angibt, dass ein oder mehrere Lesebefehle an das Speichergerät bereitgestellt werden sollen, wobei der Zubereitungsbefehl aufweist: ein Basis-Kopfsegment, umfassend Informationen, die angeben, dass der Vorbereitungsbefehl eine Abfrageanforderung zum Einstellen eines Betriebsmodus des Speichergeräts ist, und Informationen, die einen Typ einer Abfragefunktion angeben, die mit dem Betriebsmodus verbunden ist; und ein transaktionsspezifisches Feld, das Informationen über ein Flag umfasst, das angibt, ob ein intensiver Lesemodus aktiviert ist.
  16. Hostvorrichtung nach Anspruch 15, wobei die Host-Steuerung dem Speichergerät den Vorbereitungsbefehl bereitstellt, wenn eine Größe von Daten, die gemäß dem einen oder den mehreren Lesebefehlen aus dem Speichergerät gelesen werden sollen, gleich oder größer als eine voreingestellte Größe ist.
  17. Hostvorrichtung nach Anspruch 15, wobei die Host-Steuerung dem Speichergerät den Vorbereitungsbefehl bereitstellt, wenn ein Verhältnis des einen oder der mehreren Lesebefehle unter den gespeicherten Befehlen in dem Host-Speicher gleich oder größer als ein vorgegebenes Verhältnis ist.
  18. Hostvorrichtung nach Anspruch 15, wobei die Host-Steuerung dem Speichergerät den Vorbereitungsbefehl bereitstellt, wenn zumindest einige des einen oder der mehreren Lesebefehle nacheinander eine vorgegebene Anzahl von Malen oder mehr in dem Host-Speicher gespeichert werden.
  19. Hostvorrichtung nach Anspruch 15, wobei der Vorbereitungsbefehl Informationen umfasst, die sich auf eine Änderung einer oder mehrerer jeweiliger Verwendungen einer Pufferspeichervorrichtung in dem Speichergerät beziehen.
  20. Hostvorrichtung nach Anspruch 19, wobei die Host-Steuerung ferner eingerichtet ist, um auf der Grundlage der in dem Host-Speicher gespeicherten Befehle dem Speichergerät einen Befehl bereitzustellen, der Informationen in Bezug auf ein Initialisieren geänderter Verwendungen der Pufferspeichervorrichtung auf eine voreingestellte Verwendung umfasst.
DE102022209281.3A 2021-09-17 2022-09-07 Speichersteuerung, Speichergerät und Hostvorrichtung Pending DE102022209281A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2021-0125184 2021-09-17
KR20210125184 2021-09-17
KR10-2022-0035381 2022-03-22
KR1020220035381A KR20230041570A (ko) 2021-09-17 2022-03-22 메모리 컨트롤러, 스토리지 장치 및 호스트 장치

Publications (1)

Publication Number Publication Date
DE102022209281A1 true DE102022209281A1 (de) 2023-03-23

Family

ID=85383979

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022209281.3A Pending DE102022209281A1 (de) 2021-09-17 2022-09-07 Speichersteuerung, Speichergerät und Hostvorrichtung

Country Status (4)

Country Link
US (1) US20230096111A1 (de)
CN (1) CN115826846A (de)
DE (1) DE102022209281A1 (de)
TW (1) TW202314695A (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240004574A1 (en) * 2022-06-29 2024-01-04 Western Digital Technologies, Inc. Automatic data erase from data storage device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061749A (en) * 1997-04-30 2000-05-09 Canon Kabushiki Kaisha Transformation of a first dataword received from a FIFO into an input register and subsequent dataword from the FIFO into a normalized output dataword
US7184241B1 (en) * 2004-12-02 2007-02-27 Maxtor Corporation Disk drive that performs cold writes to erased buffer
US8788756B2 (en) * 2011-11-28 2014-07-22 Xilinx, Inc. Circuit for and method of enabling the transfer of data by an integrated circuit
US9734066B1 (en) * 2014-05-22 2017-08-15 Sk Hynix Memory Solutions Inc. Workload-based adjustable cache size
US10705972B2 (en) * 2016-09-13 2020-07-07 Advanced Micro Devices, Inc. Dynamic adaptation of memory page management policy
KR102653373B1 (ko) * 2018-09-13 2024-04-02 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US10884935B1 (en) * 2019-09-30 2021-01-05 EMC IP Holding Company LLC Cache allocation for controller boards based on prior input-output operations
US11099754B1 (en) * 2020-05-14 2021-08-24 EMC IP Holding Company LLC Storage array with dynamic cache memory configuration provisioning based on prediction of input-output operations
US11379369B1 (en) * 2021-01-15 2022-07-05 Coupang Corp. Systems and methods for dynamic in-memory caching of mappings into partitions

Also Published As

Publication number Publication date
TW202314695A (zh) 2023-04-01
US20230096111A1 (en) 2023-03-30
CN115826846A (zh) 2023-03-21

Similar Documents

Publication Publication Date Title
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
DE102018115163A1 (de) Routing von datenblöcken während einer thermodrosselung
DE102013016609A1 (de) Vorrichtung und Verfahren für ein Storage Class Memory mit niedrigem Energieverbrauch, niedriger Latenz und hoher Kapazität
DE102008015034A1 (de) Speicherkarte, Speicherkartensystem, Verfahren zum Steuern eines Hosts und Verfahren zum Betreiben einer Speicherkarte
DE102020200625A1 (de) Speichergerät und betriebsverfahren des speichergeräts
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE102021210515A1 (de) Speichereinrichtung, host-einrichtung, elektronische einrichtung mit speichereinrichtung und host-einrichtung und verfahren zum betrieb derselben
DE102021114457A1 (de) Abwicklung von lesen in vorrichtungen mit in zonen unterteiltem namensraum
DE112020005395T5 (de) Kapazitätserweiterung für speicher-untersysteme
DE102022208699A1 (de) Hostvorrichtung, speichersteuerung und computersystem mit derselben
DE102022101607A1 (de) Verwaltung der hostspeicherpufferzuweisung
CN112783432A (zh) 存储装置和其操作方法
DE102022209281A1 (de) Speichersteuerung, Speichergerät und Hostvorrichtung
CN111580744A (zh) 存储器控制器及其操作方法
DE112021001848T5 (de) Mehrere pinkonfigurationen von speichervorrichtungen
DE102022213293A1 (de) Speichersteuerung und verfahren zum betreiben derselben
KR20210154401A (ko) 스토리지 장치 및 그 동작 방법
US11625178B2 (en) Storage device and method of operating the same
DE102021006246A1 (de) Doppelt verschachtelte Programmierung einer Speichervorrichtung in einem Speicher-Untersystem
DE102021208963A1 (de) Speichervorrichtung und verfahren zum betreiben derselben
DE102021121974A1 (de) Speicher-steuereinheit und speichersystem, welches diese enthält
DE102022207151A1 (de) Speichereinrichtung und verfahren zum betreiben derselben
DE102019129561A1 (de) Speichersystem und betriebsverfahren dafür
DE102022209147A1 (de) Speichercontroller und betriebsverfahren dafür
DE102023104826A1 (de) Speichergerät, elektronische vorrichtung mit demselben und betriebsverfahren dafür