DE102018110012A1 - Speichervorrichtung, die in der Lage ist Jobs ohne Eingreifen eines Prozessors zu verwalten - Google Patents

Speichervorrichtung, die in der Lage ist Jobs ohne Eingreifen eines Prozessors zu verwalten Download PDF

Info

Publication number
DE102018110012A1
DE102018110012A1 DE102018110012.4A DE102018110012A DE102018110012A1 DE 102018110012 A1 DE102018110012 A1 DE 102018110012A1 DE 102018110012 A DE102018110012 A DE 102018110012A DE 102018110012 A1 DE102018110012 A1 DE 102018110012A1
Authority
DE
Germany
Prior art keywords
job
data
manager circuit
type
write
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
DE102018110012.4A
Other languages
English (en)
Inventor
Youngsik Kim
Jinwoo Kim
Hee Hyun Nam
Kyungbo Yang
Ji-Seung Youn
Younggeun LEE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102018110012A1 publication Critical patent/DE102018110012A1/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

Eine Speichervorrichtung (1300, 1300a, 1300b) weist einen nichtflüchtigen Speicher und einen Controller (1330a, 1330b) auf. Der Controller (1330a, 1330b) weist eine Jobverwalterschaltung (HW) und einen Prozessor (1339) auf. Die Jobverwalterschaltung (HW) verwaltet einen Job eines ersten Typs, welcher mit dem nichtflüchtigen Speicher verbunden ist, und der Prozessor (1339) verarbeitet einen Job eines zweiten Typs, welcher mit dem nichtflüchtigen Speicher verbunden ist. Die Jobverwalterschaltung (HW) verwaltet den Job des ersten Typs ohne Eingreifen des Prozessors (1339). Der Prozessor (1339) sieht einen Verwaltungsbefehl für die Jobverwalterschaltung (HW) in Antwort auf eine Benachrichtigung vor, welche von der Jobverwalterschaltung (HW) empfangen wird derart, dass der Job des zweiten Typs verarbeitet wird.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Es wird unter 35 U.S.C. § 119 die Priorität der koreanischen Patentanmeldung Nr. 10-2017-0083817 beansprucht, welche am 30. Juni 2017 beim koreanischen Amt für gewerblichen Rechtsschutz eingereicht wurde, deren gesamte Inhalte hierin durch Bezugnahme miteingebunden sind.
  • HINTERGRUND
  • Das vorliegende erfinderische Konzept bezieht sich auf eine elektronische Vorrichtung. Genauer bezieht sich das vorliegende erfinderische Konzept auf einen Betrieb und Konfigurationen einer Speichervorrichtung, welche Daten speichert und ausgibt.
  • Elektronische Vorrichtungen führen typischerweise Funktionen gemäß Operationen von elektronischen Schaltungen, welche darin enthalten sind, durch. In dem Fall einer Speichervorrichtung als einem Beispiel einer elektronischen Vorrichtung, welche eine Speichervorrichtung zum Speichern von Daten aufweist, speichert und/oder gibt die Speichervorrichtung Daten aus, und die Speichervorrichtung sieht demnach einen Nutzer mit einem Speicherdienst vor.
  • Da die Nutzung von verschiedenen elektronischen Vorrichtungen sowie die Menge von Daten, auf welche durch Nutzer zugegriffen werden kann, zunehmen, hat die Nachfrage nach Massenkapazitätsspeichervorrichtungen zugenommen. Zusätzlich hat die Nachfrage nach Hochleistungs- und Hocheffizienz-Speichervorrichtungen, welche in der Lage sind, schnell große Mengen von Daten zu verarbeiten, ebenso zugenommen.
  • Die meisten elektronischen Vorrichtungen sind mit einer zentralisierten Architektur implementiert, welche derart konfiguriert ist, dass eine spezifische Schaltung oder Komponente den Gesamtbetrieb steuert. In einer zentralisierten Architektur ist eine Leistungsfähigkeit einer elektronischen Vorrichtung abhängig von der Leistungsfähigkeit und dem Durchsatz der spezifischen Schaltung oder Komponente beschränkt. Demzufolge wurde eine zentralisierte Architektur ungeeignet, um Nachfragen nach elektronischen Hochleistungs- und Hocheffizienz-Vorrichtungen zufriedenzustellen.
  • KURZFASSUNG
  • Ausführungsformen des erfinderischen Konzepts sehen Konfigurationen und Operationen einer Speichervorrichtung vor, welche mit einer Hardware-automatisierten Architektur implementiert sind. In beispielhaften Ausführungsformen kann die Speichervorrichtung einfache Jobs durch eine dedizierte Hardwareschaltung verwalten, anstelle sich vollständig auf eine Steuerung eines Prozessors zu verlassen.
  • Ausführungsformen des erfinderischen Konzepts sehen eine Speichervorrichtung vor, welche einen nichtflüchtigen Speicher und einen Controller aufweist. Der Controller weist eine Jobverwalterschaltung und einen Prozessor auf. Die Jobverwalterschaltung verwaltet einen Job eines ersten Typs, welcher mit dem nichtflüchtigen Speicher verbunden ist, und der Prozessor verarbeitet einen Job eines zweiten Typs, welcher mit dem nichtflüchtigen Speicher verbunden ist. Die Jobverwalterschaltung verwaltet den Job des ersten Typs ohne Eingreifen des Prozessors. Der Prozessor sieht einen Verwaltungsbefehl für die Jobverwalterschaltung in Antwort auf eine Benachrichtigung vor, welche von dem Jobverwalter empfangen wird. Der Verwaltungsbefehl befiehlt ein Verarbeiten des Jobs des zweiten Typs.
  • Ausführungsformen des erfinderischen Konzepts sehen eine Speichervorrichtung vor, welche einen nichtflüchtigen Speicher und einen Controller aufweist. Der Controller weist eine Jobverwalterschaltung und einen Prozessor auf. Die Jobverwalterschaltung verwaltet einen Job eines ersten Typs, welcher mit dem nichtflüchtigen Speicher verbunden ist, und der Prozessor verarbeitet einen Job eines zweiten Typs, welcher mit dem nichtflüchtigen Speicher verbunden ist. Der Prozessor greift in den Job des ersten Typs nicht ein während der Job des ersten Typs normal durch die Jobverwalterschaltung verwaltet wird. Der Prozessor gibt einen Verwaltungsbefehl aus, welcher ein Verarbeiten des Jobs des zweiten Typs befiehlt, wenn eine Einschreitbedingung erfüllt ist, während der Prozessor in den Job des ersten Typs nicht eingreift.
  • Ausführungsformen des erfinderischen Konzepts sehen eine Speichervorrichtung vor, welche einen nichtflüchtigen Speicher und einen Controller aufweist. Der Controller steuert einen Betrieb des nichtflüchtigen Speichers und weist eine Schreibverwalterschaltung, eine Leseverwalterschaltung, eine Datendomänen-Verwalterschaltung und einen Prozessor auf. Die Schreibverwalterschaltung verwaltet einen ersten Job eines ersten Typs, wobei der erste Job ein Speichern von Schreibdaten in dem nichtflüchtigen Speicher aufweist. Die Leseverwalterschaltung verwaltet einen zweiten Job des ersten Typs, wobei der zweite Job ein Ausgeben von Lesedaten nach außerhalb des Controllers aufweist. Die Datendomänen-Verwalterschaltung erhält Information über einen Status von wenigstens einem des nichtflüchtigen Speichers, der Schreibdaten und der Lesedaten hinsichtlich einer Leistungsfähigkeit des ersten Jobs und des zweiten Jobs. Der Prozessor verarbeitet einen dritten Job eines zweiten Typs, welcher mit dem nichtflüchtigen Speicher verbunden ist. Die Datendomänen-Verwalterschaltung sieht eine Benachrichtigung für den Prozessor basierend auf der erlangten Information vor. Der Prozessor greift in den ersten Job und den zweiten Job nicht ein, wenn die Benachrichtigung von der Datendomänen-Verwalterschaltung nicht empfangen wird.
  • Ausführungsformen des erfinderischen Konzepts sehen eine Speichervorrichtung vor, welche einen nichtflüchtigen Speicher und einen Controller aufweist. Der nichtflüchtige Speicher speichert Schreibdaten und gibt Lesedaten aus. Der Controller weist einen ersten Pfad zum Übertragen der Schreibdaten zu dem nichtflüchtigen Speicher, einen zweiten Pfad zum Übertragen der ausgegebenen Lesedaten nach außerhalb des Controllers und einen Prozessor auf. Wenn ein Fehler oder eine Ausnahme hinsichtlich des Übertragens der Schreibdaten zu dem nichtflüchtigen Speicher entlang des ersten Pfades oder eines Ausgebens der Ausgangsdaten zu außerhalb entlang des zweiten Pfades auftritt, gibt der Prozessor einen Verwaltungsbefehl aus, welcher eine Verwaltungsoperation leitet, welche auf wenigstens einem des ersten Pfads und des zweiten Pfads durchgeführt wird. Wenn der Fehler oder die Ausnahme nicht auftritt, greift der Prozessor in einem normalen Betrieb, welcher auf dem ersten Pfad und dem zweiten Pfad durchgeführt wird, nicht ein.
  • Ausführungsformen des erfinderischen Konzepts sehen eine Speichervorrichtung vor, welche einen nichtflüchtigen Speicher, einen Controller und einen Pufferspeicher aufweist. Der Controller weist eine Jobverwalterschaltung und einen Prozessor auf. Die Jobverwalterschaltung verwaltet einen Job eines ersten Typs, welcher mit dem nichtflüchtigen Speicher verbunden ist, und der Prozessor verarbeitet einen Job eines zweiten Typs, welcher mit dem nichtflüchtigen Speicher verbunden ist. Der Pufferspeicher speichert erste Metadaten und zweite Metadaten. Die ersten Metadaten werden erzeugt oder referenziert, wenn der Job des ersten Typs durch die Jobverwalterschaltung verwaltet wird, und die zweiten Metadaten werden erzeugt oder referenziert, wenn der Job des zweiten Typs durch den Prozessor verarbeitet wird. Der Prozessor greift nicht in den Job des ersten Typs ein, während der Job des ersten Typs normalerweise durch die Jobverwalterschaltung verwaltet wird. Der Prozessor greift in ein Speichern der ersten Metadaten in den Pufferspeicher durch die Jobverwalterschaltung und ein Lesen der ersten Metadaten aus dem Pufferspeicher durch die Jobverwalterschaltung nicht ein.
  • Gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts können einfache Jobs, welche relativ häufig durchgeführt werden, durch eine dedizierte Hardwareschaltung ohne ein Eingreifen eines Prozessors verwaltet werden. Demzufolge kann eine Leistungsfähigkeit einer Speichervorrichtung nicht von einer Leistungsfähigkeit des Prozessors und einen Durchsatz eines Pufferspeichers abhängen, und ein Leistungsverbrauch und eine Wärmeemission des Prozessors und des Pufferspeichers können abnehmen. Als ein Ergebnis kann eine Hocheffizienz-Speichervorrichtung, welche in der Lage zu einer hohen Leistungsfähigkeit ist, vorgesehen werden.
  • Figurenliste
  • Die obigen und andere Aufgaben und Merkmale werden aus der folgenden Beschreibung unter Bezugnahme auf die folgenden Figuren deutlich werden, wobei gleiche Bezugszeichen sich auf gleiche Teile über die verschiedenen Figuren hinweg beziehen, solange nicht anderweit spezifiziert, und wobei:
    • 1 ein Blockschaltbild einer beispielhaften Konfiguration eines elektronischen Systems veranschaulicht, welches eine Speichervorrichtung gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts aufweist;
    • 2 ein Blockschaltbild einer beispielhaften Konfiguration, welche mit einer Speichervorrichtung der 1 verbunden ist, veranschaulicht;
    • 3 ein Blockschaltbild veranschaulicht, welches beispielhafte Operationen einer Speichervorrichtung der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts beschreibt;
    • 4 ein Blockschaltbild veranschaulicht, welches beispielhafte Operationen einer Speichervorrichtung der 2 gemäß weiteren beispielhaften Ausführungsformen des erfinderischen Konzepts beschreibt;
    • 5 ein Blockschaltbild einer beispielhaften Konfiguration eines Controllers der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts veranschaulicht;
    • 6 ein Konzeptdiagramm einer beispielhaften Konfiguration eines Pakets der 5 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts veranschaulicht;
    • 7 ein Blockschaltbild, welches eine beispielhafte Schreiboperation beschreibt, welche in einer Speichervorrichtung der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts durchgeführt wird, veranschaulicht;
    • 8 ein Blockschaltbild, welches eine beispielhafte Schreiboperation beschreibt, welche in einer Speichervorrichtung der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts durchgeführt wird, veranschaulicht;
    • 9 ein Flussdiagramm, welches eine beispielhafte Schreiboperation beschreibt, welche in einer Speichervorrichtung der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts durchgeführt wird, veranschaulicht;
    • 10 ein Blockschaltbild veranschaulicht, welches eine beispielhafte Leseoperation beschreibt, welche in einer Speichervorrichtung der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts durchgeführt wird;
    • 11 ein Blockschaltbild veranschaulicht, welches eine beispielhafte Leseoperation beschreibt, welche in einer Speichervorrichtung der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts durchgeführt wird;
    • 12 ein Blockschaltbild veranschaulicht, welches eine beispielhafte Leseoperation beschreibt, welche in einer Speichervorrichtung der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts durchgeführt wird;
    • 13 ein Flussdiagramm veranschaulicht, welches eine beispielhafte Leseoperation beschreibt, welche in einer Speichervorrichtung der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts durchgeführt wird;
    • 14 ein Blockschaltbild veranschaulicht, welches eine beispielhafte Verwaltungsoperation beschreibt, welche in einer Speichervorrichtung der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts durchgeführt wird;
    • 15 ein Flussdiagramm veranschaulicht, welches eine beispielhafte Verwaltungsoperation beschreibt, welche in einer Speichervorrichtung der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts durchgeführt wird;
    • 16 ein Flussdiagramm veranschaulicht, welches einen Gesamtbetrieb einer Speichervorrichtung der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts beschreibt; und
    • 17 ein Blockschaltbild einer beispielhaften Konfiguration veranschaulicht, welche mit einer Speichervorrichtung der 1 verbunden ist.
  • DETAILLIERTE BESCHREIBUNG VON BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
  • Untenstehend werden einige beispielhafte Ausführungsformen im Detail und klar unter Bezugnahme auf beigefügte Zeichnungen beschrieben werden derart, dass Fachleute leicht das erfinderische Konzept implementieren können.
  • Wie es im Feld der erfinderischen Konzepte traditionell ist, können Ausführungsformen in Einheiten von Blöcken beschrieben und veranschaulicht werden, welche eine beschriebene Funktion oder Funktionen ausführen. Diese Blöcke, auf welche hierin als Einheiten oder Module oder dergleichen Bezug genommen werden kann, sind physikalisch durch analoge und/oder digitale Schaltungen wie beispielsweise Logikgatter, integrierte Schaltungen, Mikroprozessoren, Mikrocontroller, Speicherschaltungen, passive elektronische Komponenten, aktive elektronische Komponenten, optische Komponenten, festverdrahtete Schaltungen und dergleichen implementiert, und können optional durch Firmware und/oder Software betrieben werden. Die Schaltungen können beispielsweise in einem oder mehreren Halbleiterchips ausgeführt sein oder auf Substratträgern wie beispielsweise gedruckten beziehungsweise bedruckten Leiterplatten und dergleichen. Solange nicht anderweitig angezeigt, können die Schaltungen, welche einen Block bilden, durch dedizierte Hardware oder durch einen Prozessor (beispielsweise einen oder mehrere programmierte Mikroprozessoren und verbundene Schaltungen) implementiert sein oder durch eine Kombination von dedizierter Hardware, um einige Funktionen des Blocks durchzuführen, und einen Prozessor, um andere Funktionen des Blocks durchzuführen. Jeder Block der Ausführungsformen kann physikalisch in zwei oder mehr interagierende und diskrete Blöcke geteilt sein, ohne von dem Umfang der erfinderischen Konzepte abzuweichen. Ähnlich können die Blöcke der Ausführungsformen physikalisch in komplexere Blöcke kombiniert werden, ohne vom Umfang der erfinderischen Konzepte abzuweichen.
  • 1 veranschaulicht ein Blockschaltbild einer beispielhaften Konfiguration eines elektronischen Systems 1000, welches eine Speichervorrichtung 1300 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts aufweist.
  • Das elektronische System 1000 weist einen Hauptprozessor 1101, einen Arbeitsspeicher 1200, die Speichervorrichtung 1300, einen Kommunikationsblock 1400, eine Nutzerschnittstelle 1500 und einen Bus 1600 auf. Beispielsweise kann das elektronische System 1000 eines von elektronischen Vorrichtungen wie beispielsweise einem Desktopcomputer, einem Laptopcomputer, einem Tabletcomputer, einem Smartphone, einer tragbaren Vorrichtung, einer Videospielekonsole, einer Workstation, einem Server, einem Elektrofahrzeug, einem Haushaltsgerät, einem medizinischen Gerät und/oder dergleichen sein.
  • Der Hauptprozessor 1101 kann den Gesamtbetrieb des elektronischen Systems 1000 steuern. Der Hauptprozessor 1101 kann verschiedene Arten von arithmetischen Operationen und/oder logischen Operationen verarbeiten. Dazu kann der Hauptprozessor 1101 eine Spezialzwecklogikschaltung (beispielsweise ein feldprogrammierbares Gate-Array (FPGA = field programmable gate array = feldprogrammierbares Gate-Array), anwendungsspezifische integrierte Chips (ASICs = application specific integrated chips = anwendungsspezifische integrierte Chips) und/oder dergleichen) aufweisen. Beispielsweise kann der Hauptprozessor 1101 einen oder mehrere Prozessorkerne aufweisen und kann mit einem Allgemeinzweckprozessor, einem Spezialzweckprozessor oder einem Anwendungsprozessor implementiert sein.
  • Der Arbeitsspeicher 1200 kann Daten speichern, welche in einer Operation des elektronischen Systems 1000 verwendet werden. Beispielsweise kann der Arbeitsspeicher 1200 vorübergehend Daten speichern, welche durch den Hauptprozessor 1101 verarbeitet werden oder zu verarbeiten sind. Der Arbeitsspeicher 1200 kann einen flüchtigen Speicher wie beispielsweise einen dynamischen Direktzugriffspeicher (DRAM = Dynamic Random Access Memory = dynamischer Direktzugriffsspeicher), einen synchronen DRAM (SDRAM = Synchronous DRAM = synchronen DRAM) und/oder dergleichen aufweisen, und/oder einen nichtflüchtigen Speicher wie beispielsweise einen Phasenübergangs-RAM (PRAM = Phase-change RAM = Phasenübergangs-RAM), einen magnetoresistiven RAM (MRAM = Magneto-restitiv RAM = magnetoresistiver RAM), einen resistiven RAM (ReRAM = Resistiv RAM = resistiver RAM), einen ferroelektrischen RAM (FRAM = Ferroelectric RAM = ferroelektrischer RAM) und/oder dergleichen.
  • Die Speichervorrichtung 1300 kann eine oder mehrere Speichervorrichtungen und einen Controller aufweisen. Die eine oder mehrere Speichervorrichtungen der Speichervorrichtung 1300 können Daten unabhängig davon, ob Leistung zugeführt wird, speichern. Beispielsweise kann die Speichervorrichtung 1300 einen nichtflüchtigen Speicher wie beispielsweise einen Flashspeicher, einen PRAM, einen MRAM, einen ReRAM, einen FRAM und/oder dergleichen aufweisen. Beispielsweise kann die Speichervorrichtung 1300 ein Speichermedium wie beispielsweise ein Festkörperlaufwerk (SSD = Solid State Drive = Festkörperlaufwerk), einen Kartenspeicher, einen eingebetteten Speicher und/oder dergleichen aufweisen.
  • Der Kommunikationsblock 1400 kann mit einer externen Vorrichtung/System des elektronischen Systems 1000 kommunizieren. Beispielsweise kann der Kommunikationsblock 1400 wenigstens eines von verschiedenen Drahtlos-Kommunikationsprotokollen wie beispielsweise Long Term Evolution (LTE), Worldwide Interoperability for Microwave Access (WIMAX), Global System for Mobile Communication (GSM), Code Division Multiple Access (CDMA), Bluetooth™, Near Field Communication (NFC), Wireless Fidelity (Wi-Fi), Radio Frequency Identification (RFID), und/oder dergleichen, und/oder wenigstens eines von verschiedenen Draht-Kommunikationsprotokollen wie beispielsweise Transfer Control Protocol/Internet Protocol (TCP/IP), Universal Serial Bus (USB), Firewire™, und/oder dergleichen unterstützen.
  • Die Nutzerschnittstelle 1500 kann eine Kommunikationsentscheidung (communication arbitration) zwischen einem Nutzer und dem elektronischen System 1000 durchführen. Beispielsweise kann die Nutzerschnittstelle 1500 Eingangsschnittstellen wie beispielsweise eine Tastatur, eine Maus, ein Keypad, einen Knopf, ein Touchpanel, einen Touchscreen, ein Touchpad, einen Touchball, eine Kamera, ein Mikrofon, einen Kreiselsensor, einen Vibrationssensor und/oder dergleichen aufweisen. Beispielsweise kann die Nutzerschnittstelle 1500 Ausgangsschnittstellen wie beispielsweise eine Flüssigkristall (LCD = Liquid Cristall Display = Flüssigkristall)-Vorrichtung, eine Leuchtdioden (LED)-Anzeigevorrichtung, eine organische LED (OLED)-Anzeigevorrichtung, eine Aktivmatix-OLED (AMOLED)-Anzeigevorrichtung, einen Lautsprecher, einen Motor, ein LED-Leuchtmittel und/oder dergleichen aufweisen.
  • Der Bus 1600 kann einen Kommunikationspfad zwischen Komponenten des elektronischen Systems 1000 vorsehen. Die Komponenten des elektronischen System 1000 können Daten basierend auf einem Busformat des Busses 1600 miteinander austauschen. Beispielsweise kann das Busformat eines oder mehrere von verschiedenen Schnittstellenprotokollen aufweisen wie beispielsweise USB, Small Computer System Interface (SCSI), Peripheral Component Interconnect Express (PCIe), Mobile PCIe (M-PCIe), Advanced Technology Attachment (ATA), parallel ATA (PATA), Serial ATA (SATA), Serial Attached SCSI (SAS), Integrated Drive Electronics (IDE), Enhanced IDE (EIDE), Nonvolatile Memory Express (NVMe), Universal Flash Storage (UFS), und/oder dergleichen.
  • Die Speichervorrichtung 1300 kann mit einer Hardware-automatisierten Architektur gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts implementiert sein. In den beispielhaften Ausführungsformen kann die Speichervorrichtung 1300 einfache Jobs durch ein Verwenden einer dedizierten Hardwareschaltung verwalten, anstelle sich vollständig auf die Steuerung eines internen Prozessors zu verlassen. Die einfachen Jobs, welche relativ häufig durchgeführt werden, können durch die dedizierte Hardwareschaltung ohne Eingreifen des internen Prozessors verwaltet werden, und demnach können die Leistungsfähigkeit und Effizienz der Speichervorrichtung 1300 verbessert werden. Beispielhafte Konfigurationen und Operationen der Speichervorrichtung 1300 werden unter Bezugnahme auf die 2 bis 17 beschrieben werden.
  • Die Speichervorrichtung 1300 wird wie folgt unter Bezugnahme auf die 2 bis 17 wie bezeichnet beschrieben werden, das erfinderische Konzept ist jedoch nicht auf die beschriebenen Ausführungsformen beschränkt. Die beispielhaften Ausführungsformen können in einem beliebigen Typ von Vorrichtung einschließlich einer Speichervorrichtung eingesetzt werden. Beispielsweise können die beispielhaften Ausführungsformen auch für einen flüchtigen Speicher und/oder einen nichtflüchtigen Speicher, welcher in dem Arbeitsspeicher 1200 enthalten ist, eingesetzt werden. Die folgenden Beschreibungen sind vorgesehen, um ein besseres Verständnis zu erleichtern und sind nicht vorgesehen, um das erfinderische Konzept zu beschränken.
  • 2 veranschaulicht ein Blockschaltbild einer beispielhaften Konfiguration, welche mit der Speichervorrichtung 1300 der 1 verbunden ist. Das elektronische System 1000 der 1 kann als ein elektronisches System 1000a, welches in 2 gezeigt ist, ausgeführt sein, wodurch die Speichervorrichtung 1300 und der Hauptprozessor 1101 der 1 in 2 jeweils als eine Speichervorrichtung 1300a und ein Host 1100a ausgeführt sind. Das elektronische System 1000a der 2 weist weiterhin einen Arbeitsspeicher 1200, einen Kommunikationsblock 1400, eine Nutzerschnittstelle 1500 und einen Bus 1600 der 1 auf, welche Merkmale aus der 2 zur Einfachheit ausgelassen worden sind.
  • Wie unter Bezugnahme auf 1 beschrieben ist, kann der Hauptprozessor 1101 mit der Speichervorrichtung 1300 über den Bus 1600 kommunizieren. In der Ausführungsform, wie sie unter Bezugnahme auf 2 beschrieben ist, wird auf ein Objekt, welches in der Lage ist, auf die Speichervorrichtung 1300a zuzugreifen, Bezug genommen als ein „Host“ 1100a. Der Hauptprozessor 1101 kann ein Beispiel von verschiedenen Objekten sein, welche in der Lage sind, als der Host 1100 zu arbeiten. Es sollte jedoch verstanden werden, dass das erfinderische Konzept nicht auf den Host 1100a als ein Hauptprozessor wie beispielsweise in 1 gezeigt beschränkt sein sollte.
  • Zurückkehrend zu 2 kann der Host 1100a Daten DAT mit der Speichervorrichtung 1300a austauschen. Die Speichervorrichtung 1300a kann einen Speicherdienst für den Host 1100a in Antwort auf einen Befehl CMD, welcher von dem Host 1100a empfangen wird, vorsehen.
  • Beispielsweise kann der Host 1100a einen Schreibbefehl (das heißt CMD) und Schreibdaten (das heißt DAT) für die Speichervorrichtung 1300a vorsehen. Die Speichervorrichtung 1300a kann die angeforderten Schreibdaten in Antwort auf den Schreibbefehl speichern. Beispielsweise kann der Host 1100a einen Lesebefehl (das heißt CMD) für die Speichervorrichtung 1300a vorsehen. Die Speichervorrichtung 1300a kann angeforderte Lesedaten (das heißt DAT) zu dem Host 1100a in Antwort auf den Lesebefehl ausgeben.
  • Die Speichervorrichtung 1300a weist eine oder mehrere Speichervorrichtungen 1310 und einen Controller 1330a auf. 2 veranschaulicht zwei Speichervorrichtungen 1311 und 1319, die Anzahl von Speichervorrichtungen jedoch, welche in der Speichervorrichtung 1300a enthalten ist, kann verschiedentlich geändert oder modifiziert werden.
  • Jede der Speichervorrichtungen 1311 und 1319 kann Daten, welche durch den Host 1100a angefordert werden, speichern oder ausgeben. Dazu kann jede der Speichervorrichtungen 1311 und 1319 (einen) Speicherbereich(e) zum Speichern von Daten aufweisen. Die Speichervorrichtungen 1311 und 1319 können einen nichtflüchtigen Speicher wie beispielsweise einen Flashspeicher, einen PRAM, einen MRAM, einen ReRAM, einen FRAM und/oder dergleichen aufweisen. Beispielsweise kann, wenn jede der Speichervorrichtungen 1311 und 1319 einen NAND-Typ Flashspeicher aufweist, jede der Speichervorrichtungen 1311 und 1319 eine Anordnung von Speicherzellen aufweisen, welche entlang einer Mehrzahl von Wortleitungen und einer Mehrzahl von Bitleitungen gebildet sind, und Operationen, welche auf die Speichervorrichtungen 1311 und 1319 gerichtet sind, können auf einer Seiteneinheit oder einer Blockeinheit eines Speicherbereichs durchgeführt werden. Wie jedoch unter Bezugnahme auf 1 beschrieben ist, können ein Typ und eine Konfiguration jeder der Speichervorrichtungen 1311 und 1319 verschiedentlich geändert oder modifiziert werden.
  • Ein Speicherbereich kann basierend auf einem Wert, welcher als eine „Adresse“ bezeichnet wird, identifiziert und angezeigt werden. Schreibdaten können in einem Speicherbereich gespeichert werden, welcher durch eine Adresse angezeigt wird, und Lesedaten können von einem Speicherbereich, welcher durch eine Adresse angezeigt wird, ausgegeben werden.
  • Der Host 1100a kann eine Adresse ADDR für die Speichervorrichtung 1300a vorsehen, um Daten hinsichtlich eines spezifischen Speicherbereichs der Speichervorrichtungen 1311 und 1319 auszutauschen. Die Speichervorrichtung 1300a kann die Speichervorrichtungen 1311 und 1319 basierend auf einer Anforderung (beispielsweise dem Befehl CMD) und der Adresse ADDR, welche von dem Host 1100a empfangen werden, steuern.
  • Indes kann die Adresse ADDR, welche durch den Host 1100a verarbeitet wird, unterschiedlich von einer Adresse sein, welche einen Speicherbereich in den Speichervorrichtungen 1311 und 1319 anzeigt. Beispielsweise kann auf die Adresse ADDR, welche durch den Host 1100a verarbeitet wird, Bezug genommen werden als eine „logische Adresse“, und auf eine Adresse in/für die Speichervorrichtungen 1311 und 1319 kann Bezug genommen werden als eine „physikalische Adresse“. Die Speichervorrichtung 1300a kann eine Adressübersetzung zwischen einer logischen Adresse, welche durch den Host 1100a verarbeitet wird, und einer physikalischen Adresse für die Speichervorrichtungen 1311 und 1319 durchführen, um die Speichervorrichtungen 1311 und 1319 geeignet zu steuern.
  • Der Controller 1330a kann den Gesamtbetrieb der Speichervorrichtung 1300a steuern. Beispielsweise kann der Controller 1330a Operationen der Speichervorrichtungen 1311 und 1319 zeitlich planen oder kann Signale/Daten, welche in der Speichervorrichtung 1300a verarbeitet werden, kodieren und dekodieren. Beispielsweise kann der Controller 1330a die Speichervorrichtungen 1311 und 1319 derart steuern, dass die Speichervorrichtungen 1311 und 1319 Daten speichern oder ausgeben.
  • Der Controller 1330a kann ein oder mehrere Hardwarekomponenten (beispielsweise eine analoge Schaltung, eine logische Schaltung und/oder dergleichen) aufweisen, welche konfiguriert sind, um einige Operationen, welche obenstehend beschrieben sind, und untenstehend zu beschreiben sind, durchzuführen. Zusätzlich kann der Controller 1330a ein oder mehrere Prozessorkerne aufweisen. Einige Operationen des Controllers 1330a, welche obenstehend beschrieben sind und untenstehend zu beschreiben sind, können mit einem Programmcode von Software und/oder Firmware implementiert sein und (ein) Prozessorkern(e) des Controllers 1330a kann (können) einen Befehlssatz des Programmcode ausführen. Der (die) Prozessorkern(e) des Controllers 1330a kann (können) verschiedene Arten von arithmetischen Operationen und/oder logischen Operationen durchführen, um den Befehlssatz auszuführen.
  • Ein Pufferspeicher 1350 kann Daten, welche in einer Operation der Speichervorrichtung 1300a verwendet werden, puffern. Beispielsweise kann der Pufferspeicher 1350 vorübergehend Daten speichern, welche durch den Controller 1330a referenziert werden. Der Pufferspeicher 1350 speichert jedoch keine Schreibdaten, welche in den Speichervorrichtungen 1311 und 1319 zu speichern sind, und Daten, welche von den Speichervorrichtungen 1311 und 1319 ausgegeben werden, welche untenstehend beschrieben werden. Anstelle dessen kann der Pufferspeicher 1350 als ein Hilfsspeicher zum Speichern von Metadaten vorgesehen sein, welche durch den Controller 1330a referenziert werden. Beispielsweise kann der Pufferspeicher 1350 einen flüchtigen Speicher wie beispielsweise einen statischen RAM (SRAM), einen DRAM, einen SDRAM und/oder dergleichen aufweisen, und/oder einen nichtflüchtigen Speicher wie beispielsweise einen Flashspeicher, einen PRAM, einen MRAM, einen ReRAM, einen FRAM und/oder dergleichen.
  • Die 3 und 4 veranschaulichen Blockschaltbilder, welche beispielhafte Operationen der Speichervorrichtung 1300a der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts beschreiben.
  • Bezug nehmend auf die 3 und 4 weist der Controller 1330a eine Verwalterschaltung HW für einen Job eines ersten Typs und einen Prozessor 1339 auf. Die Verwalterschaltung HW für den Job ersten Typs kann einen Job des ersten Typs, welcher mit den Speichervorrichtungen 1311 und 1319 verbunden ist, verwalten. Der Prozessor 1339 kann einen Job von einem zweiten Typ, welcher mit den Speichervorrichtungen 1311 und 1319 verbunden ist, verarbeiten. Beispielsweise kann der Job des ersten Typs einen einfachen Job aufweisen, welcher häufiger durchgeführt wird als der Job des zweiten Typs.
  • Beispielsweise kann der Job des ersten Typs eine Operation aufweisen, welche auf einer ersten Einheitsgröße eines Speicherbereichs der Speichervorrichtungen 1311 und 1319 durchgeführt wird. Beispielsweise kann die erste Einheitsgröße eine Seiteneinheitsgröße aufweisen. Beispielsweise kann der Job des ersten Typs allgemeine Operationen wie beispielsweise eine Schreiboperation zum Speichern von Schreibdaten in den Speichervorrichtungen 1311 und 1319, eine Leseoperation zum Ausgeben von gelesenen Daten aus den Speichervorrichtungen 1311 und 1319 und/oder dergleichen aufweisen.
  • Beispielsweise kann der Job des zweiten Typs eine Operation aufweisen, welche auf einer zweiten Einheitsgröße eines Speicherbereichs der Speichervorrichtungen 1311 und 1319 durchgeführt wird. Die zweite Einheitsgröße kann unterschiedlich von der ersten Einheitsgröße sein und kann beispielsweise eine Block/Unter-Block/Super-Block-Einheitsgröße aufweisen. Beispielsweise kann der Job des zweiten Typs Verwaltungsoperationen wie beispielsweise eine Speicherbereinigung, Abnutzungsausgleich (Wear-Leveling), Leseauffrischen, Fehlererfassung und Korrektur, Leistungsausfallschutz und/oder dergleichen aufweisen.
  • Beispielhafte Ausführungsformen basierend auf den obigen Beispielen werden wie folgt beschrieben werden. Solche beispielhaften Ausführungsformen sind jedoch vorgesehen, um ein besseres Verständnis zu erleichtern und sind nicht vorgesehen, um das erfinderische Konzept zu beschränken. Der Job des ersten Typs kann verschiedentlich geändert oder modifiziert werden, um einen einfachen Job zu verwalten, welcher häufig durchgeführt wird, ohne Eingreifen des Prozessors 1339. Zusätzlich kann der Job vom zweiten Typ verschiedentlich geändert oder modifiziert werden, um einen komplexen Job unter der Steuerung des Prozessors 1339 zu erzeugen. Ebenso können die erste Einheitsgröße und die zweite Einheitsgröße verschiedentlich geändert und modifiziert werden, und können identisch zueinander in einigen beispielhaften Ausführungsformen sein.
  • 3 veranschaulicht eine Operation, welche mit einem Job des ersten Typs verbunden ist. Beispielsweise kann der Job des ersten Typs eine Operation aufweisen, welche durch den Host 1100a angefordert ist. Der Job des ersten Typs kann gemäß einer Operation einer Hardwareschaltung oder dergleichen, welche in der Verwalterschaltung HW des Jobs des ersten Typs enthalten ist, ohne Eingreifen des Prozessors 1339 verwaltet werden.
  • Beispielsweise kann, während der Job des ersten Typs verwaltet wird, ein Eingreifen des Prozessors 1339 von allen Operationen, welche ein Zuweisen eines Pufferbereichs für Daten, ein Puffern von Daten, ein Triggern von Dateneingang/-ausgang, ein Steuern eines Pfades des Dateneingangs/-ausgangs und/oder dergleichen aufweisen, ausgeschlossen sein. Während der Job des ersten Typs normal durch die Verwalterschaltung HW des Jobs des ersten Typs verwaltet wird, greift der Prozessor 1339 in den Job des ersten Typs nicht ein und kommuniziert nicht mit dem Pufferspeicher 1350.
  • Wenn der Job des ersten Typs eine Schreiboperation beispielsweise aufweist, kann die Verwalterschaltung HW des Jobs des ersten Typs Schreibdaten, welche von dem Host 1100a empfangen werden, zu der einen oder mehreren Speichervorrichtungen 1310 entlang eines Schreibpfades übertragen. Wenn der Job des ersten Typs eine Leseoperation beispielsweise aufweist, kann die Verwalterschaltung HW des Jobs des ersten Typs Lesedaten, welche von der einen oder mehreren Speichervorrichtungen 1310 ausgegeben werden, zu dem Host 1100a entlang eines Lesepfades übertragen. Die Schreibdaten und die Lesedaten können in einer Paketeinheit eines Stroms (stream) PC_S jeweils entlang des Schreib- und Lese-Pfads übertragen werden.
  • In der Zwischenzeit speichert in der Operation, welche mit dem Job des ersten Typs verbunden ist, der Pufferspeicher 1350 die Schreibdaten, welche in dem einen oder der mehreren Speichervorrichtungen 1310 zu speichern sind, und/oder die Lesedaten, welche von dem einen oder den mehreren Speichervorrichtungen 1310 ausgegeben werden, nicht. Anstelle dessen können die Schreibdaten und die Lesedaten in einem internen Puffer der Verwalterschaltung HW des Jobs des ersten Typs verwaltet werden.
  • Eine beispielhafte Konfiguration der Hardwareschaltung, welche in der Verwalterschaltung HW des Jobs des ersten Typs enthalten ist, wird vollständiger unter Bezugnahme auf 5 beschrieben werden. Eine beispielhafte Konfiguration eines Pakets wird vollständiger unter Bezugnahme auf 6 beschrieben werden. Ein beispielhafter Job des ersten Typs wird vollständiger unter Bezugnahme auf die 7 bis 13 beschrieben werden.
  • 4 veranschaulicht eine Operation, welche mit einem Job des zweiten Typs verbunden ist. Beispielsweise kann der Job des zweiten Typs eine Operation aufweisen, welche unabhängig von oder in Abwesenheit einer Anforderung des Host 1100a durchgeführt wird. Der Job des zweiten Typs kann unter der Steuerung des Prozessors 1339 (beispielsweise basierend auf einem Programmcode oder Software und/oder Firmware, welche auf dem Prozessor ausgeführt wird) verarbeitet werden.
  • Beispielsweise kann die Verwalterschaltung HW des Jobs des ersten Typs einen Status überwachen, welcher mit Operationen der einen oder der mehreren Speichervorrichtungen 1310 und des Controllers 1330a verbunden ist. Die Verwalterschaltung HW des Jobs des ersten Typs kann eine Eingreifbedingung zum Auslösen eines Eingreifens des Prozessors 1339 basierend auf dem überwachten Status verwalten. Beispielsweise kann der überwachte Status damit verbunden sein, ob ein Fehler oder eine Ausnahme in Verbindung mit dem Job des ersten Typs auftritt (beispielsweise eine Schreiboperation oder eine Leseoperation). Beispielsweise kann die Eingreifbedingung erfüllt sein, wenn der Fehler oder die Ausnahme, welche mit dem Job des ersten Typs verbunden ist, auftritt.
  • Wenn die Eingreifbedingung erfüllt ist, während der Prozessor 1339 nicht in den Job des ersten Typs eingreift, kann die Verwalterschaltung HW des Jobs des ersten Typs den Prozessor 1339 mit einer Benachrichtigung vorsehen, welche Information über den überwachten Status aufweist. Demzufolge kann die Verwalterschaltung HW des Jobs des ersten Typs den Prozessor 1339 benachrichtigen, dass die Eingreifbedingung erfüllt ist.
  • Der Prozessor 1339 kann einen Verwaltungsbefehl zum Verarbeiten des Jobs des zweiten Typs ausgeben in Antwort auf die Benachrichtigung, welche von der Verwalterschaltung HW des Jobs des ersten Typs empfangen wird. Die Verwalterschaltung HW des Jobs des ersten Typs kann den Verwaltungsbefehl von dem Prozessor 1339 empfangen. Die Verwalterschaltung HW des Jobs des ersten Typs kann den Job des zweiten Typs direkt durch den Verwaltungsbefehl durchführen. Der Job des zweiten Typs kann eine Verwaltungsoperation zum Klären des überwachten Status (beispielsweise des Fehlers oder der Ausnahme, welche(r) mit dem Job des ersten Typs verbunden ist) aufweisen.
  • Beispielsweise kann der Job des zweiten Typs eine Verwaltungsoperation aufweisen, welche auf eine oder mehrere Speichervorrichtungen 1310 gerichtet ist. Die Verwalterschaltung HW des Jobs des ersten Typs kann mit der einen oder mehreren Speichervorrichtungen 1310 kommunizieren, um den Job des zweiten Typs (beispielsweise eine Verwaltungsoperation) unter der Steuerung des Prozessors 1339 durchzuführen. Ein beispielhafter Job des zweiten Typs wird vollständiger unter Bezugnahme auf die 14 und 15 beschrieben.
  • 5 veranschaulicht ein Blockschaltbild einer beispielhaften Konfiguration des Controllers 1330a der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts.
  • Der Controller 1330a weist eine Hostschnittstellenschicht 1331a, eine Speicherschnittstellenschicht 1332, eine Schreibverwalterschaltung 1333, eine Leseverwalterschaltung 1335, eine Datendomänen-Verwalterschaltung 1337 und den Prozessor 1339 auf. Beispielsweise können die Schreibverwalterschaltung 1333, die Leseverwalterschaltung 1335 und die Datendomänen-Verwalterschaltung 1337 in der Verwalterschaltung HW des Jobs des ersten Typs der 3 und 4 enthalten sein.
  • Die Hostschnittstellenschicht 1331a kann eine Schnittstellenverbindung mit dem Host 1100a bilden. Beispielsweise kann die Hostschnittstellenschicht 1331a einen Befehl (das heißt CMD) und Daten (das heißt DAT), welche von dem Host 1100a empfangen werden, in ein Format umwandeln, welches in dem Controller 1330a verarbeitet wird. Beispielsweise kann die Hostschnittstellenschicht 1331a Daten, welche in dem Controller 1330a verarbeitet werden, zu einem Format umwandeln, welches in dem Host 1100a gehandhabt wird, und kann Daten (das heißt DAT) des umgewandelten Formats zu dem Host 1100a ausgeben.
  • Die Speicherschnittstellenschicht 1332 kann eine Schnittstelle mit der einen oder den mehreren Speichervorrichtungen 1310 bilden. Beispielsweise kann die Speicherschnittstellenschicht 1332 Schreibdaten und einen damit verbundenen Befehl in ein Format umwandeln, welches in der einen oder mehreren Speichervorrichtungen 1310 gehandhabt wird. Beispielsweise kann die Speicherschnittstellenschicht 1332 Lesedaten, welche von dem einen oder den mehreren Speichervorrichtungen 1310 empfangen werden, in ein Format umwandeln, welches in dem Controller 1330a verarbeitet wird.
  • Die Schreibverwalterschaltung 1333 kann den Job des ersten Typs verwalten. Beispielsweise kann die Schreibverwalterschaltung 1333 eine Schreiboperation (welche ebenso als ein erster Job von einem ersten Typ charakterisiert werden kann) zum Speichern von Schreibdaten in der einen oder den mehreren Speichervorrichtungen 1310 verwalten. In diesem Beispiel kann die Schreibverwalterschaltung 1333 auf einem Schreibpfad (das heißt einem ersten Pfad) zum Übertragen von Schreibdaten, welche von dem Host 1100a empfangen werden, zu der einen oder mehreren Speichervorrichtungen 1310 sein.
  • Die Leseverwalterschaltung 1335 kann den Job des ersten Typs verwalten. Beispielsweise kann die Leseverwalterschaltung 1335 eine Leseoperation (welche ebenso als ein zweiter Job von einem ersten Typ charakterisiert werden kann) zum Ausgeben von gelesenen Daten nach außerhalb des Controllers 1330a (beispielsweise zu dem Host 1100a) verwalten. In diesem Beispiel kann die Leseverwalterschaltung 1335 auf einem Lesepfad (das heißt einem zweiten Pfad) zum Übertragen von gelesenen Daten, welche von der einen oder den mehreren Speichervorrichtungen 1310 nach außerhalb des Controllers 1330a ausgegeben werden, sein.
  • Die Datendomänen-Verwalterschaltung 1337 kann Information über einen Status wenigstens einer der einen oder mehreren Speichervorrichtungen 1310, Schreibdaten und/oder Lesedaten mit Hinsicht auf ein Ausführen des Jobs des ersten Typs erlangen. Die Schreibverwalterschaltung 1333 und die Leseverwalterschaltung 1335 können den Job des ersten Typs durchführen und können demnach Information über verschiedene Stati zu der Datendomänen-Verwalterschaltung 1337 vorsehen. Die Datendomänen-Verwalterschaltung 1337 kann einen Status, welcher mit Operationen der einen oder mehreren Speichervorrichtungen 1310 und des Controllers 1330a verbunden sind, basierend auf der erhaltenen Information überwachen.
  • Der Prozessor 1339 kann einen oder mehrere Prozessorkerne aufweisen. Der Prozessor 1339 kann einen Programmcode von Software (SW) und/oder Firmware (FW) gemäß einer Operation eines Prozessorkerns ausführen. Der Prozessor 1339 kann den Programmcode oder Software und/oder Firmware ausführen, um den Job des zweiten Typs zu verarbeiten.
  • Ein Befehl und Daten können in einer Paketeinheit eines Stroms (stream) übertragen werden. Dazu kann in einigen beispielhaften Ausführungsformen die Hostschnittstellenschicht 1331a einen Paketbilder (packetizer) PCZ aufweisen.
  • Der Paketbilder PCZ kann einen Befehl und Daten, welche von dem Host 1100a empfangen werden, mit zusätzlicher Information (beispielsweise einem Ziel eines Pakets, einer Adresse, einem Fehlerüberprüfungsbit und/oder dergleichen) kombinieren, um ein Paket PCW1 oder ein Paket PCR1 zu erzeugen. Wenn ein Schreibbefehl und Schreibdaten von dem Host 1100a empfangen werden, kann der Paketbilder PCZ das Paket PCW1, welches einen Kopfabschnitt, einen Datenabschnitt und einen Endabschnitt aufweist, erzeugen. Beispielsweise kann der Kopfabschnitt Information des Schreibbefehls aufweisen, und der Datenabschnitt kann die Schreibdaten aufweisen. Der Endabschnitt kann Information aufweisen, welche geeignet ist, um die Vollendung des Datenabschnitts anzuzeigen.
  • Wenn ein Lesebefehl von dem Host 1100a empfangen wird, kann der Paketbilder PCZ das Paket PCR1 erzeugen, welches einen Kopfabschnitt aufweist. Der Kopfabschnitt kann Information über den Lesebefehl aufweisen. Daten können hinsichtlich der Leseoperation nicht empfangen werden, und demnach kann in einigen Fällen das Paket PCR einen Datenabschnitt und einen Endabschnitt nicht aufweisen.
  • Der Paketbilder PCZ kann eine Hardwareschaltung aufweisen, welche konfiguriert ist, um das Paket PCW1 oder das Paket PCR1 basierend auf einem Befehl und Daten, welche von dem Host 1100a empfangen werden, zu erzeugen. Eine beispielhafte Konfiguration eines Pakets, welches in dem Controller 1330a verarbeitet wird, wird vollständiger unter Bezugnahme auf 6 beschrieben werden.
  • Die Schreibverwalterschaltung 1333 weist einen ersten internen Puffer 1333a und einen Pufferverwalter 1333b auf. Die Schreibverwalterschaltung 1333 kann das Paket PCW1 oder das Paket PCR1 empfangen. Wenn der Kopfabschnitt des Pakets PCW1 oder des Pakets PCR1 Information über einen Befehl aufweist, kann die Schreibverwalterschaltung 1333 bestimmen, ob das empfangene Paket mit einer Schreiboperation oder einer Leseoperation verbunden ist, unter Bezugnahme auf den Kopfabschnitt.
  • Wenn die Schreibverwalterschaltung 1333 das Paket PCW1, welches mit einer Schreiboperation verbunden ist, empfängt, kann der erste interne Puffer 1333a verschiedene Information puffern und Schreibdaten, welche in dem Paket PCW1 enthalten sind, schreiben. Beispielsweise kann der erste interne Puffer 1333a eine Speichervorrichtung wie beispielsweise einen SRAM aufweisen. Der Pufferverwalter 1333b kann eine Zuweisung eines Pufferbereichs des ersten internen Puffers 1333a verwalten derart, dass eine Gefahr oder eine Kollision nicht auftritt, wenn der erste interne Puffer 1333a Information speichert.
  • Die Schreibverwalterschaltung 1333 kann ein Paket PCW2 zu der Speicherschnittstellenschicht 1332 basierend auf den Schreibdaten, welche in dem ersten internen Puffer 1333a gepuffert sind, übertragen. Die Speicherschnittstellenschicht 1332 kann eine physikalische Adresse eines Speicherbereichs bestimmen, in welchem die Schreibdaten zu speichern sind, unter Bezugnahme auf den Kopfabschnitt des Pakets PCW2. Die Speicherschnittstellenschicht 1332 kann die Schreibdaten zu einer Zielspeichervorrichtung übertragen, welche einen Speicherbereich der bestimmten physikalischen Adresse aufweist. Demzufolge können die Schreibdaten in dem einen oder der mehreren Speichervorrichtungen 1310 gespeichert werden.
  • Wenn die Schreiboperation durchgeführt wird, kann die Schreibverwalterschaltung 1333, eine logische Adresse, welche von dem Host 1100a empfangen wird, auf eine physikalische Adresse abbilden beziehungsweise mappen. Die physikalische Adresse, welche abzubilden ist, kann aus einer Liste von zur Verfügung stehenden physikalischen Adressen ausgewählt werden, welche durch die Schreibverwalterschaltung 1333, die Datendomänen-Verwalterschaltung 1337 und/oder den Prozessor 1339 verwaltet wird. Die Schreibdaten können in einem Speicherbereich der abgebildeten physikalischen Adresse der einen oder der mehreren Speichervorrichtungen 1310 gespeichert werden.
  • Die Schreibverwalterschaltung 1333 kann die Datendomänen-Verwalterschaltung 1337 mit Information über die empfangene logische Adresse und die abgebildete physikalische Adresse vorsehen. Die Datendomänen-Verwalterschaltung 1337 kann Information über eine entsprechende Beziehung zwischen der logischen Adresse und der physikalischen Adresse in dem Pufferspeicher 1350 verwalten. Der Pufferspeicher 1350 kann die Information über die Korrespondenzbeziehung als erste Metadaten speichern. Eine beispielhafte Schreiboperation wird ferner unter Bezugnahme auf die 7 bis 9 beschrieben werden.
  • Andererseits kann, wenn die Schreibverwalterschaltung 1333 das Paket PCR1, welches mit einer Leseoperation verbunden ist, empfängt, die Schreibverwalterschaltung 1333 das Paket PCR1 zu der Datendomänen-Verwalterschaltung 1337 übertragen. Beispielsweise kann die Schreibverwalterschaltung 1333 konfiguriert sein, um ein empfangenes Paket basierend auf zusätzlicher Information des empfangenen Pakets zu routen. Die Schreibverwalterschaltung 1333 kann als ein Schalter hinsichtlich des Übertragens eines Befehls und von Daten agieren.
  • Die Datendomänen-Verwalterschaltung 1337 kann eine physikalische Adresse, welche dem Paket PCR1 entspricht, unter Bezugnahme auf die Korrespondenzbeziehung der ersten Metadaten, welche in dem Pufferspeicher 1350 gespeichert sind, erlangen. Das heißt, dass die ersten Metadaten erzeugt werden können oder referenziert werden können, wenn der Job des ersten Typs verwaltet wird. Die Datendomänen-Verwalterschaltung 1337 kann ein Paket PCR2 erzeugen, welches Information über die erlangte physikalische Adresse aufweist. Die Datendomänen-Verwalterschaltung 1337 kann das Paket PCR2 zu der Speicherschnittstellenschicht 1332 übertragen.
  • Die Speicherschnittstellenschicht 1332 kann einen Lesebefehl zu einer Zielspeichervorrichtung, welcher einen Speicherbereich der erlangten physikalischen Adresse aufweist, unter Bezugnahme auf einen Kopfabschnitt des Pakets PCR2 übertragen. Demzufolge können gelesene Daten von der Zielspeichervorrichtung ausgegeben werden. Die Speicherschnittstellenschicht 1332 kann die Leseverwalterschaltung 1335 mit einem Paket PCR3 vorsehen, welches die ausgegebenen Lesedaten aufweist.
  • Die Leseverwalterschaltung 1335 weist einen zweiten internen Puffer 1335a auf. Der zweite interne Puffer 1335a kann eine Vielzahl von Information, welche in dem Paket PCR3 enthalten ist, puffern. Beispielsweise kann der zweite interne Puffer 1335a eine Speichervorrichtung wie beispielsweise einen SRAM aufweisen. Die Leseverwalterschaltung 1335 kann ein Paket PCR4 zu der Hostschnittstellenschicht 1331a basierend auf den Lesedaten, welche in dem zweiten internen Puffer 1335a gepuffert sind, übertragen.
  • Die Hostschnittstellenschicht 1331a kann die Lesedaten, welche in dem Paket PCR4 enthalten sind, zu dem Host 1100a übertragen. Demzufolge können die Lesedaten von der einen oder mehreren Speichervorrichtungen 1310 nach außerhalb des Controllers 1330a ausgegeben werden. Eine beispielhafte Leseoperation wird weiter unter Bezugnahme auf die 10 bis 13 beschrieben werden.
  • Jede der Schreibverwalterschaltung 1330, der Leseverwalterschaltung 1335 und der Datendomänen-Verwalterschaltung 1337 kann eine Hardwareschaltung aufweisen, welche konfiguriert ist, um Operationen durchzuführen, welche obenstehend beschrieben sind, und untenstehend zu beschreiben sind. Die Schreibverwalterschaltung 1333, die Leseverwalterschaltung 1335 und die Datendomänen-Verwalterschaltung 1337 können automatisch den Job des ersten Typs ohne Eingreifen des Prozessors 1339 verarbeiten. Ein Befehl und Daten können in einem regulären Format in ein Paket gepackt werden, und demnach kann die Hardwareschaltung jeder der Schreibverwalterschaltung 1333, der Leseverwalterschaltung 1335 und der Datendomänen-Verwalterschaltung 1337 eine Paketeinheit eines Stroms basierend auf der zusätzlichen Information eines Pakets verwalten, auch ohne Eingreifen des Prozessors 1339.
  • Während der Job des ersten Typs normal verwaltet wird, greift der Prozessor 1339 nicht in den Job des ersten Typs ein. Zusätzlich greift der Prozessor 1339 nicht in ein Erzeugen eines Pakets durch den Paketbilder PCZ und ein Übertragen einer Paketeinheit eines Stroms entlang eines Schreibpfades und eines Lesepfades ein. Darüber hinaus greift der Prozessor 1339 nicht ein Speichern der ersten Metadaten in dem Pufferspeicher 1350 durch die Datendomänen-Verwalterschaltung 1337 und ein Lesen der ersten Metadaten aus dem Pufferspeicher 1350 durch die Datendomänen-Verwalterschaltung 1337 ein.
  • Während der Job des ersten Typs verwaltet wird, kann die Datendomänen-Verwalterschaltung 1337 eine Vielzahl von Information von der Schreibverwalterschaltung 1333 und der Leseverwalterschaltung 1335 erlangen. Die erlangte Information kann verschiedene Stati anzeigen, welche mit Operationen der einen oder mehreren Speichervorrichtungen 1310 und des Controllers 1330a verbunden sind, einschließlich einem Fehler oder einer Ausnahme. Die Datendomänen-Verwalterschaltung 1337 kann eine Eingreifbedingung zum Auslösen eines Eingreifens des Prozessors 1339 basierend auf der erlangten Information verwalten.
  • Wenn ein Fehler oder eine Ausnahme hinsichtlich des Jobs des ersten Typs auftritt, kann eine Fehlfunktion in einer Operation des Controllers 1330a oder der Speichervorrichtung 1300a auftreten. Der Job des ersten Typs jedoch kann einen einfachen Job aufweisen und kann nicht geeignet sein, um den Fehler oder die Ausnahme aufzulösen. Der Job des zweiten Typs kann notwendig sein, um den Fehler oder die Ausnahme aufzulösen, und der Prozessor 1339 kann eingreifen, um den Job des zweiten Typs zu verarbeiten (welcher ebenso charakterisiert sein kann als ein dritter Job eines zweiten Typs).
  • Beispielsweise kann die Eingreifbedingung erfüllt sein, wenn der Fehler oder die Ausnahme hinsichtlich des Jobs des ersten Typs auftritt. In einer Ausführungsform kann die Eingreifbedingung erfüllt sein, wenn der Fehler oder die Ausnahme mit Hinsicht auf ein Übertragen von Schreibdaten zu der einen oder mehreren Speichervorrichtungen 1310 entlang eines Schreibpfades oder einem Ausgeben von Lesedaten von der einen oder der mehreren Speichervorrichtungen 1310 nach außerhalb des Controllers 1330 entlang eines Lesepfades auftritt. Die Datendomänen-Verwalterschaltung 1337 kann eine Benachrichtigung für den Prozessor 1339 vorsehen, um den Prozessor 1339 zu benachrichtigen, dass die Eingreifbedingung erfüllt ist. Wenn die Benachrichtigung nicht empfangen wird, greift der Prozessor 1339 nicht in ein Verwalten des Jobs des ersten Typs, ein Erzeugen und Übertragen eines Pakets und ein Verwalten der ersten Metadaten ein. In einem solchen Fall greift der Prozessor 1339 nicht in einen allgemeinen Betrieb des Schreibpfades und des Lesepfades ein.
  • Andererseits kann, wenn die Benachrichtigung empfangen wird, der Prozessor 1339 einen Verwaltungsbefehl für die Datendomänen-Verwalterschaltung 1337 vorsehen, um den Job des zweiten Typs zu verarbeiten. Der Verwaltungsbefehl kann eine Verwaltungsoperation leiten, welche auf wenigstens einem eines Schreibpfades und/oder eines Lesepfades durchgeführt wird. Die Benachrichtigung und der Verwaltungsbefehl können in einem Kopfabschnitt eines Pakets PCC enthalten sein.
  • Der Prozessor 1339 kann mit dem Pufferspeicher 1350 kommunizieren, um den Job des zweiten Typs zu verarbeiten. Der Pufferspeicher 1350 kann zweite Metadaten speichern. Die zweiten Metadaten können erzeugt oder referenziert werden, wenn der Job des zweiten Typs verarbeitet wird. Das heißt, dass der Prozessor 1339 die zweiten Metadaten in dem Pufferspeicher 1350 speichern kann oder die zweiten Metadaten, welche in dem Pufferspeicher 1350 gespeichert sind, lesen kann, um den Job des zweiten Typs zu verarbeiten.
  • Die Datendomänen-Verwalterschaltung 1337 kann den Job des zweiten Typs in Antwort auf den Verwaltungsbefehl durchführen. Das heißt, dass, wenn der Fehler oder die Ausnahme auftritt, der Prozessor 1339 eingreifen kann, und der Job des zweiten Typs unter der Steuerung des Prozessors 1339 durchgeführt werden kann. Wenn der Job des zweiten Typs eine Schreiboperation und/oder eine Leseoperation begleitet, kann die Datendomänen-Verwalterschaltung 1337 einen geeigneten Befehl für die Schreibverwalterschaltung 1333 und/oder die Leseverwalterschaltung 1335 vorsehen. Eine beispielhafte Verwaltungsoperation wird ferner unter Bezugnahme auf die 14 und 15 beschrieben werden.
  • Gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung kann der Controller 1330a eine Datendomäne (angezeigt durch eine gestrichelte Linie in 5) aufweisen, welche mit dem Job des ersten Typs verbunden ist. Zusätzlich kann der Controller 1330a eine Steuerdomäne (separat durch eine gestrichelte Linie in 5 angezeigt) aufweisen, welche mit dem Job des zweiten Typs verbunden ist. Die Schreibverwalterschaltung 1333 und die Leseverwalterschaltung 1335 können den Job des ersten Typs in der Datendomäne verwalten, und der Prozessor 1339 kann den Job des zweiten Typs in der Steuerdomäne verarbeiten. Die Datendomänen-Verwalterschaltung 1337 kann den Job des ersten Typs in der Datendomäne verwalten und kann ein Eingreifen des Prozessors 1339 in der Steuerdomäne auslösen. Die Datendomänen-Verwalterschaltung 1337 ist demnach in 5 als ein Teil von sowohl der Steuerdomäne als auch der Datendomäne gezeigt.
  • In einer Speichervorrichtung, welche eine zentralisierte Architektur hat, ist ein Fluss von allen Datenteilen, einschließlich Schreibdaten und Lesedaten konzentriert auf (beispielsweise geroutet auf) einen Pufferspeicher wie beispielsweise den Pufferspeicher 1350, welcher in 5 gezeigt ist, und ein Prozessor wie beispielsweise Prozessor 1339, welcher in 5 gezeigt ist, greift in sowohl einen Job des ersten Typs als auch in einen Job des zweiten Typs ein. In dem Fall einer solchen zentralisierten Architektur ist die Leistungsfähigkeit der Speichervorrichtung abhängig von der Leistungsfähigkeit des Prozessors und dem Durchsatz des Pufferspeichers beschränkt. Ein Verarbeiten eines einfachen Jobs durch den Prozessor erhöht die Last des Prozessors und besetzt eine Bandbreite des Pufferspeichers übermäßig.
  • Andererseits kann in der Hardware-automatisierten Architektur gemäß den beispielhaften Ausführungsformen des erfinderischen Konzepts, wie es beispielsweise unter Bezugnahme auf 5 beschrieben ist, ein Verwalten eines einfachen Jobs durch eine getrennte Hardwareschaltung ohne Eingreifen des Prozessors 1339 die Leistungsfähigkeit und Effizienz der Speichervorrichtung 1300a verbessern. Zusätzlich können der Leistungsverbrauch und die Wärmeemission des Prozessors 1339 und des Pufferspeichers 1350 abnehmen, was vorteilhaft in Hinsicht auf eine Lebensdauer und Zuverlässigkeit der Speichervorrichtung 1300a sein kann.
  • Wie in 5 veranschaulicht ist, kann der Schreibpfad physikalisch von dem Lesepfad getrennt sein. Demzufolge können eine Schreiboperation und eine Leseoperation parallel oder gleichzeitig oder simultan durchgeführt werden. Dies kann die Leistungsfähigkeit zum Verarbeiten einfacher Jobs weiter verbessern.
  • Wie obenstehend beschrieben ist, kann der Pufferspeicher 1350 die ersten Metadaten und die zweiten Metadaten speichern. In einigen beispielhaften Ausführungsformen können die ersten Metadaten getrennt von den zweiten Metadaten gespeichert werden (beispielsweise kann ein Speicherbereich zum Speichern der ersten Metadaten unterschiedlich von einem Speicherbereich zum Speichern der zweiten Metadaten sein). In einigen beispielhaften Ausführungsformen kann nur die Datendomänen-Verwalterschaltung 1337 sowohl auf die ersten Metadaten als auch auf die zweiten Metadaten zugreifen, und der Prozessor 1339 kann die zweiten Metadaten über die Datendomänen-Verwalterschaltung 1337 lesen. Gemäß solch beispielhaften Ausführungsformen kann, auch wenn die ersten Metadaten und die zweiten Metadaten entsprechend und unabhängig durch die Datendomänen-Verwalterschaltung 1337 und den Prozessor 1339 verwaltet werden, die Kohärenz und Integrität der ersten Metadaten und der zweiten Metadaten sichergestellt werden.
  • 6 veranschaulicht ein Konzeptdiagramm einer beispielhaften Konfiguration eines Pakets der 5 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts.
  • Wie unter Bezugnahme auf 5 beschrieben ist, kann ein Paket einen Kopfabschnitt, einen Datenabschnitt und einen Endabschnitt aufweisen. Der Datenabschnitt kann Schreibdaten oder Lesedaten aufweisen.
  • Beispielsweise kann der Kopfabschnitt Routinginformation, Information über eine logische Adresse LPN, Information über eine physikalische Adresse PPN, Information über einen Befehl CMD, Statusinformation und/oder dergleichen aufweisen. Die Routinginformation kann ein Ziel eines Pakets anzeigen, und kann beispielsweise einen Komponentenidentifizierer oder eine Markierung aufweisen.
  • Die logische Adresse LPN kann eine Adresse aufweisen, welche von dem Host 1100a empfangen wird, und die physikalische Adresse PPN kann eine physikalische Adresse aufweisen, welche auf die logische Adresse LPN abgebildet wird. Der Befehl CMD kann einen Typ von Operation anzeigen, welche durch das Paket angefordert wird. Die Statusinformation kann einen Status anzeigen, welcher mit Operationen der einen oder mehrerer Speichervorrichtungen 1310 und dem Controller 1330a verbunden ist (beispielsweise einen Status, welcher mit einem Fehler oder einer Ausnahme verbunden ist).
  • Wenigstens einer von Informationsteilen, welche in 6 veranschaulicht sind, kann von dem Kopfabschnitt eines Pakets ausgeschlossen sein. Beispielsweise kann die Information über die physikalische Adresse PPN in einem Paket (beispielsweise PCW1) nicht enthalten sein, welches von der Hostschnittstellenschicht 1331a für die Schreibverwalterschaltung 1333 vorgesehen ist. Beispielsweise kann die Statusinformation in einem Paket nicht enthalten sein, welches erzeugt wird, um Schreibdaten von dem Host 1100a zu der einen oder mehreren Speichervorrichtungen 1310 zu übertragen, oder einem Paket, welches erzeugt wird, um Lesedaten von der einen oder mehreren Speichervorrichtungen 1310 zu dem Host 1100a zu übertragen. Eine Konfiguration des Kopfabschnitts kann verschiedentlich geändert oder modifiziert werden, abhängig von einem Zweck eines Pakets.
  • Der Endabschnitt kann Information aufweisen, welche geeignet ist, um eine Vollendung des Datenabschnitts anzuzeigen. Beispielsweise kann der Endabschnitt eine Integritäts-/Fehler-Überprüfungsinformation wie beispielsweise ein Datenintegritätsmerkmal (DIF = Data Integrity Feature = Datenintegritätsmerkmal), Datenintegritätserweiterung (DIX = Data Integrity Extension = Datenintegritätserweiterung) und zyklische Redundanzüberprüfung (CRC = Cyclic Redundancy Check = zyklische Redundanzüberprüfung) aufweisen. Der Endabschnitt des erfinderischen Konzepts ist jedoch nicht auf die vorstehend erwähnte Information beschränkt, und in anderen Ausführungsformen kann der Endabschnitt konfiguriert sein, um andere Information aufzuweisen.
  • In Ausführungsformen kann das eine Paket alle des Kopfabschnitts, des Datenabschnitts und des Endabschnitts aufweisen. Alternativ kann in anderen Ausführungsformen das eine Paket wenigstens eines des Kopfabschnitts, des Datenabschnitts und/oder des Endabschnitts nicht aufweisen.
  • Beispielsweise kann ein Paket, welches erzeugt wird, um Schreibdaten von dem Host 1100a zu der einen oder mehreren Speichervorrichtungen 1310 zu übertragen, oder ein Paket, welches erzeugt wird, um Lesedaten von der einen oder mehreren Speichervorrichtungen 1310 zu dem Host 1100a zu übertragen, alle des Kopfabschnitts, des Datenabschnitts und des Endabschnitts aufweisen. Beispielsweise können ein Paket, welches erzeugt wird, um einen Lesebefehl von dem Host 1100a zu der einen oder mehreren Speichervorrichtungen 1310 zu übertragen, ein Benachrichtigungspaket, welches von der Datendomänen-Verwalterschaltung 1337 für den Prozessor 1339 vorgesehen ist, und ein Verwaltungsbefehlspaket, welches von dem Prozessor 1339 für die Datendomänen-Verwalterschaltung 1337 vorgesehen ist, nur den Kopfabschnitt aufweisen.
  • Die obigen Beispiele sind jedoch vorgesehen, um ein besseres Verständnis zu erleichtern, und sind nicht bezweckt, um die erfinderischen Konzepte zu beschränken. Eine Konfiguration eines Pakets kann verschiedentlich geändert oder modifiziert werden, um den Job des ersten Typs durch eine separate Hardwareschaltung ohne ein Eingreifen des Prozessors 1339 automatisch zu verwalten.
  • Die 7 und 8 veranschaulichen Blockschaltbilder, welche eine beispielhafte Schreiboperation beschreiben, welche in der Speichervorrichtung 1300a der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts durchgeführt wird. 9 veranschaulicht ein Flussdiagramm, welches eine beispielhafte Schreiboperation beschreibt, welche in der Speichervorrichtung 1300a der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts durchgeführt wird. Um ein besseres Verständnis zu erleichtern, wird auf die 7 bis 9 zusammen Bezug genommen werden. Insbesondere veranschaulicht 7 die Komponenten der Speichervorrichtung 1300a, welche in Hinsicht auf 5 veranschaulicht und beschrieben sind, wobei einige der Komponenten und Details in 5 aus 7 für den Zweck der Vereinfachung der Veranschaulichung ausgeschlossen sein können.
  • Bezug nehmend auf 7 kann die Hostschnittstellenschicht 1331a einen Schreibbefehl und Schreibdaten von dem Host 1100a empfangen (Operation S110 der 9). Der Paketbilder PCZ kann den Schreibbefehl und die Schreibdaten in ein Paket packen (Operation S120 der 9). Beispielsweise kann der Paketbilder PCZ den Schreibbefehl und die Schreibdaten mit zusätzlicher Information zum Erzeugen des Pakets PCW1 kombinieren. Beispielsweise kann ein Kopfabschnitt des Pakets PCW1 Information über den Schreibbefehl und eine logische Adresse aufweisen, und ein Datenabschnitt des Pakets PCW1 kann Schreibdaten aufweisen. Das Paket PCW1 kann für die Schreibverwalterschaltung 1333 vorgesehen sein.
  • In einigen Fällen kann der Kopfabschnitt des Pakets PCW1 Information wie beispielsweise einen Typ von Daten, eine Konfiguration von Daten, eine Ausnahme und/oder dergleichen aufweisen. Die Schreibverwalterschaltung 1333 kann, ob die jeweilige Information zu verwalten ist, und wie die jeweilige Information zu verwalten ist, basierend auf der Information bestimmen, welche in dem Paket PCW1 enthalten ist.
  • Bezug nehmend auf 8 kann beispielsweise der Pufferverwalter 1333b einen Pufferindex und eine logische Adresse verwalten. Der Pufferindex kann einen Platz jedes Pufferbereichs des ersten internen Puffers 1333a anzeigen. Beispielsweise kann, wenn Schreibdaten D1, welche mit einer logischen Adresse von „OxA8“ verbunden sind, in einem Pufferbereich eines Pufferindex von „1“ gepuffert werden, der Pufferverwalter 1333b den Pufferindex und die logische Adresse verwalten derart, dass der Pufferindex von „1“ der logischen Adresse von „OxA8“ entspricht.
  • Beispielsweise kann der Pufferverwalter 1333b eine Speichervorrichtung zum Speichern des Pufferindex und der logischen Adresse aufweisen. Alternativ oder zusätzlich kann der Pufferverwalter 1333b einen teilweisen Speicherbereich des ersten internen Puffers 1333a verwenden, um den Pufferindex und die logische Adresse zu verwalten.
  • Der erste interne Puffer 1333a kann Schreibdaten in einem Pufferbereich jedes Pufferindex puffern. 8 veranschaulicht, dass nur Schreibdaten in einem Pufferbereich jedes Pufferindex verwaltet werden. In einigen beispielhaften Ausführungsformen jedoch kann der erste interne Puffer 1333a weiterhin andere Information (beispielsweise eine logische Adresse, einen Befehl und/oder dergleichen) verwalten, welche mit jeweiligen Schreibdaten verbunden sind.
  • Wenn die Schreibverwalterschaltung 1333 das Paket PCW1 empfängt, kann der Pufferverwalter 1333b einen Status des ersten internen Puffers 1333a in Antwort auf das Paket PCW1 überprüfen. Beispielsweise kann der Pufferverwalter 1333b überprüfen, ob eine logische Adresse, welche in dem empfangenen Paket PCW1 enthalten ist, bereits verwaltet wird. Demzufolge kann der Pufferverwalter 1333b eine Gefahr oder eine Kollision verwalten (Operation S130 der 9).
  • Beispielsweise können in einigen Fällen Schreibdaten, welche in dem Paket PCW1 enthalten sind, dieselbe logische Adresse begleiten wie eine logische Adresse, welche mit vorangehenden Schreibdaten verbunden ist, welche bereits in dem ersten internen Puffer 1333a gepuffert worden sind. Dies kann bedeuten, dass der Host 1100a vorhat, die vorangehenden Schreibdaten zu neuen Schreibdaten zu ändern hinsichtlich derselben logischen Adresse. Demzufolge kann in Antwort auf die Bestimmung des Pufferverwalters 1333b der erste interne Puffer 1333a die vorangehenden Schreibdaten invalidieren und kann die neuen Schreibdaten hinsichtlich derselben logischen Adresse puffern. Dies kann eine Datenkollision hinsichtlich derselben logischen Adresse verhindern.
  • Andererseits kann in einigen Fällen das Paket PCW1 eine neu empfangene logische Adresse aufweisen. In diesem Fall kann der Pufferverwalter 1333b einen Pufferbereich eines neuen Pufferindex für neue Schreibdaten, welche in dem Paket PCW1 enthalten sind, zuweisen. Der Pufferverwalter 1333b kann den neuen Pufferindex und die neu empfangene logische Adresse verwalten, und der erste interne Puffer 1333a kann die neuen Schreibdaten in dem zugewiesenen Pufferbereich puffern.
  • Indes kann in einigen Fällen eine Größe der Schreibdaten, welche von dem Host 1100a empfangen werden, unterschiedlich von einer Programmeinheitsgröße von Programmeinheitsdaten sein, welche durch eine Schreiboperation gespeichert werden. Beispielsweise kann der Host 1100a Schreibdaten von 4 Kilobyte (KB) für die Speichervorrichtung 1300a vorsehen, die Schreiboperation kann jedoch einmal durchgeführt werden, um Programmeinheitsdaten von 32 KB in der einen oder mehreren Speichervorrichtungen 1310 zu speichern. Das heißt, dass die Programmeinheitsgröße der Programmeinheitsdaten, welche durch eine Schreiboperation gespeichert werden, 32 KB sein kann. In diesem Fall kann der erste interne Puffer 1333a eine Mehrzahl von Teilen von Schreibdaten puffern, bis die Programmeinheitsdaten angesammelt sind (Operation S140 der 9). Im Gegensatz dazu kann, wenn die Größe von Schreibdaten größer ist als die Programmeinheitsgröße die Schreibverwalterschaltung 1333 die Schreibdaten in eine Mehrzahl von Teilen von Programmeinheitsdaten unterteilen.
  • Wenn die Programmeinheitsdaten angesammelt sind, kann die Schreibverwalterschaltung 1333 eine zur Verfügung stehende physikalische Adresse den Programmeinheitsdaten zuweisen (Operation S150 der 9). Demzufolge kann eine logische Adresse, welche mit jedem von Teilen von Schreibdaten der Programmeinheitsdaten verbunden ist, auf eine physikalische Adresse abgebildet werden. Die physikalische Adresse, welche zuzuweisen ist, kann aus einer Liste von zur Verfügung stehenden physikalischen Adressen ausgewählt werden, welche durch die Schreibverwalterschaltung 1333, die Datendomänen-Verwalterschaltung 1337 und/oder dem Prozessor 1339 verwaltet wird.
  • Zurückkehrend zu 7 kann die Schreibverwalterschaltung 1333 ein Paket PCW3 für die Datendomänen-Verwalterschaltung 1337 vorsehen. Ein Kopfabschnitt des Pakets PCW3 kann Information über eine logische Adresse und die zugewiesene physikalische Adresse aufweisen, welche mit einer Schreibadresse verbunden sind. Demzufolge kann die Datendomänen-Verwalterschaltung 1337 eine Korrespondenzbeziehung der logischen Adresse und der physikalischen Adresse basierend auf dem empfangenen Paket PCW3 verwalten. Die Datendomänen-Verwalterschaltung 1337 kann die Korrespondenzbeziehung in ersten Metadaten MD1 (Operation S160 der 9) verwalten. Der Pufferspeicher 1350 kann die ersten Metadaten MD1 speichern.
  • Die Schreibverwalterschaltung 1333 kann das Paket PCW2 für die Programmeinheitsdaten vorbereiten (Operation S160 der 9). Das Paket PCW2 kann die Programmeinheitsdaten und zusätzliche Information aufweisen, welche die zugewiesene physikalische Adresse anzeigt. Die Schreibverwalterschaltung 1333 kann das Paket PCW2 zu der Speicherschnittstellenschicht 1332 übertragen. Demzufolge können die Schreibdaten und der Schreibbefehl in einer Paketeinheit eines Stroms durch die Schreibverwalterschaltung 1333 entlang eines Schreibpfads übertragen werden.
  • Die Programmeinheitsdaten und die zugewiesene physikalische Adresse können durch die Speicherschnittstellenschicht 1332 zu der einen oder mehreren Speichervorrichtungen 1310 übertragen werden (Operation S170 der 9). Demzufolge können die Programmeinheitsdaten in einem Speicherbereich gespeichert werden, welcher durch die zugewiesene physikalische Adresse angezeigt wird.
  • Die 10 bis 12 veranschaulichen Blockschaltbilder, welche eine beispielhafte Leseoperation beschreiben, welche in der Speichervorrichtung 1300a der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts durchgeführt wird. 13 veranschaulicht ein Flussdiagramm, welches eine beispielhafte Leseoperation beschreibt, welche in der Speichervorrichtung 1300a der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts durchgeführt wird. Um ein leichteres Verständnis zu begünstigen, wird auf die 10 bis 13 zusammen Bezug genommen werden. Insbesondere veranschaulicht 10 die Komponenten der Speichervorrichtung 1300a, welche hinsichtlich 5 veranschaulicht und beschrieben ist, wodurch einige der Komponenten und Details in 5 aus 10 zum Zweck der Einfachheit der Veranschaulichung ausgeschlossen sein können.
  • Bezug nehmend auf 10 kann die Hostschnittstellenschicht 1331a einen Lesebefehl von dem Host 1100a empfangen (Operation S210 der 13). Der Paketbilder PCZ kann den Lesebefehl packen (Operation S220 der 13). Beispielsweise kann der Paketbilder PCZ den Lesebefehl mit zusätzlicher Information kombinieren, um das Paket PCR1 zu erzeugen. Beispielsweise kann ein Kopfabschnitt des Pakets PCR1 Information über den Lesebefehls und eine logische Adresse aufweisen, welche mit den Lesedaten verbunden sind. Das Paket PCR1 kann für die Schreibverwalterschaltung 1333 vorgesehen sein.
  • Bezug nehmend auf 11 kann, wenn die Schreibverwalterschaltung 1333 das Paket PCR1 empfängt, der Pufferverwalter 1333b einen Status des ersten internen Puffers 1333a in Antwort auf das Paket PCR1 überprüfen (Operation S230 der 13). Beispielsweise kann der Pufferverwalter 1333b überprüfen, ob eine logische Adresse, welche in dem empfangenen Paket PCR1 enthalten ist, bereits verwaltet wurde (das heißt, ob Lesedaten, welche durch das Paket PCR1 angefordert sind, in dem ersten internen Puffer 1333a gepuffert sind).
  • In einigen Fällen können die Lesedaten, welche durch das Paket PCR1 angefordert sind, in der einen oder den mehreren Speichervorrichtungen 1310 gespeichert worden sein und können nicht in dem ersten internen Puffer 1333a gespeichert sein (das heißt eine Pufferfehlstelle beziehungsweise ein Pufferfehlschlag, welche/welcher „Nein“ der Operation S240 der 13 entspricht). In diesem Fall kann die Schreibverwalterschaltung 1333 die Datendomänen-Verwalterschaltung 1337 mit dem Paket PCR1, welches den Lesebefehl und die logische Adresse aufweist, vorsehen.
  • Die Datendomänen-Verwalterschaltung 1337 kann die logische Adresse in Antwort auf das Paket PCR1 und den Lesebefehl erlangen. Die Datendomänen-Verwalterschaltung 1337 kann eine physikalische Adresse, welche der erlangten logischen Adresse entspricht, basierend auf den ersten Metadaten MD1 des Pufferspeichers 1350 erlangen (Operation S250 der 13). Die Datendomänen-Verwalterschaltung 1337 kann das Paket PCR2 erzeugen. Ein Kopfabschnitt des Pakets PCR2 kann Information über den Lesebefehl und die erlangte physikalische Adresse aufweisen.
  • Das Paket PCR2 kann für die Speicherschnittstellenschicht 1332 vorgesehen sein. Demzufolge können der Lesebefehl und die physikalische Adresse für die eine oder mehrere Speichervorrichtungen 1310 (siehe 2) über die Speicherschnittstellenschicht 1332 vorgesehen sein. Lesedaten können von einem Speicherbereich der einen oder der mehreren Speichervorrichtungen 1310, welcher durch die physikalische Adresse angezeigt wird, in Antwort auf den Lesebefehl ausgegeben werden.
  • Die Speicherschnittstellenschicht 1332 kann das Paket PCR3 für die Leseverwalterschaltung 1335 basierend auf den ausgegebenen Lesedaten vorsehen. Ein Datenabschnitt des Pakets PCR 3 kann die ausgegebenen Lesedaten von der einen oder den mehreren Speichervorrichtungen 1310 aufweisen, und demnach kann die Leseverwalterschaltung 1335 die Lesedaten empfangen (Operation S255 der 13). Der zweite interne Puffer 1335a kann die Lesedaten puffern. Beispielsweise kann die Leseverwalterschaltung 1335 Lesedaten und eine logische Adresse, welche mit jeweiligen Lesedaten verbunden ist, in dem zweiten internen Puffer 1335a verwalten.
  • Andererseits können in einigen Fällen die Lesedaten, welche durch das Paket PCR1 angefordert werden, noch nicht in der einen oder den mehreren Speichervorrichtungen 1310 gespeichert sein, und können nach wie vor in dem ersten internen Puffer 1333a gepuffert sein (das heißt Puffertreffer, welcher „Ja“ der Operation S 240 der 13 entspricht). Beispielsweise können Bezug nehmend auf 12 Lesedaten D3, welche mit einer logischen Adresse von „0x3F“ verbunden sind, in dem ersten internen Puffer 1333a gepuffert werden, bevor Programmeinheitsdaten gesammelt werden. Der Host 1100a kann beabsichtigen, die Lesedaten D3 zu lesen.
  • Der Pufferverwalter 1333b kann einen Puffertreffer basierend auf dem Paket PCR1 bestimmen. In diesem Fall kann die Schreibverwalterschaltung 1333 ein Paket PCR5 für die Leseverwalterschaltung 1335 vorsehen. Ein Datenabschnitt des Pakets PCR5 kann die Lesedaten D3 aufweisen. Demzufolge kann die Leseverwalterschaltung 1335 die Lesedaten D3 aus Schreibdaten erlangen, welche in dem ersten internen Puffer 1333a gepuffert sind (Operation S260 der 13). Der zweite interne Puffer 1335a kann die Lesedaten puffern.
  • Zurückkehrend zu 10 kann die Leseverwalterschaltung 1335 einen Datenabschnitt des Pakets PCR3 puffern (beispielsweise Lesedaten, welche von der einen oder den mehreren Speichervorrichtungen 1310 ausgegeben werden) oder einen Abschnitt des Pakets PCR5 (beispielsweise Lesedaten, welche in der Schreibverwalterschaltung 1333 gepuffert worden sind) (Operation S270 der 13). Die Leseverwalterschaltung 1335 kann ein Paket PCR4 für die Lesedaten vorbereiten (Operation S270 der 13). Ein Kopfabschnitt des Pakets PCR4 kann Information über die logische Adresse, welche durch den Host 1100a angefordert ist, aufweisen, und ein Datenabschnitt des Pakets PCR4 kann die Lesedaten, welche durch den Host 1100a angefordert sind, aufweisen.
  • Die Leseverwalterschaltung 1335 kann das Paket PCR4 zu der Hostschnittstellenschicht 1331a übertragen. Demzufolge können die Lesedaten in einer Paketeinheit eines Stoms durch die Leseverwalterschaltung 1335 entlang eines Lesepfads übertragen werden. Die Lesedaten können nach außerhalb des Controllers 1330a (beispielsweise zu dem Host 1100a) durch die Hostschnittstellenschicht 1331a übertragen werden (Operation S280 der 13).
  • In beispielhaften Ausführungsformen des erfinderischen Konzepts kann die Speicherschnittstellenschicht 1332 Information, welche mit einem Ergebnis einer Leseoperation verbunden ist, zu dem Paket PCR3 hinzufügen. Beispielsweise kann die Information, welche mit dem Ergebnis der Leseoperation verbunden ist, Information über einen Fehler, eine Ausnahme und/oder dergleichen aufweisen. In einigen Fällen kann die Information, welche mit dem Ergebnis der Leseoperation verbunden ist, zu dem Host 1100a zusammen mit den Lesedaten übertragen werden.
  • 14 veranschaulicht ein Blockschaltbild, welches eine beispielhafte Verwaltungsoperation beschreibt, welche in der Speichervorrichtung 1300a der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts durchgeführt wird. 15 veranschaulicht ein Flussdiagramm, welches eine beispielhafte Verwaltungsoperation beschreibt, welche in der Speichervorrichtung 1300a der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts durchgeführt wird. Um ein besseres Verständnis zu begünstigen, wird auf die 14 und 15 zusammen Bezug genommen werden. Insbesondere veranschaulicht 14 die Komponenten der Speichervorrichtung 1300a, welche hinsichtlich 5 veranschaulicht und beschrieben sind, wodurch einige der Komponenten und Details in 5 aus 14 zum Zweck der Einfachheit der Veranschaulichung ausgeschlossen sein können.
  • Bezug nehmend auf 14 kann die Datendomänen-Verwalterschaltung 1337 einen Status/eine Ausnahme, welcher/welche mit Operationen der einen oder den mehreren Speichervorrichtungen 1330 verbunden ist, und den Controller 1330a (welcher in 5 gezeigt ist) überwachen (Operation S310 der 15). Die Datendomänen-Verwalterschaltung 1337 kann eine Eingreifbedingung zum Auslösen eines Eingreifens des Prozessors 1339 basierend auf dem überwachten Status verwalten. In einigen beispielhaften Ausführungsformen kann die Datendomänen-Verwalterschaltung 1337 eine Hardwareschaltung (beispielsweise eine Zählschaltung, eine Latchschaltung und/oder dergleichen) aufweisen, um die Eingreifbedingung zu verwalten.
  • Beispielsweise kann die Datendomänen-Verwalterschaltung 1337 eine Mehrzahl von Information von der Schreibverwalterschaltung 1333 und der Leseverwalterschaltung 1335 erlangen. Die Schreibverwalterschaltung 1333 kann das Paket PCC1, welches die Information aufweist, für die Datendomänen-Verwalterschaltung 1337 vorsehen. Die Leseverwalterschaltung 1335 kann das Paket PCC2, welches die Information aufweist, für die Datendomänen-Verwalterschaltung 1337 vorsehen.
  • Beispielsweise kann ein Kopfabschnitt des Pakets PCC1 Information über eine physikalische Adresse eines Speicherbereichs, welcher durch Schreibdaten besetzt wird, aufweisen, wenn die Schreibdaten in der einen oder mehreren Speichervorrichtungen 1310 gespeichert sind. Die Datendomänen-Verwalterschaltung 1337 kann eine absolute/relative Menge von überschüssigen Bereichen und/oder zur Verfügung stehenden Bereichen der einen oder mehrerer Speichervorrichtungen 1310 basierend auf dem Paket PCC1 verwalten. Die Datendomänen-Verwalterschaltung 1337 kann einen Abnutzungsgrad (Wear Level) beziehungsweise ein Verschleißniveau jedes Speicherbereichs der einen oder mehrerer Speichervorrichtungen 1310 basierend auf dem Paket PCC1 verwalten. Dazu kann beispielsweise die Datendomänen-Verwalterschaltung 1337 die Menge oder das Niveau durch ein Nutzen der Zählerschaltung zählen.
  • Beispielsweise kann ein Kopfabschnitt des Pakets PCC2 Information über eine physikalische Adresse eines Speicherbereichs, auf welchen zugegriffen wird, aufweisen, wenn Lesedaten von der einen oder den mehreren Speichervorrichtungen 1310 ausgegeben werden. Beispielsweise kann der Kopfabschnitt des Pakets PCC2 Information über einen Fehler (beispielsweise Paritätsinkonsistenz) der Lesedaten, einen unkorrigierbaren Fehler-Korrekturcode (ECC)-Fehler, eine Speicherfehlfunktion und/oder dergleichen aufweisen. Die Datendomänen-Verwalterschaltung 1337 kann die Anzahl von Zugriffen auf einen spezifischen Speicherbereich durch ein Verwenden einer Zählerschaltung basierend auf dem Paket PCC2 zählen. Die Datendomänen-Verwalterschaltung 1337 kann einen Fehler von Lesedaten basierend auf dem Paket PCC2 bestimmen.
  • Zusätzlich kann durch ein Verwenden einer Sensorschaltung die Datendomänen-Verwalterschaltung 1337 überwachen, ob ein Status von Leistung, welcher dem Controller 1330a zugeführt wird, instabil ist, oder kann eine Temperatur einer Hardwareschaltung abtasten. Demzufolge kann die Datendomänen-Verwalterschaltung 1337 Operationen überwachen, welche in der Speichervorrichtung 1300a durchgeführt werden, und kann eine Vielzahl von Information erlangen, welche mit einem Betriebsstatus der Speichervorrichtung 1300a verbunden ist.
  • Die Datendomänen-Verwalterschaltung 1337 kann, ob die Eingreifbedingung zum Auslösen eines Eingreifens des Prozessors 1339 erfüllt ist, basierend auf der erlangten Information bestimmen (Operation S320 der 15). Die Eingreifbedingung kann erfüllt sein, wenn ein Fehler oder eine Ausnahme (beispielsweise ein Ausnahmestatus) in einer Operation der Speichervorrichtung 1300a auftritt.
  • Beispielsweise kann die Eingreifbedingung erfüllt sein, wenn ein Zählwert der Zählschaltung größer oder kleiner wird als ein Referenzwert (beispielsweise wenn die Menge von überschüssigen Bereichen kleiner wird als eine Referenzmenge, wenn der Abnutzungsgrad (Wear Level) höher wird als ein Referenzniveau und/oder dergleichen). Beispielsweise kann die Eingreifbedingung erfüllt sein, wenn ein Fehler oder eine Ausnahme auftritt, welche mit dem Job des ersten Typs verbunden ist (beispielsweise wenn es einen unkorrigierbaren ECC-Fehler in Lesedaten gibt). Beispielsweise kann die Eingreifbedingung erfüllt sein, wenn ein abnormaler Status beobachtet wird (beispielsweise wenn die Leistungsversorgung instabil ist, wenn die Temperatur einer Hardwareschaltung übermäßig hoch ist, und/oder dergleichen), was als eine Ausnahme (das heißt ein Ausnahmestatus) charakterisiert werden kann.
  • Wenn die Eingreifbedingung nicht erfüllt ist („Nein“ der Operation S320 der 15), kann die Datendomänen-Verwalterschaltung 1337 fortfahren, einen Status der Speichervorrichtung 1300a zu überwachen (Operation S310 der 15).
  • Andererseits kann, wenn die Eingreifbedingung erfüllt ist („Ja“ der Operation S320 der 15), die Datendomänen-Verwalterschaltung 1337 ein Paket PCC3 für den Prozessor 1339 vorsehen, um ein Eingreifen des Prozessors 1339 auszulösen. Das Paket PCC3 kann vorgesehen sein, um den Prozessor 1339 über eine Information eines Status (beispielsweise einen Zählwert, einen Fehler, eine Ausnahme, einen abnormalen Status und/oder dergleichen) zu informieren, welche durch die Datendomänen-Verwalterschaltung 1337 überwacht wird (Operation S330 der 15).
  • Wenn das Paket PCC3 empfangen wird, kann der Prozessor 1339 ein Paket PCC4 ausgeben, um den Job des zweiten Typs zu verarbeiten. Beispielsweise kann ein Kopfabschnitt des Pakets PCC4 einen Verwaltungsbefehl aufweisen, welcher eine Verwaltungsoperation lenkt, um durchgeführt zu werden, um den Status, welcher durch die Datendomänen-Verwalterschaltung 1337 überwacht wird, aufzulösen. Die Datendomänen-Verwalterschaltung 1337 kann den Verwaltungsbefehl basierend auf dem Paket PCC4, welches von dem Prozessor 1339 empfangen wird, empfangen (Operation S340 der 15).
  • Der Prozessor 1339 kann den Verwaltungsbefehl basierend auf einem Programmcode von Software und/oder Firmware bereitstellen. Der Prozessor 1339 kann zweite Metadaten MD2 in dem Pufferspeicher 1350 speichern oder kann die zweiten Metadaten MD2 von dem Pufferspeicher 1350 lesen, um den Job des zweiten Typs zu verarbeiten. Beispielsweise können die zweiten Metadaten MD2 wenigstens eines von Information über überschüssige Bereiche und/oder zur Verfügung stehende Bereiche der einen oder mehrerer Speichervorrichtungen 1310, Information über einen Abnutzungsgrad (Wear Level) von Speicherbereichen der einen oder der mehreren Speichervorrichtungen 1310, Information über die Anzahl von Leseoperationen, welche in Speicherbereichen der einen oder der mehreren Speichervorrichtungen 1310 durchgeführt werden, ECC-Information, welche bei der Fehlererfassung und -korrektur genutzt werden, und/oder dergleichen aufweisen.
  • Die Datendomänen-Verwalterschaltung 1337 kann die Verwaltungsoperation, welche durch den Verwaltungsbefehl geleitet wird, durchführen (Operation S350 der 15). Wenn die Verwaltungsoperation eine Schreiboperation und/oder eine Leseoperation begleitet, kann die Datendomänen-Verwalterschaltung 1337 einen geeigneten Befehl für die Schreibverwalterschaltung 1333 und/oder die Leseverwalterschaltung 1335 vorsehen.
  • Beispielsweise kann, wenn die Menge von überschüssigen Bereichen kleiner wird als eine Referenzmenge, die Verwaltungsoperation eine Speicherbereinigung zum Sicherstellen von überschüssigen Bereichen aufweisen. Die Datendomänen-Verwalterschaltung 1337 kann die Speicherschnittstellenschicht 1332 mit einem Paket PCC5 vorsehen, welches Information über einen invalidierten Speicherbereich und einen Opferspeicherbereich (victim memory region) aufweist und die Speicherbereinigung anfordert. Demzufolge können eine Leseoperation und eine Schreiboperation begleitet werden, um überschüssige Bereiche sicherzustellen.
  • Während der Speicherbereinigung können Daten, welche aus der einen oder den mehreren Speichervorrichtungen 1310 gelesen werden, in ein Paket PCR6 eingeschlossen werden, und können dann für die Leseverwalterschaltung 1335 vorgesehen werden. Die Leseverwalterschaltung 1335 kann ein Paket PCW4, welches die empfangenen Daten aufweist, für die Schreibverwalterschaltung 1333 vorsehen. Die Schreibverwalterschaltung 1333 kann die Speicherschnittstellenschicht 1332 mit einem Paket PCW5 vorsehen, welches die empfangenen Daten aufweist. Die Daten können in einem neuen Speicherbereich ausgerichtet beziehungsweise angeordnet werden derart, dass die überschüssigen Bereiche sichergestellt sind.
  • Beispielsweise kann, wenn es einen ECC-Fehler in Lesedaten gibt, die Verwaltungsoperation eine Wiederherstellungsoperation zum Auflösen des Fehlers und zum Wiederherstellen der Lesedaten aufweisen. Der Prozessor 1339 kann die Datendomänen-Verwalterschaltung 1337 mit Metadaten, welche referenziert werden, um die Lesedaten wiederherzustellen, durch das Paket PCC4 vorsehen. Die Datendomänen-Verwalterschaltung 1337 kann die Speicherschnittstellenschicht 1332 mit dem Paket PCC5 vorsehen, welches die empfangenen Metadaten aufweist. Demzufolge kann das Paket PCR6, welches die Lesedaten aufweist, welche wiederhergestellt sind basierend auf den Metadaten, für die Leseverwalterschaltung 1335 vorgesehen werden.
  • Beispielsweise kann, wenn ein Status von Leistung, welche dem Controller 1330a zugeführt wird, instabil ist, die Verwaltungsoperation eine Spüloperation zum Erhalten von Daten, welche in der Schreibverwalterschaltung 1333 gepuffert sind, aufweisen. Die Datendomänen-Verwalterschaltung 1337 kann die Schreibverwalterschaltung 1333 bitten, die Daten, welche in der Schreibverwalterschaltung 1333 gepuffert sind, zu der einen oder den mehreren Speichervorrichtungen 1310 zu spülen. Demzufolge können, auch wenn die Leistungsversorgung unterbrochen wird, die Daten, welche in der Schreibverwalterschaltung 1333 gepuffert sind, nicht verloren werden.
  • Zusätzlich können verschiedene Verwaltungsoperationen wie beispielsweise Abnutzungsausgleich (Wear Leveling), Leseauffrischung, Verwaltung eines schlechten Blocks, und/oder dergleichen gemäß einer Art und Weise ähnlich zu der oben beschriebenen Art und Weise durchgeführt werden.
  • Es sollte verstanden werden, dass die obigen Beispiele vorgesehen sind, um ein besseres Verständnis zu erleichtern, und nicht vorgesehen sind, um das erfinderische Konzept zu begrenzen. Die Eingreifbedingung und die Verwaltungsoperation können verschiedentlich geändert oder modifiziert werden, um eine komplexe Operation zu verarbeiten, und können die eine oder die mehreren Speichervorrichtungen 1310 und den Controller 1330a unter der Steuerung des Prozessors 1339 geeignet betreiben.
  • 16 veranschaulicht ein Flussdiagramm, welches einen Gesamtbetrieb der Speichervorrichtung 1300a der 2 gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts beschreibt.
  • Wenn ein Job hinsichtlich der Speichervorrichtung 1300a nicht angefordert ist („Nein“ der Operation S410), kann der Controller 1330a warten. Andererseits kann, wenn ein spezifischer Job hinsichtlich der Speichervorrichtung 1300a angefordert ist („Ja“ der Operation S410), der Controller 1330a eine Operation durchführen, welche benötigt wird, um den spezifischen Job zu verwalten oder zu verarbeiten.
  • In den beispielhaften Ausführungsformen kann der angeforderte Job einer des Jobs des ersten Typs und/oder des Jobs des zweiten Typs sein (Operation S420).Wenn der angeforderte Job der Job des ersten Typs ist, kann der angeforderte Job durch eine Hardwareschaltung verwaltet werden (beispielsweise die Verwalterschaltung HW des Jobs des ersten Typs der 3 und 4 und die Schreibverwalterschaltung 1333, die Leseverwalterschaltung 1335 und die Datendomänen-Verwalterschaltung 1337 der 5 und 17) (Operation S430). Der Prozessor 1339 (beispielsweise Programmcode oder Software und/oder Firmware, welche auf dem Prozessor 1339 ausgeführt werden) greift in den Job des ersten Typs nicht sein.
  • Wenn der angeforderte Job der Job des zweiten Typs ist, kann die Hardwareschaltung ein Eingreifen des Prozessors 1339 auslösen (Operation S440). Der Prozessor 1339 kann einen Verwaltungsbefehl basierend auf dem Programmcode von Software und/oder Firmware bereitstellen, welcher auf dem Prozessor 1339 ausgeführt wird (Operation S441). Die Hardwareschaltung kann den Job des zweiten Typs in Antwort auf den Verwaltungsbefehl von dem Prozessor 1339 durchführen (Operation S442). Der Prozessor 1339 greift nur beim Verarbeiten des Jobs des zweiten Typs ein.
  • Indes kann in einigen Fällen der Job des ersten Typs durch die dedizierte Hardwareschaltung verwaltet werden, während der Prozessor 1339 den Job des zweiten Typs verarbeitet. Das heißt, dass der Job des ersten Typs gleichzeitig oder simultan mit der Verarbeitung des Jobs des zweiten Typs verwaltet werden kann, ohne Unterbrechung aufgrund des Jobs des zweiten Typs. Der Job des ersten Typs kann durch die dedizierte Hardwareschaltung verwaltet werden ohne Eingreifen des Prozessors 1339, und demnach kann er parallel mit dem Job des zweiten Typs gehandhabt werden.
  • 17 veranschaulicht ein Blockschaltbild einer beispielhaften Konfiguration, welche mit der Speichervorrichtung 1300 der 1 verbunden ist. Das elektronische System 1000 der 1 kann als ein elektronisches System 1000b ausgeführt sein, welches in 17 gezeigt ist, wodurch die Speichervorrichtung 1300 und der Hauptprozessor 1101 der 1 jeweils in 17 als eine Speichervorrichtung 1300b und ein Host 1100b ausgeführt sind. Das elektronische System 1000b der 17 weist ferner einen Arbeitsspeicher 1200, einen Kommunikationsblock 1400, eine Nutzerschnittstelle 1500 und einen Bus 1600 der 1 auf, welche Merkmale aus 17 zur Vereinfachung ausgelassen sind.
  • Die Speichervorrichtung 1300b, wie sie in 17 gezeigt ist, weist einen Pufferspeicher 1350, einen Controller 1330b und eine oder mehrere Speichervorrichtungen 1310 auf, welche Speichervorrichtungen 1311 und 1319 aufweisen. Der Controller 1330b weist eine Hostschnittstellenschicht 1331b, eine Speicherschnittstellenschicht 1332, einen Schreibverwalter 1333, eine Leseverwalterschaltung 1335, eine Datendomänen-Verwalterschaltung 1337 und einen Prozessor 1339 auf. Die folgende Beschreibung wird sich auf Unterschiede zwischen den Komponenten in dem elektronischen System 1000b in 17 hinsichtlich der Komponenten, die unter bei Hinsicht auf 2 und 5 beispielsweise beschrieben sind, fokussieren. Die Beschreibung der Komponenten in 17, welche gleich konfiguriert sind und wirken wie die Komponenten in den 2 und 5 werden zur Kürze ausgelassen werden.
  • Die 2 und 5 bis 17 vergleichend, kann in beispielhaften Ausführungsformen des erfinderischen Konzepts der Paketbilder PCZ in dem Host 1100b anstelle in der Hostschnittstellenschicht 1331b des Controllers 1330b enthalten sein. Der Paketbilder PCZ kann ein Paket basierend auf einem Befehl CMD, Daten DATA und einer Adresse ADDR erzeugen, welche in dem Host 1100b erzeugt werden. Demzufolge kann der Controller 1330b ein Paket PCW oder PCR mit dem Host 1100b austauschen und kann den Job des ersten Typs basierend auf dem Paket PCW oder PCR verwalten.
  • Die obigen Beschreibungen sind vorgesehen, um beispielhafte Konfigurationen und Operationen zum Implementieren des erfinderischen Konzepts vorzusehen. Der Umfang und Gedanke des erfinderischen Konzepts kann Implementierungen aufweisen, welche durch ein einfaches Ändern oder Modifizieren der obigen beispielhaften Ausführungsformen erlangt werden, zusätzlich zu den oben beschriebenen beispielhaften Ausführungsformen. Ebenso weisen der Umfang und der Gedanke des erfinderischen Konzepts Implementationen auf, welche durch ein leichtes Ändern oder Modifizieren der oben beschriebenen beispielhaften Ausführungsformen nachher erhalten werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 1020170083817 [0001]

Claims (20)

  1. Speichervorrichtung (1300, 1300a, 1300b), die Folgendes aufweist: einen nichtflüchtigen Speicher; und einen Controller (1330a, 1330b), der Folgendes aufweist: eine Jobverwalterschaltung (HW), welche konfiguriert ist, um einen Job eines ersten Typs, welcher mit dem nichtflüchtigen Speicher verbunden ist, zu verwalten und einen Prozessor (1339), welcher konfiguriert ist, um einen Job eines zweiten Typs, welcher mit dem nichtflüchtigen Speicher verbunden ist, zu verarbeiten, wobei die Jobverwalterschaltung (HW) ferner konfiguriert ist, um den Job des ersten Typs ohne Eingreifen des Prozessors (1339) zu verwalten, und wobei der Prozessor (1339) ferner konfiguriert ist, um einen Verwaltungsbefehl für die Jobverwalterschaltung (HW) in Antwort auf eine Benachrichtigung vorzusehen, welche von der Jobverwalterschaltung (HW) empfangen wird, wobei der Verwaltungsbefehl ein Verarbeiten des Jobs des zweiten Typs befiehlt.
  2. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 1, wobei der Job des ersten Typs gemäß einer Operation einer Hardwareschaltung, welche in der Jobverwalterschaltung (HW) enthalten ist, verwaltet wird, und der Job des zweiten Typs basierend auf einem Programmcode von Software oder Firmware, welche auf dem Prozessor (1339) ausgeführt wird, verarbeitet wird.
  3. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 1, wobei der Job des ersten Typs eine Operation aufweist, welche auf einem Speicherbereich des nichtflüchtigen Speichers durchgeführt wird, welcher eine erste Einheitsgröße hat, der Job des zweiten Typs eine Operation aufweist, welche auf einem Speicherbereich des nichtflüchtigen Speichers durchgeführt wird, welcher eine zweite Einheitsgröße hat, und die erste Einheitsgröße unterschiedlich von der zweiten Einheitsgröße ist.
  4. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 1, wobei der Job des ersten Typs häufiger durchgeführt wird als der Job des zweiten Typs.
  5. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 1, wobei der Job des ersten Typs eine Schreiboperation zum Speichern von Schreibdaten in dem nichtflüchtigen Speicher aufweist und eine Leseoperation zum Ausgeben von Lesedaten von dem nichtflüchtigen Speicher, und der Job des zweiten Typs wenigstens eines einer Speicherbereinigung, Abnutzungsausgleich, Leseauffrischung, Fehlererfassung und -korrektur und Leistungsausfallschutz aufweist.
  6. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 1, wobei die Jobverwalterschaltung (HW) ferner konfiguriert ist, um einen Status zu überwachen, welcher mit Operationen des nichtflüchtigen Speichers und des Controllers (1330a, 1330b) verbunden ist; und den Prozessor (1339) mit der Benachrichtigung vorzusehen, welche Informationen über den überwachten Status aufweist.
  7. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 6, wobei der Job des zweiten Typs eine Verwaltungsoperation zum Auflösen des überwachten Status aufweist, und die Jobverwalterschaltung (HW) ferner konfiguriert ist, um die Verwaltungsoperation durchzuführen, welche durch den Verwaltungsbefehl geleitet wird.
  8. Speichervorrichtung (1300, 1300a, 1300b), die Folgendes aufweist: einen nichtflüchtigen Speicher; und einen Controller (1330a, 1330b), der Folgendes aufweist: eine Jobverwalterschaltung (HW), welche konfiguriert ist, um einen Job eines ersten Typs zu verwalten, welcher mit dem nichtflüchtigen Speicher verbunden ist, und einen Prozessor (1339), welcher konfiguriert ist, um einen Job eines zweiten Typs, welcher mit dem nichtflüchtigen Speicher verbunden ist, zu verarbeiten, wobei der Prozessor (1339) konfiguriert ist, um nicht in den Job des ersten Typs einzugreifen, während der Job des ersten Typs normal durch die Jobverwalterschaltung (HW) verwaltet wird, und wobei der Prozessor (1339) ferner konfiguriert ist, um einen Verwaltungsbefehl auszugeben, welcher ein Verarbeiten des Jobs des zweiten Typs befiehlt, wenn eine Eingreifbedingung erfüllt ist, während der Prozessor (1339) nicht in den Job des ersten Typs eingreift.
  9. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 8, wobei die Eingreifbedingung erfüllt ist, wenn ein Fehler oder eine Ausnahme, welche mit dem Job des ersten Typs verbunden ist, auftritt.
  10. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 8, wobei die Jobverwalterschaltung (HW) ferner konfiguriert ist, um einen Status zu überwachen, welcher mit Operationen des nichtflüchtigen Speichers und des Controllers (1330a, 1330b) verbunden ist; und den Prozessor (1339) zu benachrichtigen, dass die Eingreifbedingung erfüllt ist, basierend auf dem überwachten Status.
  11. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 8, wobei die Jobverwalterschaltung (HW) ferner konfiguriert ist, um den Job des zweiten Typs in Antwort auf den Verwaltungsbefehl durchzuführen derart, dass ein Status, welcher mit der erfüllten Eingreifbedingung verbunden ist, aufgelöst wird.
  12. Speichervorrichtung (1300, 1300a, 1300b), die Folgendes aufweist: einen nichtflüchtigen Speicher; und einen Controller (1330a, 1330b), welcher konfiguriert ist, um einen Betrieb des nichtflüchtigen Speichers zu steuern, wobei der Controller (1330a, 1330b) Folgendes aufweist: eine Schreibverwalterschaltung (1333), welche konfiguriert ist, um einen ersten Job eines ersten Typs zu verwalten, wobei der erste Job ein Speichern von Schreibdaten in dem nichtflüchtigen Speicher aufweist, eine Leseverwalterschaltung (1335), welche konfiguriert ist, um einen zweiten Job des ersten Typs zu verwalten, wobei der zweite Job ein Ausgeben von Lesedaten nach außerhalb des Controllers (1330a, 1330b) aufweist, eine Datendomänen-Verwalterschaltung (1337), welche konfiguriert ist, um Information über einen Status wenigstens eines des nichtflüchtigen Speichers, der Schreibdaten und der Lesedaten hinsichtlich der Leistungsfähigkeit des ersten Jobs und des zweiten Jobs zu erlangen, und einen Prozessor (1339), welcher konfiguriert ist, um einen dritten Job eines zweiten Typs, welcher mit dem nichtflüchtigen Speicher verbunden ist, zu verarbeiten, wobei die Datendomänen-Verwalterschaltung (1337) ferner konfiguriert ist, um eine Benachrichtigung für den Prozessor (1339) basierend auf der erlangten Information vorzusehen, und wobei der Prozessor (1339) konfiguriert ist, um in den ersten Job und den zweiten Job nicht einzugreifen, wenn die Benachrichtigung nicht von der Datendomänen-Verwalterschaltung (1337) empfangen wird.
  13. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 12, wobei die Schreibverwalterschaltung (1333) ferner konfiguriert ist, um die Schreibdaten zu puffern, wobei eine Mehrzahl von Teilen der Schreibdaten gepuffert wird, bis Programmeinheitsdaten der Schreibdaten angesammelt sind; eine physikalische Adresse als zur Verfügung stehend für die Programmeinheitsdaten zuzuweisen; und die Programmeinheitsdaten zusammen mit zusätzlicher Information, welche die zugewiesene physikalische Adresse anzeigt, zu dem nichtflüchtigen Speicher zu übertragen.
  14. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 13, wobei die Datendomänen-Verwalterschaltung (1337) ferner konfiguriert ist, um Information über die zugewiesene physikalische Adresse von der Schreibverwalterschaltung (1333) zu empfangen; und eine Korrespondenzbeziehung zwischen einer logischen Adresse, welche mit den Schreibdaten verbunden ist, und der zugewiesenen physikalischen Adresse zu verwalten.
  15. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 13, wobei, wenn neue Schreibdaten als durch eine logische Adresse begleitet empfangen werden, welche identisch zu einer logischen Adresse ist, welche mit den gepufferten Schreibdaten verbunden ist, die Schreibverwalterschaltung (1333) ferner konfiguriert ist, um die gepufferten Schreibdaten zu invalidieren und um die neuen Schreibdaten zu puffern.
  16. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 12, wobei, wenn die Lesedaten in der Schreibverwalterschaltung (1333) nicht gepuffert sind, die Schreibverwalterschaltung (1333) ferner konfiguriert ist, um die Datendomänen-Verwalterschaltung (1337) mit einem Lesebefehl, welcher den Lesedaten entspricht, vorzusehen.
  17. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 16, wobei die Datendomänen-Verwalterschaltung (1337) ferner konfiguriert ist, um eine logische Adresse zu erlangen, welche mit den Lesedaten verbunden ist, in Antwort auf den Lesebefehl, welcher von der Schreibverwalterschaltung (1333) empfangen wird; eine physikalische Adresse zu erlangen, welche der erhaltenen logischen Adresse entspricht, basierend auf Metadaten; und den Lesebefehl zusammen mit der erlangten physikalischen Adresse zu dem nichtflüchtigen Speicher zu übertragen.
  18. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 17, wobei die Leseverwalterschaltung (1335) ferner konfiguriert ist, um die Lesedaten, welche von einem Speicherbereich der erlangten physikalischen Adresse des nichtflüchtigen Speichers ausgegeben werden, zu puffern.
  19. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 12, wobei, wenn die Lesedaten in der Schreibverwalterschaltung (1333) gepuffert sind, die Schreibverwalterschaltung (1333) ferner konfiguriert ist, um die Lesedaten, welche in dem Schreibdatenverwalter gepuffert sind, für die Leseverwalterschaltung (1335) vorzusehen.
  20. Speichervorrichtung (1300, 1300a, 1300b) nach Anspruch 12, wobei der Prozessor (1339) ferner konfiguriert ist, um den dritten Job in Antwort auf die Benachrichtigung, welche von der Datendomänen-Verwalterschaltung (1337) empfangen wird, zu verarbeiten.
DE102018110012.4A 2017-06-30 2018-04-26 Speichervorrichtung, die in der Lage ist Jobs ohne Eingreifen eines Prozessors zu verwalten Pending DE102018110012A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0083817 2017-06-30
KR1020170083817A KR102398201B1 (ko) 2017-06-30 2017-06-30 프로세서의 개입 없이 단순 작업을 관리하는 스토리지 장치

Publications (1)

Publication Number Publication Date
DE102018110012A1 true DE102018110012A1 (de) 2019-01-03

Family

ID=64661880

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018110012.4A Pending DE102018110012A1 (de) 2017-06-30 2018-04-26 Speichervorrichtung, die in der Lage ist Jobs ohne Eingreifen eines Prozessors zu verwalten

Country Status (4)

Country Link
US (1) US10789019B2 (de)
KR (1) KR102398201B1 (de)
CN (1) CN109213441B (de)
DE (1) DE102018110012A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6757708B2 (ja) * 2017-10-31 2020-09-23 株式会社日立製作所 情報処理装置及び構成要素の管理方法
CN110554298B (zh) * 2019-08-27 2022-03-22 江苏芯盛智能科技有限公司 芯片和芯片测试方法
WO2021111639A1 (ja) * 2019-12-06 2021-06-10 三菱電機株式会社 コントローラ
KR20210081088A (ko) * 2019-12-23 2021-07-01 에스케이하이닉스 주식회사 메모리 컨트롤러를 포함하는 스토리지 장치
KR20210103228A (ko) * 2020-02-13 2021-08-23 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US11500581B2 (en) 2020-09-25 2022-11-15 Western Digital Technologies, Inc. Efficient TLP fragmentations in extended LBA environment
KR20220067797A (ko) 2020-11-18 2022-05-25 에스케이하이닉스 주식회사 메모리 컨트롤러
US11853218B2 (en) 2020-11-20 2023-12-26 Western Digital Technologies, Inc. Semi and cached TLP coalescing
US11537524B2 (en) 2020-11-20 2022-12-27 Western Digital Technologies, Inc. Effective PCIe utilization by PCIe TLP coalescing
EP4273706A1 (de) * 2022-05-02 2023-11-08 Samsung Electronics Co., Ltd. Speichervorrichtung, speichervorrichtung und system mit der speichervorrichtung und der speichervorrichtung

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170083817A (ko) 2016-01-11 2017-07-19 부산대학교 산학협력단 복수의 gps를 이용한 이동 로봇의 위치 추정 방법

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993003438A1 (en) * 1991-08-07 1993-02-18 Adaptec, Incorporated Intelligent hardware for automatically reading and writing multiple sectors of data between a computer bus and a disk drive
JPH0798941A (ja) * 1993-09-28 1995-04-11 Hitachi Ltd ディスク型記録媒体を用いた記録再生装置
US5778422A (en) * 1996-04-04 1998-07-07 International Business Machines Corporation Data processing system memory controller that selectively caches data associated with write requests
US7457897B1 (en) 2004-03-17 2008-11-25 Suoer Talent Electronics, Inc. PCI express-compatible controller and interface for flash memory
US6823472B1 (en) * 2000-05-11 2004-11-23 Lsi Logic Corporation Shared resource manager for multiprocessor computer system
US8031623B2 (en) * 2004-10-25 2011-10-04 Ineoquest Technologies, Inc. System and method for creating multiple transportation streams of streaming media network test traffic in packet-based networks
JP4470455B2 (ja) 2003-11-05 2010-06-02 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2006244653A (ja) * 2005-03-04 2006-09-14 Matsushita Electric Ind Co Ltd ストリームデータ記録装置、およびストリームデータ記録方法
US20090070654A1 (en) * 2006-02-09 2009-03-12 International Business Machines Corporation Design Structure For A Processor System With Background Error Handling Feature
KR100801884B1 (ko) 2006-04-25 2008-02-12 (재)대구경북과학기술연구원 플래시 메모리, 플래시 메모리의 제어 방법 및 직렬인터페이스 장치
KR100869675B1 (ko) 2007-02-05 2008-11-21 지인정보기술 주식회사 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법
US7769958B2 (en) * 2007-06-22 2010-08-03 Mips Technologies, Inc. Avoiding livelock using intervention messages in multiple core processors
US7688652B2 (en) 2007-07-18 2010-03-30 Mosaid Technologies Incorporated Storage of data in memory via packet strobing
KR20110019491A (ko) 2009-08-20 2011-02-28 삼성전자주식회사 데이터 처리 방법 및 데이터 처리 시스템
KR20110087036A (ko) * 2010-01-25 2011-08-02 삼성전자주식회사 덮어쓰기 가능한 불휘발성 메모리 장치 및 그것의 데이터 쓰기 방법
US8588228B1 (en) 2010-08-16 2013-11-19 Pmc-Sierra Us, Inc. Nonvolatile memory controller with host controller interface for retrieving and dispatching nonvolatile memory commands in a distributed manner
KR101736384B1 (ko) * 2010-09-29 2017-05-16 삼성전자주식회사 비휘발성 메모리 시스템
US9009391B2 (en) 2010-10-25 2015-04-14 Fastor Systems, Inc. Solid state drive architecture
US9606863B2 (en) 2010-10-25 2017-03-28 SMART High Reliability Solutions, LLC Fabric-based solid state drive architecture
US20150370655A1 (en) * 2013-03-15 2015-12-24 Hewlett-Packard Development Company, L.P. Memory module controller supporting extended writes
US20160321010A1 (en) * 2015-04-28 2016-11-03 Kabushiki Kaisha Toshiba Storage system having a host directly manage physical data locations of storage device
US20170046260A1 (en) * 2015-08-14 2017-02-16 Kabushiki Kaisha Toshiba Storage device and method for saving write cache data
CN106569727B (zh) * 2015-10-08 2019-04-16 福州瑞芯微电子股份有限公司 一种多控制器间多存储器共享并行数据读写装置及其写入、读取方法
US9880783B2 (en) * 2015-10-28 2018-01-30 Sandisk Technologies Llc System and method for utilization of a shadow data buffer in a host where the shadow data buffer is controlled by external storage controller
US10339044B2 (en) * 2016-03-30 2019-07-02 Sandisk Technologies Llc Method and system for blending data reclamation and data integrity garbage collection
US20170337103A1 (en) * 2016-05-19 2017-11-23 Intel Corporation Method and apparatus to provide data redundancy in a solid-state drive
WO2018094416A1 (en) * 2016-11-21 2018-05-24 Sanmina Corporation Dual inline memory module
US10296224B2 (en) * 2016-12-21 2019-05-21 Intel Corporation Apparatus, system and method for increasing the capacity of a storage device available to store user data
US10732893B2 (en) * 2017-05-25 2020-08-04 Western Digital Technologies, Inc. Non-volatile memory over fabric controller with memory bypass

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170083817A (ko) 2016-01-11 2017-07-19 부산대학교 산학협력단 복수의 gps를 이용한 이동 로봇의 위치 추정 방법

Also Published As

Publication number Publication date
KR102398201B1 (ko) 2022-05-17
US20190004869A1 (en) 2019-01-03
CN109213441A (zh) 2019-01-15
CN109213441B (zh) 2024-01-23
US10789019B2 (en) 2020-09-29
KR20190003911A (ko) 2019-01-10

Similar Documents

Publication Publication Date Title
DE102018110012A1 (de) Speichervorrichtung, die in der Lage ist Jobs ohne Eingreifen eines Prozessors zu verwalten
TWI700586B (zh) 計算機系統及儲存裝置之控制方法
DE112019000146T5 (de) Multivorrichtungsspeichersystem mit verteilter lese-/schreibverarbeitung
DE102019111132A1 (de) Speichereinrichtung, die Hostspeicher nutzt und Betriebsverfahren dafür
DE112019000149T5 (de) Multivorrichtungsspeichersystem mit gehosteten diensten auf peer-speichervorrichtungen
US20160026394A1 (en) Image processing device, data accessing method, and computer program product
DE102017113439A1 (de) Abbildungstabellen für Speichervorrichtungen
JP7010809B2 (ja) デデュープ可能なメモリキャッシュ及びそのための動作方法
CN102428449A (zh) 数据存储装置中的后台无用单元收集的主机控制
DE112011106013T5 (de) System und Verfahren für den intelligenten Datentransfer von einem Prozessor in ein Speicheruntersystem
CN110851383B (zh) 一种管理存储系统的方法及设备
CN102841854A (zh) 根据动态分级存储器缓存认知执行数据读取的方法和系统
DE102018110704A1 (de) Speicherungsvorrichtung für ein vorausgehendes Verwalten einer Schreibdaten zuzuweisenden physischen Adresse
US20160350003A1 (en) Memory system
US11868285B2 (en) Memory controller configured to transmit interrupt signal if volatile memory has no data corresponding to address requested from source
US10416895B2 (en) Storage devices managing duplicated data based on the number of operations
DE102017128967A1 (de) Speichervorrichtung, welche eine Hashing-basierte Übersetzung zwischen einer logischen Adresse und einer physikalischen Adresse durchführt
DE102015109359A1 (de) Interner Speicher, externer Speicher, der mit diesem kommunizieren kann, und Datenverarbeitungssystem mit diesen Speichern
JP2019133391A (ja) メモリシステムおよび制御方法
CN104346293A (zh) 混合内存的数据访问方法、模块、处理器及终端设备
DE112020000183T5 (de) Speicherungsklassenspeicherzugriff
DE112017001658T5 (de) Behandlung von fehleranfälligen Cache-Zeilen-Slots eines speicherseitigen Caches eines Multilevel-Systemspeichers
US11132291B2 (en) System and method of FPGA-executed flash translation layer in multiple solid state drives
JP2019105874A (ja) 情報処理装置および方法
US20080229333A1 (en) Method, System And Storage Medium For Implementing A Message Board Cache System

Legal Events

Date Code Title Description
R012 Request for examination validly filed