DE102017104448A1 - Datenspeichervorrichtung - Google Patents

Datenspeichervorrichtung Download PDF

Info

Publication number
DE102017104448A1
DE102017104448A1 DE102017104448.5A DE102017104448A DE102017104448A1 DE 102017104448 A1 DE102017104448 A1 DE 102017104448A1 DE 102017104448 A DE102017104448 A DE 102017104448A DE 102017104448 A1 DE102017104448 A1 DE 102017104448A1
Authority
DE
Germany
Prior art keywords
data
storage device
command
data storage
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
DE102017104448.5A
Other languages
English (en)
Inventor
Eun Jin Yun
Sil Wan CHANG
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 DE102017104448A1 publication Critical patent/DE102017104448A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • 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/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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction

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

Abstract

Eine Datenspeichervorrichtung (300, 300a, 300b, 300c) und ein Verfahren zum Betreiben derselben sind vorgesehen. Die Datenspeichervorrichtung (300, 300a, 300b, 300c) weist eine erste nichtflüchtige Speichervorrichtung (410-1), eine zweite nichtflüchtige Speichervorrichtung (410-2) und ein Verwaltungsmodul (310) auf. Das Verwaltungsmodul (310) empfängt einen Mehrfachzugriffsbefehl, welcher erste und zweite physikalische Adressen aufweist, welche unterschiedlich voneinander sind, von einem Host (200), erzeugt und sendet einen ersten Zugriffsbefehl, welcher die erste physikalische Adresse aufweist, zu der ersten nichtflüchtigen Speichervorrichtung (410-1) und erzeugt und sendet einen zweiten Zugriffsbefehl, welcher die zweite physikalische Adresse aufweist, zu der zweiten nichtflüchtigen Speichervorrichtung (410-2). Die Datenspeichervorrichtung (300, 300a, 300b, 300c) führt den ersten und zweiten Zugriffsbefehl auf der ersten und zweiten physikalischen Adresse jeweils durch.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität der koreanischen Patentanmeldung Nr. 10-2016-0036386 , welche am 25. März 2016 eingereicht wurde, deren Offenbarung hiermit durch Bezugnahme in ihrer Gesamt mit eingebunden ist.
  • HINTERGRUND
  • Ausführungsformen der vorliegenden Offenbarung beziehen sich auf eine Datenspeichervorrichtung und genauer auf eine Datenspeichervorrichtung und ein Verfahren zum Erhöhen einer Übertragungseffizienz zwischen einem Host und der Datenspeichervorrichtung und ein Datenverarbeitungssystem, welches dieselbe aufweist.
  • Eine Speichervorrichtung, welche eine große Kapazität hat, weist gewöhnlich eine Mehrzahl von Speichervorrichtungen auf. Eine Speichervorrichtung wird verwendet, um Daten zu speichern. Speichervorrichtungen sind in flüchtige Speichervorrichtungen und nichtflüchtige Speichervorrichtungen unterteilt.
  • Eine Datenduplikation oder ein Backup wird oftmals verwendet, um Daten im Fall einer Fehlfunktion in Speichervorrichtungen oder in einer Leistungsversorgung wiederherzustellen. Ein Datenspiegeln ist eines solcher Datenduplikationsschemata. Es ist eine Technik eines duplizierten Speichern von Daten in wenigstens einer Vorrichtung. Ein Host führt gewöhnlich eine Mehrzahl von Schreibbefehlen auf einer Speichervorrichtung hinsichtlich derselben Daten aus, um eine Datenspiegelung durchzuführen oder führt einen einzelnen Schreibbefehl mit einer einzelnen Adresse aus, welche durch die Speichervorrichtung empfangen wird und in der Speichervorrichtung übersetzt wird, um eine Duplikation durchzuführen. Als solches kann eine typische Datenduplikation eine größere Anzahl von Befehlen (beispielsweise zweimal so viele) benötigen, welche durch einen Host erzeugt werden, oder kann ein Durchführen einer Adressübersetzung und/oder eine Verarbeitung an einer Speichervorrichtung benötigen. Beide derselben können eine zusätzliche Verarbeitung benötigen.
  • KURZFASSUNG
  • Einige Ausführungsformen sehen ein Datenspeichersystem, ein Verfahren und eine Vorrichtung zum Erhöhen einer Dateneffizienz zwischen einem Host und einer Datenspeichervorrichtung und zur Verringerung einer Leistungsaufnahme vor.
  • In einigen Ausführungsformen weist eine Datenspeichervorrichtung eine erste nichtflüchtige Speichervorrichtung, eine zweite nichtflüchtige Speichervorrichtung und eine Verwaltungsschaltung auf, welche mit der ersten nichtflüchtigen Speichervorrichtung und der zweiten nichtflüchtigen Speichervorrichtung verbunden ist. Die Verwaltungsschaltung ist konfiguriert, um: einen externen Mehrfachzugriffsbefehl zu empfangen, wobei der der externe Mehrfachzugriffsbefehl von außerhalb der Datenspeichervorrichtung empfangen wird und eine erste Adresse und eine zweite Adresse aufweist, um basierend auf dem externen Mehrfachzugriffsbefehl und der ersten Adresse einen ersten internen Zugriffsbefehl zu erzeugen, und um den ersten internen Zugriffsbefehl und die erste Adresse zu der ersten nichtflüchtigen Speichervorrichtung zuzuführen, und um basierend auf dem externen Mehrfachzugriffsbefehl und der zweiten Adresse einen zweiten internen Zugriffsbefehl zu erzeugen und den zweiten internen Zugriffsbefehl und die zweite Adresse der zweiten nichtflüchtigen Speichervorrichtung zuzuführen.
  • In einigen Ausführungsformen, welche die obigen oder andere Ausführungsformen aufweisen können, weist ein Verfahren zum Zugreifen auf eine Speichervorrichtung ein Empfangen eines externen Mehrfachzugriffsbefehls an der Datenspeichervorrichtung von einer Vorrichtung extern zu der Datenspeichervorrichtung auf, wobei der externe Mehrfachzugriffsbefehl eine erste Adresse und eine zweite Adresse aufweist; ein Zuführen eines ersten Zugriffsbefehls basierend auf dem externen Mehrfachzugriffsbefehl zu einem ersten nichtflüchtigen Speicher, wobei der erste Zugriffsbefehl die erste Adresse aufweist; ein Ausführen einer ersten Zugriffsoperation auf die erste nichtflüchtige Speichervorrichtung unter Verwendung des ersten Zugriffsbefehls und der ersten Adresse; ein Zuführen eines zweiten Zugriffsbefehls basierend auf dem externen Mehrfachzugriffsbefehl zu einem zweiten nichtflüchtigen Speicher, wobei der zweite Zugriffsbefehl die zweite Adresse aufweist; und ein Ausführen einer zweiten Zugriffsoperation auf die zweite nichtflüchtige Speichervorrichtung unter Verwendung des zweiten Zugriffsbefehls und der zweiten Adresse.
  • In einigen Ausführungsformen, welche die obigen oder andere Ausführungsformen aufweisen können, weist ein Mehrfachzugriffsverfahren für eine Datenspeichervorrichtung ein Initiieren einer Mehrfachzugriffsoperation auf einer Hostvorrichtung durch ein Erzeugen einer Mehrfachzugriffsanforderung auf; ein Durchführen einer Mappingoperation beziehungsweise Abbildungsoperation auf der Mehrfachzugriffsanfrage, um einen Mehrfachzugriffsbefehl zu erzeugen, wobei der Mehrfachzugriffsbefehl wenigstens einen Befehlstypanzeiger, ein Duplzier-/Split-Flag (Duplicate/Split-Flag) und eine Mehrzahl von Adressen aufweist; und ein Senden des Mehrfachzugriffsbefehls von dem Host zu der Datenspeichervorrichtung.
  • In einigen Ausführungsformen, welche die obigen oder andere Ausführungsformen aufweisen können, weist ein Mehrfachzugriffsverfahren für eine Datenspeichervorrichtung, welche eine Verwaltungsschaltung und eine Mehrzahl von nichtflüchtigen Speichervorrichtungen aufweist, Folgendes auf: ein Empfangen eines externen Mehrfachzugriffsbefehls von einer Vorrichtung extern zu der Datenspeichervorrichtung, wobei der externe Mehrfachzugriffsbefehl einen Befehlstypanzeiger und wenigstens eine erste Adresse und eine zweite Adresse aufweist; ein Übertragen eines ersten internen Mehrfachzugriffsbefehls basierend auf dem externen Mehrfachzugriffsbefehl zu einer ersten nichtflüchtigen Speichervorrichtung der Datenspeichervorrichtung unter Verwendung der ersten Adresse; ein Übertragen eines zweiten internen Mehrfachzugriffsbefehls basierend auf dem externen Mehrfachzugriffsbefehl zu einer zweiten nichtflüchtigen Speichervorrichtung der Datenspeichervorrichtung unter Verwendung der zweiten Adresse; ein Zugreifen auf die erste nichtflüchtige Speichervorrichtung unter Verwendung der ersten Adresse; und ein Zugreifen auf die zweite nichtflüchtige Speichervorrichtung unter Verwendung der zweiten Adresse.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die obigen und anderen Merkmale und Vorteile werden deutlicher werden durch ein Beschreiben von beispielhaften Ausführungsformen davon im Detail unter Bezugnahme auf die beigefügten Zeichnungen, in welchen:
  • 1 ein Blockschaltbild eines Datenverarbeitungssystems gemäß einigen Ausführungsformen ist;
  • 2 ein Blockschaltbild einer Host- und einer Datenspeichervorrichtung ist, welche in 1 gemäß einigen Ausführungsformen veranschaulicht sind;
  • 3 ein Blockschaltbild eines Speichervorrichtungsclusters ist, welches in 2 gemäß einigen beispielhaften Ausführungsformen veranschaulicht ist;
  • 4 ein Diagramm der hierarchischen Struktur eines Host gemäß einigen Ausführungsformen ist;
  • 5A und 5B Blockschaltbilder von Beispielen der Datenspeichervorrichtung, welche in 1 veranschaulicht ist, sind;
  • 6 ein Flussdiagramm eines Mehrfachzugriffsverfahrens eines Datenverarbeitungssystems gemäß einigen Ausführungsformen ist;
  • 7 ein Flussdiagramm eines Mehrfachschreibverfahrens eines Datenverarbeitungssystems gemäß einigen Ausführungsformen ist;
  • 8A ein Diagramm eines Mehrfachschreibbefehls wie in 7 veranschaulicht gemäß einigen Ausführungsformen ist;
  • 8B ein Diagramm eines anderen Mehrfachschreibbefehls wie beispielsweise in 7 veranschaulicht gemäß anderen Ausführungsformen des erfinderischen Konzepts ist;
  • 9 ein Diagramm zum Erklären einer Mehrfachschreiboperation eines Datenverarbeitungssystems gemäß einigen Ausführungsformen ist;
  • 10 ein Diagramm zum Erklären einer Mehrfachschreiboperation eines Datenverarbeitungssystems gemäß anderen Ausführungsformen ist;
  • 11 ein Flussdiagramm eines Mehrfachleseverfahrens eines Datenverarbeitungssystems gemäß einigen Ausführungsformen ist;
  • 12 ein Flussdiagramm eines Mehrfachleseverfahrens eines Datenverarbeitungssystems gemäß anderen Ausführungsformen ist;
  • 13 ein Diagramm zum Erklären einer Mehrfachleseoperation eines Datenverarbeitungssystems gemäß einigen Ausführungsformen ist;
  • 14 ein Diagramm zum Erklären eines Mehrfachlöschverfahrens eines Datenverarbeitungssystems gemäß einigen Ausführungsformen ist;
  • 15 ein Blockschaltbild eines Datenverarbeitungssystems gemäß einigen Ausführungsformen ist; und
  • 16 und 17 Blockschaltbilder von Datenverarbeitungssystemen sind, welche eine Datenspeichervorrichtung gemäß einigen Ausführungsformen aufweisen.
  • Gleiche Ziffern beziehen sich auf gleiche Elemente durchgehend. Obwohl die unterschiedlichen Figuren Variationen von beispielhaften Ausführungsformen zeigen und auf sie unter Verwendung einer Sprache wie beispielsweise ”in einer Ausführungsform” Bezug genommen werden kann, sind diese Figuren nicht notwendigerweise vorgesehen, um wechselseitig füreinander ausschließend zu sein. Vielmehr können, wie aus dem Zusammenhang der detaillierten Beschreibung untenstehend gesehen werden wird, bestimmte Merkmale, welche in unterschiedlichen Figuren abgebildet und beschrieben sind, mit anderen Merkmalen aus anderen Figuren kombiniert werden, um zu verschiedenen Ausführungsformen zu führen, wenn die Figuren und ihre Beschreibung als ein Gesamtes in Betracht gezogen werden.
  • DETAILLIERTE BESCHREIBUNG
  • Wie es in dem Feld der offenbarten Technologie traditionell ist, werden Merkmale und Ausführungsformen beschrieben und in den Zeichnungen in Einheiten von funktionalen Blöcken, Einheiten und/oder Modulen veranschaulicht. Fachleute werden anerkennen, dass diese Blöcke, Einheiten und/oder Module physikalisch durch elektronische (oder optische) Schaltungen wie beispielsweise Logikschaltungen, diskrete Komponenten, Mikroprozessoren, festverdrahtete Schaltungen, Speicherelemente, Verdrahtungsverbindungen und dergleichen implementiert sind, welche unter Verwendung von halbleiterbasierten Herstellungstechniken und/oder anderen Herstellungstechnologien gebildet werden können. In dem Fall der Blöcke, Einheiten und/oder Module, welche durch Mikroprozessoren oder Ähnliches implementiert sind, können sie unter Verwendung von Software (beispielsweise Microcode) programmiert werden, um verschiedene Funktionen, welche hierin diskutiert werden, durchzuführen, und können optional durch Firmware und/oder Software betrieben werden. Alternativ kann jeder Block, jede Einheit und/oder jedes Modul durch eine dedizierte Hardware oder als eine Kombination einer dedizierten Hardware, um einige Funktionen durchzuführen, und eines Prozessors (beispielsweise einer oder mehrere programmierte Mikroprozessoren und zugeordnete Schaltungen), um andere Funktionen durchzuführen, implementiert sein. Ebenso kann jeder Block, jede Einheit und/oder jedes Modul der Ausführungsformen physikalisch in zwei oder mehr wechselwirkende und diskrete Blöcke, Einheiten und/oder Module getrennt sein, ohne vom Umfang der erfinderischen Konzepte abzuweichen. Ferner können die Blöcke, Einheiten und/oder Module der Ausführungsformen physikalisch in komplexere Blöcke, Einheiten und/oder Module kombiniert werden, ohne von dem Umfang der erfinderischen Konzepte abzuweichen.
  • Solange nicht anderweitig definiert haben alle Begriffe (einschließlich technischer und wissenschaftlicher Begriffe), welche hierin verwendet werden, dieselbe Bedeutung wie allgemein durch einen Fachmann, zu dessen Fachgebiet diese Erfindung gehört, verstanden wird. Es wird ferner verstanden werden, dass Begriffe, wie beispielsweise solche, welche in herkömmlich verwendeten Wörterbüchern definiert sind, als eine Bedeutung habend interpretiert werden sollen, welche konsistent mit ihrer Bedeutung in dem Zusammenhang des relevanten Fachgebiets und/oder der vorliegenden Anmeldung ist, und nicht in einem idealisierten oder übermäßig formalen Sinne interpretiert werden werden, solange nicht ausdrücklich hierin so definiert.
  • 1 ist ein Blockschaltbild eines Datenverarbeitungssystems 100 gemäß einigen Ausführungsformen. 2 ist ein Blockschaltbild eines Host 200 und einer Datenspeichervorrichtung 300, welche in 1 gemäß einigen Ausführungsformen veranschaulicht sind. 3 ist ein Blockschaltbild eines Speichervorrichtungsclusters 400a, welches in 2 gemäß einigen Ausführungsformen veranschaulicht ist.
  • Bezugnehmend auf die 1 bis 3 kann das Datenverarbeitungssystem 100 den Host 200 und die Datenspeichervorrichtung 300 aufweisen, welche einen Befehl und/oder Daten mit dem Host 200 durch eine Schnittstelle 110 kommunizieren können. Das Datenverarbeitungssystem 100 kann beispielsweise als ein Personalcomputer (PC), eine Workstation, ein Datencenter, ein Internetdatencenter (IDC = Internet Data Center = Internetdatencenter), ein Speicherbereichsnetzwerk (SAN = Storage Area Network = Speicherbereichsnetzwerk), ein netzgebundener Speicher (NAS = Network Attached Storage = netzgebundener Speicher) oder eine mobile Berechnungsvorrichtung implementiert sein, das erfinderische Konzept ist jedoch nicht auf diese Beispiele beschränkt. Die mobile Berechnungsvorrichtung kann ein Laptopcomputer, ein Mobiltelefon, ein Smartphone, ein Tablet-PC, ein persönlicher digitaler Assistent (PDA = Personal Digital Assistant = persönlicher digitaler Assistent), ein Enterprise Digital Assistant (EDA), eine digitale Fotokamera, eine digitale Videokamera, ein tragbarer Multimediaplayer (PMP = Portable Multimedia Player = tragbarer Multimediaplayer), eine persönliche Navigationsvorrichtung oder eine tragbare Navigationsvorrichtung (PND = Portable Navigation Device = tragbare Navigationsvorrichtung), eine handgeführte Spielekonsole, eine mobile Internetvorrichtung (MID = Mobile Internet Device = mobile Internetvorrichtung), ein tragbarer Computer, eine Internet-of-Things(IoT)-Vorrichtung, eine Internet-of-Everything(IoE)-Vorrichtung, eine Drohne oder ein E-Buch sein, ist jedoch nicht darauf beschränkt.
  • Die Schnittstelle 110 kann beispielsweise implementiert sein als eine serial advanced technology attachment (SATA)-Schnittstelle, a SATA express (SATAe)-Schnittstelle, a SAS (serial attached small computer system-Schnittstelle (SCSI)), a peripheral component interconnect express (PCIe)-Schnittstelle, a non-volatile memory express (NVMe)-Schnittstelle, an advanced host controller-Schnittstelle (AHCI), oder eine multimedia card (MMC)-Schnittstelle, das erfinderische Konzept ist jedoch nicht auf diese Beispiele beschränkt. Die Schnittstelle 110 kann elektrische Signale und/oder optische Signale zwischen dem Host 200 und der Datenspeichervorrichtung 300 übertragen.
  • Der Host 200 kann eine Datenverarbeitungsoperation (beispielsweise eine Schreib- oder Leseoperation) der Datenspeichervorrichtung 300 durch die Schnittstelle 110 steuern. Der Host 200 kann sich auf einen Hostcontroller beziehen.
  • Die Datenspeichervorrichtung 300 kann ein Verwaltungsmodul 310 und eine Mehrzahl von nichtflüchtigen Speicher(NVM = Non-Volatile Memory)-Vorrichtungen 410-1 bis 410-m aufweisen, wobei ”m” eine ganze Zahl von wenigstens 2 ist. Zum Zweck der Dienlichkeit in der Beschreibung werden die NVM-Vorrichtungen 410-1 bis 410-m das Speichervorrichtungscluster 400 genannt werden. Eine Datenspeichervorrichtung 300a, welche in 2 veranschaulicht ist, kann ebenso einen Puffer 360 und eine integrierte Leistungsverwaltungsschaltung (PMIC = Power Management Integrated Circuit = integrierte Leistungsverwaltungsschaltung) 370 aufweisen.
  • Die Datenspeichervorrichtung 300 kann eine nichtflüchtige Speichervorrichtung, wie beispielsweise eine flashbasierte Speichervorrichtung, oder eine Phasenübergangsdirektzugriffsspeicher(PRAM = Phase-change Random Access Memory)-Vorrichtung sein, ist jedoch nicht auf diese Beispiele beschränkt. Die Datenspeichervorrichtung 300 kann beispielsweise als ein Festkörperlaufwerk oder eine Festkörperplatte (SSD = Solid State Drive), eine eingebettete SSD (eSSD), ein Universalflashspeicher (UFS = Universal Flash Storage = Universalflashspeicher), eine MMC, eine eingebettete MMC (eMMC) oder ein verwalteter NAND implementiert sein, das erfinderische Konzept ist jedoch nicht auf diese Beispiele beschränkt.
  • In dem Fall, in dem die Datenspeichervorrichtung 300 eine oder mehrere flashbasierte Speichervorrichtungen aufweist, kann jede flashbasierte Speichervorrichtung eine Speicherzellanordnung aufweisen. Die Speicherzellanordnung kann eine Mehrzahl von Speicherzellen aufweisen. Die Speicherzellanordnung kann eine zweidimensionale oder dreidimensionale Speicherzellanordnung sein.
  • Die dreidimensionale Speicherzellanordnung kann monolithisch an einer oder mehreren physikalischen Ebenen in einer Anordnung von Speicherzellen gebildet sein, welche einen aktiven Bereich haben, welcher auf oder über einem Siliziumsubstrat angeordnet ist, und kann eine Schaltung aufweisen, welche auf den Betrieb der Speicherzellen bezogen ist. Die Schaltung kann in, auf oder über dem Siliziumsubstrat gebildet sein. Der Begriff ”monolithisch” bedeutet, dass Schichten in jeder Ebene in einer Anordnung direkt auf Schichten in einer darunterliegenden Ebene in der Anordnung abgeschieden sind. Die dreidimensionale Speicherzellanordnung kann einen vertikalen NAND-Strang aufweisen, welcher vertikal orientiert ist, sodass wenigstens eine Speicherzelle auf oder über einer anderen Speicherzelle platziert ist. Die wenigstens eine Speicherzelle kann eine Ladungsfallenschicht aufweisen. Die folgenden Patentdokumente, welche hiermit durch Bezugnahme in ihrer Gesamtheit miteingebunden sind, beschreiben geeignete Konfigurationen für dreidimensionale Speicheranordnungen, in welchen die dreidimensionale Speicheranordnung als eine Mehrzahl von Ebenen konfiguriert ist, mit Wortleitungen und/oder Bitleitungen, welche zwischen Ebenen gemeinsam verwendet werden: US-Patent Nrn. 7 679 133 ; 8 553 466 ; 8 654 587 ; 8 559 235 ; und US-Offenlegungsschrift Nr. 2011/0233648 .
  • Alternativ kann die Datenspeichervorrichtung 300 als eine Festplatte (HDD = Hard Disk Drive = Festplatte), eine PRAM-Vorrichtung, eine magnetoresistive RAM (MRAM = Magnetoresistive RAM = magnetoresistive RAM)-Vorrichtung, ein Spinübertragsdrehmoment MRAM (STT-MRAM = spin transfer torque MRAM = Spinübertragsdrehmoment MRAM)-Vorrichtung, eine ferroelektrische RAM (FRAM = ferroelectric RAM = ferroelektrischer RAM)-Vorrichtung oder eine resistive RAM (RRAM = resistive RAM = resistiver RAM)-Vorrichtung implementiert sein.
  • Auf das Verwaltungsmodul 310, welches verschiedene Schaltungselemente aufweisen kann und eine integrierte Schaltung aufweisen kann, kann Bezug genommen werden als eine Verwaltungsschaltung 310 und es kann eine Übertragung oder einen Prozess eines Befehls und/oder von Daten, welche zwischen dem Host 200 und den NVM-Vorrichtungen 410-1 bis 410-m übertragen werden, steuern. In dem Fall, in dem die NVM-Vorrichtungen 410-1 bis 410m NAND-Vorrichtungen sind, kann auf die Verwaltungsschaltung 310 Bezug genommen werden als eine NAND-Verwaltungsschaltung. Das Verwaltungsmodul 310 kann beispielsweise in einer IC oder einem Ein-Chip-System (SoC = System-on-Chip = Ein-Chip-System) implementiert sein. Ein Host 200a, welcher in 2 veranschaulicht ist, kann eine Busarchitektur 210, eine zentrale Verarbeitungseinheit (CPU) 220, einen Speicher 225 und eine erste Schnittstelle 230 aufweisen. Der Host 200a kann extern zu der Datenspeichervorrichtung 300a sein. Der Host 200a, einschließlich seiner verschiedenen Komponenten und die Datenspeichervorrichtung 300 einschließlich ihrer verschiedenen Komponenten können konfiguriert sein, um die verschiedenen Operationen und Verfahren, welche hierin beschrieben sind, durchzuführen.
  • Die CPU 220, der Speicher 225 und die erste Schnittstelle 230 können einen Befehl und/oder Daten miteinander oder über die Busarchitektur 210 kommunizieren. Obwohl der Host 200a die Busarchitektur 210, die CPU 220, den Speicher 225 und die erste Schnittstelle 230 in den Ausführungsformen, welche in 2 veranschaulicht sind, aufweist, ist das erfinderische Konzept nicht auf den Host 200a, welcher in 2 veranschaulicht ist, beschränkt.
  • Der Host 200 kann als eine IC, ein Motherboard, ein SoC, ein Anwendungsprozessor (AP = Application Processor = Anwendungsprozessor), ein mobiler AP, ein Webserver, ein Datenserver oder ein Datenbankserver implementiert sein, das erfinderische Konzept ist jedoch nicht auf diese Beispiele beschränkt. Die Busarchitektur 210 kann implementiert sein als eine advanced microcontroller bus Architektur (AMBA), ein advanced high-performance bus (AHB), ein advanced peripheral bus (APB), ein advanced extensible interface (AXI), ein advanced system bus (ASB), AXI coherency extensions (ACE), oder eine Kombination davon, das erfinderische Konzept ist jedoch nicht auf diese Beispiele beschränkt.
  • Die CPU 220 kann einen Schreibbefehl zum Steuern einer Schreiboperation der Datenspeichervorrichtung 300 erzeugen, einen Lesebefehl zum Steuern einer Leseoperation der Datenspeichervorrichtung 300 oder einen Löschbefehl zum Steuern einer Löschoperation der Datenspeichervorrichtung 300. Der Schreibbefehl kann eine Schreibadresse (beispielsweise eine logische Adresse oder eine physikalische Adresse) aufweisen. Der Lesebefehl kann eine Leseadresse (beispielsweise eine logische Adresse oder eine physikalische Adresse) aufweisen. Die CPU 220 kann ebenso einen Mehrfachschreibbefehl (N-Schreiben) zum Steuern einer Mehrfachschreiboperation der Datenspeichervorrichtung 300 erzeugen, einen Mehrfachlesebefehl (N-Lesen) zum Steuern einer Mehrfachleseoperation der Datenspeichervorrichtung 300 oder einen Mehrfachlöschbefehl (N-Löschen) zum Steuern einer Mehrfachlöschoperation der Datenspeichervorrichtung 300. Auf Befehle, welche durch den Host erzeugt werden, wird hierin Bezug genommen als externe Befehle in Bezug auf die Speichervorrichtung 300.
  • Zum Zweck der Vereinfachung wird auf das N-Schreiben, das N-Lesen und das N-Löschen allgemein Bezug genommen als Mehrfachzugriffsbefehle oder externe Mehrfachzugriffsbefehle. Der externe Mehrfachzugriffsbefehl ist ein Befehl, welcher ursprünglich zwischen dem Host 200 und der Datenspeichervorrichtung 300 in verschiedenen Ausführungsformen herumgereicht wird, sodass eine Daten-Schreib, -Lese- oder Löschoperation hinsichtlich wenigstens zwei Adressen (beispielsweise physikalischen Adressen) mit einem einzelnen Befehl durchgeführt wird. Beispielsweise können die wenigstens zwei Adressen zugeordnet sein zu und können übertragen werden zusammen mit einem einzelnen Mehrfachzugriffsbefehl. Der Mehrfachzugriffsbefehl kann das N-Schreiben, das N-Lesen und das N-Löschen aufweisen, das erfinderische Konzept ist jedoch nicht auf diese Ausführungsformen beschränkt. Andere Befehle, welche eine Mehrzahl von Adressen aufweisen, können als ein Mehrfachzugriffsbefehl beschrieben werden.
  • Die CPU 220 kann wenigstens einen Kern aufweisen.
  • Der Speicher 225 kann Daten speichern, welche für den Betrieb der CPU 220 verwendet werden, Daten, welche zu der Datenspeichervorrichtung 300 zu übertragen sind, oder Daten, welche von der Datenspeichervorrichtung 300 empfangen werden. Der Speicher 225 kann ebenso einen Flashübersetzungsschicht (FTL = Flash Translation Layer = Flashübersetzungsschicht)-Code speichern welcher durch die CPU 220 ausgeführt werden kann. Der FTL-Code kann einfach FTL genannt werden. Eine beispielhafte Hierarchie in dem Host 200 und dem FTL werden im Detail untenstehend unter Bezugnahme auf 4 beschrieben werden.
  • Die erste Schnittstelle 230 kann das Format eines Befehls und/oder von Daten, welche zu der Datenspeichervorrichtung 300 zu übertragen sind, ändern, und kann den Befehl und/oder Daten in einem geänderten Format zu der Datenspeichervorrichtung 300 durch die Schnittstelle 110 übertragen. Die erste Schnittstelle 230 kann ebenso das Format einer Antwort und/oder von Daten, welche von der Datenspeichervorrichtung 300 empfangen werden, ändern, und kann die Antwort und/oder Daten in einem geänderten Format zu der CPU 220 durch die Busarchitektur 210 übertragen. Beispielsweise kann die erste Schnittstelle 230 einen Transceiver aufweisen, welcher einen Befehl und/oder Daten überträgt und empfängt. Die Struktur und der Betrieb der ersten Schnittstelle 230 können konfiguriert sein, um kompatibel mit denjenigen der Schnittstelle 110 zu sein.
  • Ein Verwaltungsmodul 310a, welches in 2 veranschaulicht ist, kann eine Busarchitektur 311, einen internen Speicher (beispielsweise SRAM) 315, eine zweite Schnittstelle 320, eine CPU 330, einen Pufferkontroller beziehungsweise eine Puffersteuerung 340 und eine dritte Schnittstelle 350 aufweisen. Die Busarchitektur 311 des Verwaltungsmoduls 310a kann implementiert sein als AMBA, AHB, APB, AXI, ASB, ACE oder eine Kombination davon, das erfinderische Konzept ist jedoch nicht auf diese Beispiele beschränkt.
  • Der interne Speicher 315 kann Daten speichern, welche für den Betrieb des Verwaltungsmoduls 310a verwendet werden, oder Daten, welche von einer Datenverarbeitungsoperation (beispielsweise einer Schreib- oder Leseoperation), welche durch das Verwaltungsmodul 310a durchgeführt wird, erzeugt werden. Der interne Speicher 315 kann einen Teilcode beziehungsweise Partialcode der FTL speichern, welcher durch die CPU 330 ausgeführt werden kann. Eine Partialfunktion (oder ein Code zum Durchführen der Partialfunktion) der FTL kann in dem Host 200 implementiert sein, und eine andere Partialfunktion (oder ein Code zum Durchführen der Partialfunktion) der FTL kann in dem Verwaltungsmodul 310a der Datenspeichervorrichtung 300 implementiert sein. In verschiedenen Ausführungsformen jedoch, welche hier beschrieben sind, ist die FTL nicht vollständig auf der Datenspeichervorrichtung 300 implementiert. In einigen Fällen ist kein Abschnitt der FTL auf der Datenspeichervorrichtung implementiert.
  • Der interne Speicher 315 kann als RAM, dynamischer RAM (DRAM), statischer RAM (SRAM), Puffer, Pufferspeicher, Cache oder Tightly Couple Memory (TCM) implementiert sein, ist jedoch nicht auf diese Beispiele beschränkt.
  • Die zweite Schnittstelle 320 kann das Format einer Antwort und/oder Daten, welche zu dem Host 200a zu übertragen sind, ändern und kann die Antwort und/oder Daten in einem geänderten Format zu dem Host 200a durch die Schnittstelle 110 übertragen. Die zweite Schnittstelle 320 kann ebenso einen Befehl und/oder Daten von dem Host 200a empfangen, das Format des Befehls und/oder der Daten ändern und den Befehl und/oder Daten in einem geänderten Format zu der CPU 330 und/oder dem Puffercontroller 340 übertragen. Die zweite Schnittstelle 320 kann einen Transceiver aufweisen, welcher ein Signal und/oder Daten überträgt und empfängt.
  • Die Struktur und der Betrieb der zweiten Schnittstelle 320 können konfiguriert sein, um mit denjenigen der Schnittstelle 110 kompatibel zu sein. Die zweite Schnittstelle 320 kann beispielsweise eine SATA-Schnittstelle, eine SATAe-Schnittstelle, SAS, eine PCIe-Schnittstelle, eine NVMe-Schnittstelle, AHCI, eine MMC-Schnittstelle, eine NAND-Typ-Flashsspeicher-Schnittstelle oder eine NOR-Typ-Flashsspeicher-Schnittstelle sein, ist jedoch nicht darauf beschränkt.
  • Die CPU 330 kann den internen Speicher 315, die zweite Schnittstelle 320, den Puffercontroller 340 und die dritte Schnittstelle 350 durch die Busarchitektur 311 steuern. Die CPU 300 kann wenigstens einen Kern aufweisen. Die CPU 330 kann die PMIC 370 steuern.
  • Der Puffercontroller 340 kann Daten schreiben zu oder Daten lesen aus dem Puffer 360 gemäß der Steuerung der CPU 330. Auf den Puffercontroller 340 kann Bezug genommen werden als ein Controller oder ein Pufferverwalter, welche die Schreib- und Leseoperationen auf dem Puffer 360 steuern kann.
  • Die dritte Schnittstelle 350 kann eine Datenverarbeitungsoperation (beispielsweise eine Schreib- oder Leseoperation) auf dem Speichervorrichtungscluster 400a durch Kanäle CHA bis CHD gemäß der Steuerung der CPU 330 steuern. Die dritte Schnittstelle 350 kann beispielsweise eine SATA-Schnittstelle, eine SATAe-Schnittstelle, SAS, eine PCIe-Schnittstelle, eine NVMe-Schnittstelle, AHCI, eine MMC-Schnittstelle, eine NAND-Typ-Flashspeicher-Schnittstelle, oder eine NOR-Typ-Flashspeicher-Schnittstelle sein, ist jedoch nicht darauf beschränkt.
  • Der Puffer 360 kann Daten, welche von dem Host 200 empfangen werden, schreiben oder Daten, welche gemäß der Steuerung des Puffercontrollers 340 gespeichert wurden, lesen. Der Puffer 360 kann als ein flüchtiger Speicher wie beispielsweise ein Pufferspeicher, ein RAM, ein SRAM oder ein DRAM implementiert sein, die Offenbarung ist jedoch nicht auf diese Beispiele beschränkt.
  • Wenn das Verwaltungsmodul 310 und der Puffer 360 jeweils in unterschiedlichen Halbleiterchips gebildet werden, können das Verwaltungsmodul 310 und der Puffer 360 in einem einzelnen Gehäuse unter Verwendung von package-on-package (PoP), multichip package (MCP), or system-in package (SiP) implementiert sein, die Offenbarung ist jedoch nicht auf diese Beispiele beschränkt. Ein erster Chip, welcher den Puffer 360 aufweist, kann über einem zweiten Chip, welcher das Verwaltungsmodul 310 aufweist, gestapelt sein, beispielsweise unter Verwendung von Stapelanschlüssen wie beispielsweise Erhöhungen (Bumps) oder Bällen.
  • Die PMIC 370 kann Betriebsspannungen, welche an das Verwaltungsmodul 310, den Puffer 360 und/oder das Speichervorrichtungscluster 400a angelegt werden, steuern. Die erste Betriebsspannung, welche an das Verwaltungsmodul 310 angelegt wird, die zweite Betriebsspannung, welche an den Puffer 360 angelegt wird, und die dritte Betriebsspannung, welche an das Speichervorrichtungscluster 400a angelegt werden, können dieselben sein oder können unterschiedlich voneinander sein.
  • Das Speichervorrichtungscluster 400a, welches in 2 veranschaulicht ist, kann eine Mehrzahl von Speichervorrichtungen 410-1 bis 410-m aufweisen, welche Daten durch die jeweiligen Kanäle CHA bis CHD übertragen und empfangen. Wie in 3 gezeigt ist, können die Speichervorrichtungen 410-1 bis 410-m jeweils eine Mehrzahl von Speicherelementen oder Speicherchips CA0 bis CA2, CB0 bis CB2, CC0 bis CC2 und CD0 bis CD2 aufweisen. Obwohl drei Speicherchips mit jedem der vier Kanäle CHA bis CHD in den Ausführungsformen, welche in 3 veranschaulicht sind, verbunden sind, sind die vorliegenden Ausführungsformen lediglich ein Beispiel und die Anzahl von Kanälen und die Anzahl von Speicherchips, welche mit jedem Kanal verbunden sind, kann geändert werden. Jeder Speicherchip kann beispielsweise ein nichtflüchtiger Speicherchip wie beispielsweise ein NAND-Speicher sein. Wie hierin beschrieben bezieht sich ein Halbleiterchip auf ein Die, welches aus einem Wafer gebildet ist, und welches eine integrierte Schaltung darauf aufweist. Halbleiterchips können gestapelt werden, um Halbleitervorrichtungen wie beispielsweise Chipstapel und/oder Halbleitergehäuse zu bilden. Auf Halbleiterchips kann ebenso Bezug genommen werden als Halbleitervorrichtungen.
  • Die Speicherelemente oder Speicherchips CA0 bis CA2, CB0 bis CB2, CC0 bis CC2 oder CD0 bis CD2 in der Speichervorrichtung 410-1, 410-2, 410-3 oder 410-4 können in einem einzelnen Gehäuse oder auf einem einzelnen Modul montiert implementiert werden. Jeder Speicherchip kann eine Mehrzahl von Blöcken aufweisen; jeder der Blöcke kann eine Mehrzahl von Seiten aufweisen.
  • Die erste Speichervorrichtung 410-1 kann mit dem ersten Kanal CHA verbunden sein; die zweite Speichervorrichtung 410-2 kann mit dem zweiten Kanal CHB verbunden sein; die m-te Speichervorrichtung 410-m kann mit dem m-ten Kanal CHD verbunden sein. Die Anzahl der Speichervorrichtungen 410-1 bis 410-m und die Anzahl von Kanälen kann angemessen gemäß unterschiedlichen Situationen bestimmt werden. Die Anzahl von Speicherchips oder Speicherelementen in jeder der Speichervorrichtungen 410-1 bis 410-m kann ebenso angemessen gemäß unterschiedlichen Situationen bestimmt werden.
  • Ein Kanal, wie er hierin verwendet wird, kann sich auf einen unabhängigen Datenpfad beziehen, welcher zwischen dem Verwaltungsmodul 310, beispielsweise der dritten Schnittstelle 350, und einer Speichervorrichtung existiert. Der Datenpfad kann Übertragungsleitungen aufweisen, welche Daten und/oder Steuersignale übertragen können.
  • 4 ist ein Diagramm einer hierarchischen Struktur 240 eines Host gemäß einigen Ausführungsformen des erfinderischen Konzepts. Bezug nehmend auf 4 kann die hierarchische Struktur 240 eine Anwendungsschicht 250, eine FTL 260 und eine Speicherschnittstellenschicht 270 aufweisen. Die FTL 260 kann eine Adressabbildung beziehungsweise ein Adressmapping 261, eine Garbage Collection (GC) bzw. automatische Speicherbereinigung 263, ein Wear-Levelling (WL) 265 und eine Verwaltung für schlechte Blöcke (BBM = Bad Block Management) 267 durchführen.
  • Beispielsweise weist in einer Ausführungsform das Adressmapping 261 ein Mappen beziehungsweise Abbilden einer logischen Adresse auf eine physikalische Adresse, welche einer physikalischen Position in der Datenspeichervorrichtung 300 entspricht, auf. Die FTL 260 kann eine logische Blockadresse in eine physikalische Blockadresse entsprechend einer physikalischen Position in der Datenspeichervorrichtung 300 unter Verwendung einer Adressübersetzungsmappingtabelle (nicht gezeigt) übersetzten, welche eine logische Adresse mit einer physikalischen Adresse verbindet. Ein Adressmappinverfahren kann Sektor-Mapping, Block-Mapping oder Hybrid-Mapping sein, ist jedoch nicht auf diese Beispiele beschränkt. Zusätzlich kann das Adressmapping eine logische Adresse (beispielsweise eine einzelne logische Adresse) auf eine Mehrzahl von physikalischen Adressen mappen beziehungsweise abbilden wie beispielsweise zwei physikalische Adressen von zwei unterschiedlichen nichtflüchtigen Speichervorrichtungen des Datenspeichers oder des Speichervorrichtungsclusters.
  • Das WL 265 ist eine Technik zum Verwalten der Datenspeichervorrichtung 300, sodass eine Schreiboperation nicht auf einen bestimmten Block in der Datenspeichervorrichtung 300 konzentriert ist, beispielsweise hat jeder Block eine einheitliche Schreibzählung. Die FTL 260 kann eine Schreibzählung für jeden Block oder jede Seite aufzeichnen und verwalten und kann eine Verwaltung durchführen, sodass eine Schreiboperation basierend auf der Schreibzählung durchgeführt wird.
  • Das GC 263 ist eine Technik zum Gleichsetzen beziehungsweise Abgleichen von Löschungszählungen der Blöcke in der Datenspeichervorrichtung. Das BBM 267 kann sich auf eine Funktion oder einen Code zum Verwalten von Schlechtblockinformationen der Datenspeichervorrichtung 300 beziehen.
  • Die FTL 260 kann ein Software- oder Firmwarecode sein, welcher in dem Speicher 225 des Host 200 gespeichert wird, und in der CPU 220 ausgeführt wird. Die FTL 260 kann als ein Teil eines Betriebssystems (OS = Operating System = Betriebssystem) des Host 200 implementiert sein. Wie obenstehend beschrieben ist, kann in einigen Ausführungsformen die FTL 260 teilweise in dem Host 200 implementiert sein und teilweise in der Datenspeichervorrichtung 300 implementiert sein. Beispielsweise können das Adressmapping 261, das GC 263 und das WL 265 in dem Host 200 implementiert sein, und das BBM 267 kann in der Datenspeichervorrichtung 300 implementiert sein, das erfinderische Konzept ist jedoch nicht auf dieses Beispiel beschränkt.
  • Die Speicherschnittstellenschicht 270 kann der ersten Schnittstelle 230, welche in 2 veranschaulicht ist, entsprechen.
  • Die 5A und 5B sind Blockschaltbilder von Beispielen 300b und 300c der Datenspeichervorrichtung 300, welche in 1 veranschaulicht ist. Die Struktur und der Betrieb der Datenspeichervorrichtung 300b, welche in 5A veranschaulicht ist, sind ähnlich zu denjenigen der Datenspeichervorrichtung 300a, welche in 2 veranschaulicht ist. Demnach werden Beschreibungen auf Unterschiede zwischen den Datenspeichervorrichtungen 300a und 300b fokussiert werden, um Redundanz zu vermeiden. Verglichen mit dem Verwaltungsmodul 310a der Datenspeichervorrichtung 300a, welche in 2 veranschaulicht ist, kann ein Verwaltungsmodul 310b der Datenspeichervorrichtung 300b, welche in 5A veranschaulicht ist, ferner eine Fehlerkorrekturcode(ECC = Error Correction Code = Fehlerkorrekturcode)-Maschine 325, auf welche ebenso als eine ECC-Schaltung Bezug genommen wird, und/oder einen Datenoperator 335 aufweisen.
  • Die ECC-Maschine 325 kann Fehler in Daten, welche in einem Speichervorrichtungscluster 400b zu speichern sind und/oder Fehler in einer Datenausgabe von dem Speichervorrichtungscluster 400b korrigieren. Die ECC-Maschine 325 kann irgendwo innerhalb des Verwaltungsmoduls 310b implementiert sein. Beispielsweise kann die ECC-Maschine 325 innerhalb der dritten Schnittstelle 350 implementiert sein.
  • Der Datenoperator 335 oder die Datenoperationsschaltung können Daten, welche in dem Speichervorrichtungscluster 400b zu speichern sind, komprimieren und können Daten, welche von dem Speichervorrichtungscluster 400b ausgegeben werden, dekomprimieren. Der Datenoperator 335 kann ebenso Paritätsdaten aus den Daten, welche in dem Speichervorrichtungscluster 400b zu speichern sind, erzeugen. Auf den Datenoperator 335 kann demnach ebenso genauer Bezug genommen werden als eine Daten-Kompressions-/Dekompressions-Schaltung.
  • Die Struktur und der Betrieb der Datenspeichervorrichtung 300c, welche in 5B veranschaulicht ist, sind ähnlich zu denjenigen der Datenspeichervorrichtung 300a, welche in 2 veranschaulicht ist. Demnach werden die Beschreibungen auf Unterschiede zwischen den Datenspeichervorrichtungen 300a und 300c fokussiert sein, um Redundanz zu vermeiden. Verglichen mit dem Verwaltungsmodul 310a der Datenspeichervorrichtung 300a, welche in 2 veranschaulicht ist, weist ein Verwaltungsmodul 310c der Datenspeichervorrichtung 300c, welche in 5B veranschaulicht ist, keinen Puffercontroller 340 auf. Demzufolge weist die Datenspeichervorrichtung 300c den Puffer 360 nicht auf.
  • Eine Schnittstelle 110' zwischen einem Host 200c und der Datenspeichervorrichtung 300c kann kompatibel mit einer NVM-Schnittstelle (beispielsweise einer NAND-Schnittstelle) sein. Demzufolge kann der Host 200c einen Befehl (beispielsweise einen NAND-Befehl) und eine Adresse (oder Adressen) zu dem Verwaltungsmodul 310c gemäß der Schnittstelle 110', welche mit der NVM-Schnittstelle kompatibel ist, senden und kann Daten direkt zu einem Speichervorrichtungscluster 400c übertragen (130).
  • Das Verwaltungsmodul 310c kann den Befehl und die Adresse (oder Adressen) von dem Host 200c empfangen und diese auf das Speichervorrichtungscluster 400c anwenden. Das Verwaltungsmodul 300c kann den Befehl und die Adresse (Adressen), welche von dem Host 200c empfangen wird (werden) umwandeln, um geeignet für das Speichervorrichtungscluster 400c zu sein. In dieser Ausführungsform können der Befehl und die Adresse (Adressen) von dem Host 200c auf das Speichervorrichtungscluster 400c über das Verwaltungsmodul 310c angewandt werden, die Daten können jedoch direkt von dem Host 200c zu dem Speichervorrichtungscluster 400c übertragen werden, ohne durch das Verwaltungsmodul 310c hindurchzutreten.
  • 6 ist ein Flussdiagramm eines Mehrfachzugriffsverfahrens des Datenverarbeitungssystems 100 gemäß einigen Ausführungsformen des erfinderischen Konzepts. Bezug nehmend auf die 1 bis 6 sendet der Host 200 einen Mehrfachzugriffsbefehl (N-Zugriff) zu dem der Datenspeichervorrichtung 300 und die Datenspeichervorrichtung 300 empfängt den N-Zugriff in Operation S101.
  • Der N-Zugriff, auf welchen als ein externer Mehrfachzugriffsbefehl hinsichtlich der Datenspeichervorrichtung 300 Bezug genommen wird, bezeichnet wenigstens zwei Adressen (beispielsweise wenigstens zwei physikalische Blockadressen), sodass eine Zugriffsoperation auf die wenigstens zwei physikalischen Blockadressen mit einem einzelnen Befehl durchgeführt wird. Beispielsweise können die wenigstens zwei physikalischen Blockadressen unterschiedliche Blöcke auf einem gleichen Chip sein, unterschiedliche Blöcke auf unterschiedlichen Chips oder unterschiedliche Blöcke auf unterschiedlichen Gehäusen. Um eine Zugriffoperation auf wenigstens zwei physikalische Blockadressen durchzuführen, sind normalerweise wenigstens zwei getrennte Befehle oder wenigstens zwei Male eines Befehls notwendig. Gemäß verschiedenen Ausführungsformen des erfinderischen Konzepts jedoch wird der N-Zugriff, welcher ursprünglich zwischen dem Host 200 und der Datenspeichervorrichtung 300 definiert ist, verwendet, sodass eine Zugriffsoperation (beispielsweise Schreiboperation, eine Leseoperation oder eine Löschoperation) auf wenigstens zwei unterschiedlichen physikalischen Blockadressen mit einem einzelnen Befehl durchgeführt werden kann.
  • Der N-Zugriff kann eine Adressliste Add_list von N Adressen (beispielsweise physikalischen Adressen) aufweisen, wobei N eine ganze Zahl von wenigstens 2 ist. Der N-Zugriff kann oder kann nicht Daten gemäß einer Form oder einem Typ eines Befehls aufweisen. Der N-Zugriff wird im Detail unter Bezugnahme auf die 8A und 8B später beschrieben werden. Der N-Zugriffsbefehl kann von einem anfänglichen Befehl abgeleitet werden, welcher bei diesem Host erzeugt wird, welcher eine einzelne logische Adresse aufweist, welche eine Zieladresse sein kann. Beispielsweise kann der Host eine Flashübersetzungsschicht aufweisen, welche eine logische Adresse, welche mit einem Befehl verbunden ist, welcher an dem Host initiiert wird (ebenso wird hierauf Bezug genommen als eine Anfrage) in einen Befehl, welcher zwei physikalische Adressen aufweist, übersetzt. Die zwei physikalischen Adressen können auf der einzelnen logischen Adresse und den Flashübersetzungsschichtoperationen basiert sein, wie obenstehend beschrieben ist.
  • Das Verwaltungsmodul 310 der Datenspeichervorrichtung 300 kann den N-Zugriff in dem Puffer 360 speichern. Das Verwaltungsmodul 310 kann den N-Zugriff in einen Zugriffsbefehl NVM_Access umwandeln, welcher für eine NVM-Vorrichtung (beispielsweise eine NAND-Flashspeichervorrichtung) geeignet ist.
  • Wenn eine erste physikalische Adresse PBA1 und eine zweite physikalische Adresse PBA2 in der Adressliste Add_list des N-Zugriffs enthalten sind, kann das Verwaltungsmodul 310 einen ersten Zugriffsbefehl NVM_Access, welcher die erste physikalische Adresse PBA1 aufweist, erzeugen und zu einer ersten NVM-Vorrichtung in Operation S103 senden und kann einen zweiten Zugriffsbefehl NVM_Access, welcher die zweite physikalische Adresse PBA2 aufweist, erzeugen und zu einer zweiten NVM-Vorrichtung in Operation S105 senden. Jeder Zugriffsbefehl NVM_Access kann ein Schreibbefehl NVM_Write, ein Lesebefehl NVM_Read oder ein Löschbefehl NVM_Erase sein, ist jedoch nicht darauf beschränkt. Auf jeden Zugriffsbefehl NVM_Access kann Bezug genommen werden als ein interner Zugriffsbefehl hinsichtlich der Datenspeichervorrichtung 300.
  • Nach dem Senden des ersten Zugriffsbefehls NVM_Access zu der ersten NVM-Vorrichtung und des zweiten Zugriffsbefehls NVM_Access zu der zweiten NVM-Vorrichtung in Betrieb, kann das Verwaltungsmodul 310 eine Bestätigung ACK des N-Zugriffs zu dem Host 200 in Operation S107 senden.
  • In der Art und Weise, welche obenstehend beschrieben ist, kann die Datenspeichervorrichtung 300 einen externen Mehrfachzugriffsbefehl von einer Vorrichtung extern zu der Datenspeichervorrichtung (beispielsweise dem Host 200) empfangen, wobei der externe Mehrfachzugriffsbefehl eine erste Adresse und eine zweite Adresse aufweist. Basierend auf dem externen Mehrfachzugriffsbefehl wird ein erster Zugriffsbefehl einem ersten nichtflüchtigen Speicher zugeführt, wobei der erste Zugriffsbefehl die erste Adresse aufweist, und ein zweiter Zugriffsbefehl wird einem zweiten nichtflüchtigen Speicher zugeführt, wobei der zweite Zugriffsbefehl die zweite Adresse aufweist. Eine erste Zugriffsoperation wird dann auf der ersten nichtflüchtigen Speichervorrichtung unter Verwendung des ersten Zugriffsbefehls und der ersten Adresse ausgeführt, und eine zweite Zugriffsoperation wird auf der zweiten nichtflüchtigen Speichervorrichtung unter Verwendung des zweiten Zugriffsbefehls und der zweiten Adresse ausgeführt.
  • 7 ist ein Flussdiagramm eines Mehrfach-Schreibverfahrens des Datenverarbeitungssystems 100 gemäß einigen Ausführungsformen des erfinderischen Konzepts. 8A ist ein Diagramm eines Mehrfachzugriffsbefehls wie beispielsweise des N-Schreibens, welches in 7 gemäß einigen Ausführungsformen des erfinderischen Konzepts veranschaulicht ist. 8B ist ein Diagramm eines Mehrfachzugriffsbefehls, wie beispielsweise des N-Schreibens, welches in 7 gemäß anderen Ausführungsformen des erfinderischen Konzepts veranschaulicht ist.
  • Bezug nehmend auf die 1 bis 8B sendet der Host 200 einen Mehrfachzugriffsbefehl (N-Schreiben) zu der Datenspeichervorrichtung 300, und das Verwaltungsmodul 310 der Datenspeichervorrichtung 300 empfängt das N-Schreiben von dem Host 200 in Operation S110. Der Mehrfachzugriffsbefehl bezeichnet wenigstens zwei Adressen (beispielsweise physikalische Blockadressen), sodass eine Operation auf den wenigstens zwei physikalischen Blockadressen mit einem einzelnen Befehl durchgeführt wird. Um eine Datenschreib-, -lese- oder -löschoperation auf wenigstens zwei physikalischen Blockadressen durchzuführen, sind normalerweise wenigstens zwei getrennte Befehle oder wenigstens zwei Male eines Befehls notwendig. Gemäß Ausführungsformen des erfinderischen Konzepts jedoch wird der Mehrfachzugriffsbefehl (beispielsweise N-Schreiben), welcher ursprünglich zwischen dem Host 200 und der Datenspeichervorrichtung 300 definiert ist, verwendet, sodass eine Zugriffsoperation auf wenigstens zwei unterschiedlichen physikalischen Blockadressen mit einem einzelnen Befehl durchgeführt werden kann. Beispielsweise kann der Schreibbefehl, welcher zwischen dem Host 200 und der Datenspeichervorrichtung 300 übertragen wird, wenigstens zwei unterschiedliche physikalische Adressen aufweisen, welche zwei unterschiedlichen jeweiligen Speicherblöcken zugeordnet sind.
  • Beispielsweise kann der Host 200 die Datenspeichervorrichtung 300 in die Lage versetzen, eine Zugriffsoperation auf N unterschiedliche physikalische Blockadressen mit einem einzelnen Befehl (beispielsweise N-Schreiben) durchzuführen. Bezug nehmend auf 8A kann ein Befehl 40a einen Befehlsidentifizierer 41, einen Opcode 42, einen Datenzeiger 43, ein Duplizier-/Split-Flag 47 und eine Adressliste aufweisen. Der Befehl 40a kann ebenso ein optionales Kompressions-Flag (nicht gezeigt) und/oder eine Chipadresse (beispielsweise Chipaktivierung, ebenso nicht gezeigt) aufweisen.
  • Der Befehlsidentifizierer 41 kann Daten sein, welche einzigartig definiert sind, um einen Befehl zu identifizieren. Beispielsweise kann jeder Befehl mit einer Zahl identifiziert werden, sodass er später mit entsprechenden Daten in Übereinstimmung gebracht werden kann. Beispielsweise können ein Schreib- oder Löschbefehl von einem Host einen Befehlsidentifizierer aufweisen, sodass, wenn eine Bestätigung zu dem Host zurückverbracht wird, sie den denselben Identifizierer hat, sodass der Host weiß, welchen Befehl/Anfrage die Bestätigung beantwortet. Alternativ kann ein Lesebefehl von einem Host einen Befehlsidentifizierer aufweisen, sodass, wenn Daten zu dem Host zurückverbracht werden, sie denselben Identifizierer haben, sodass der Host weiß, welchen Befehl/Anfrage die Bestätigung beantwortet.
  • Der Opcode 42 kann eine Operation entsprechend einem Befehl spezifizieren. Beispielsweise kann die Operation eine normale (beispielsweise einzelne) Leseoperation, eine Mehrfachleseoperation, eine normale (beispielsweise einzelne) Schreiboperation, eine Mehrfachschreiboperation etc. sein. Der Opcode 42 kann den Typ von Befehl bezeichnen, sodass das Verwaltungsmodul 310 weiß, wie der Befehl zu verarbeiten ist. Beispielsweise kann, wenn der Opcode für ein normales Lesen (beispielsweise unter Verwendung einer einzelnen Adresse) ist, dann das Verwaltungsmodul 310 angemessen den Befehl, die Adresse und beliebige Daten für einen einzelnen Zugriff umwandeln. Wenn der Opcode jedoch für ein Mehrfachlesen ist, dann kann das Verwaltungsmodul 310 den Befehl, Adressen und beliebige Daten für einen Mehrfachzugriff umwandeln. Der Opcode kann ebenso hierin als ein Befehlstypindikator beschrieben werden.
  • Der Datenzeiger 43 kann eine Adressinformation sein, welche die Position von Daten in dem Speicher 225 des Host 200 anzeigt. Datenzeiger 43 können in einer verbundenen Listenstruktur verbunden sein, das erfinderische Konzept ist jedoch nicht auf diese Ausführungsform beschränkt. Das Verwaltungsmodul 310 der Datenspeichervorrichtung 300 kann Daten lesen aus oder Daten schreiben zu dem Speicher 225 des Host 200, und zwar basierend auf dem Datenzeiger 43.
  • Das Duplizier-/Split-Flag 47 kann enthalten sein, um in dem Fall eines Mehrfachzugriffs anzuzeigen, ob die zugeordneten Daten duplizierte Daten oder Splitdaten sind oder um weder noch anzuzeigen (beispielsweise wenn der Befehl ein Einzelzugriffsbefehl ist). Wie weiterhin untenstehend diskutiert ist, sind in einigen Fällen Daten, welche einem Schreibbefehl zugeordnet sind, zu duplizieren und an zwei unterschiedlichen physikalischen Orten zu speichern. Alternativ können Daten, welche einem Schreibbefehl zugeordnet sind, gesplittet beziehungsweise aufgeteilt werden, sodass ein Abschnitt davon an dem ersten physikalischen Ort gespeichert wird und der Rest an dem zweiten physikalischen Ort gespeichert wird. Obwohl zwei Orte beschrieben sind, ist dies lediglich ein Beispiel, und mehrere Orte (beispielsweise drei oder mehr) können verwendet werden, um Daten in drei oder mehr Orte zu duplizieren oder zu splitten. Ähnlich können für Lesebefehle Daten gelesen werden, welche duplizierte Daten sind, welche in mehreren Orten gespeichert sind, oder alternativ gesplittete Daten sind, welche an mehreren Orten gespeichert sind. Basierend auf dem Wert des Duplizier-/Split-Flag 47 steuert das Verwaltungsmodul 310, wie der eingehende oder ausgehende Befehl und/oder Daten zu verarbeiten sind.
  • Die Adressliste kann wenigstens zwei, das heißt N physikalische Adressen aufweisen. Beispielsweise kann die Adressliste eine erste physikalische Adresse 44 und eine zweite physikalische Adresse 45 aufweisen. Jede der physikalischen Adressen 44 und 45 kann eine Startadresse (Start_address) 441 oder 451 von physikalischen Blöcken aufweisen, zu welchen Daten in der Datenspeichervorrichtung 300 geschrieben werden werden, und die Anzahl der physikalischen Blöcke 443 oder 453. Alternativ kann jede physikalische Adresse 44 oder 45 die Start_address 441 oder 451 und eine Endadresse (nicht gezeigt) der physikalischen Blöcke, zu welchen Daten in der Datenspeichervorrichtung 300 geschrieben werden werden, aufweisen. Folglich kann jede physikalische Adresse, welche in der Adressliste enthalten ist, in verschiedenen Formen Informationen zum Bezeichnen einer Position von physikalischen Blöcken aufweisen, zu welchen Daten geschrieben werden werden.
  • Obwohl nicht gezeigt kann ein zusätzliches Feld in dem Befehl eine Chipadresse (beispielsweise in der Form von Chipaktivierungsdaten) anzeigen. Demnach können, wenn die zwei physikalischen Adressen, welche mit einem externen Mehrfachzugriffsbefehl verbunden sind, einer ersten physikalischen Adresse bei einem ersten Chip und einer zweiten physikalischen Adresse bei einem zweiten Chip entsprechen, die zwei Chipadressen in dem Befehl 40a enthalten sein. In einer Ausführungsform sind solche Chipadressen in demselben Feld wie die Start_address enthalten, beispielsweise als zusätzliche Bits, welche zu der Startadresse hinzugefügt sind. Die Chipadressen müssen jedoch nicht unterschiedlich sein und können dieselbe Chipadresse in dem Fall sein, in dem unterschiedliche physikalische Adressen in dem externen Mehrfachzugriffsbefehl für verschiedene Blöcke in demselben Chip sind. In einigen Ausführungsformen entsprechen die unterschiedlichen physikalischen Adressen gleichen relativen physikalischen Adressen innerhalb zweier unterschiedlicher Chips, jedoch zwei unterschiedlichen Chipadressen.
  • Ebenso nicht gezeigt kann ein zusätzliches Feld in dem Befehl einen Kompressions-/Dekompressionscode aufweisen. Beispielsweise kann basierend darauf, ob und wie Daten in Antwort auf einen Mehrfachzugriffsbefehl komprimiert oder dekomprimiert werden sollten, ein Datenkompression-/Dekompressionscode verwendet werden.
  • Bezug nehmend auf 8B kann ein N-Schreiben 40b den Befehlsidentifizierer 41, den Opcode 42, die Adressliste und Daten 46 aufweisen. Obwohl nicht gezeigt kann es ebenso ein Mehrfachzugriffs-Flag wie beispielsweise in 8A sowie eine Chipadresse/Chipadressen und/oder ein Kompressions-/Dekompressions-Flag aufweisen. Das N-Schreiben 40b, welches in 8B veranschaulicht ist, ist ähnlich zu dem N-Schreiben 40a, welches in 8A veranschaulicht ist. Demnach werden Unterschiede dazwischen beschrieben werden, um Redundanz zu vermeiden.
  • Während das N-Schreiben 40a, welches in 8A veranschaulicht ist, den Datenzeiger 43 aufweist, weist das N-Schreiben 40b, welches in 8B veranschaulicht ist, die Daten 46, welche zu der Datenspeichervorrichtung 300 zu schreiben sind, auf. Das N-Schreiben 40a oder 40b kann eine Paketform haben, das erfinderische Konzept ist jedoch nicht auf diese Ausführungsformen beschränkt.
  • Zurückverweisend auf 7 kann das Verwaltungsmodul 310 der Datenspeichervorrichtung 300 das N-Schreiben empfangen und kann ebenso Schreibdaten WDAT empfangen und speichern, welche in dem N-Schreiben enthalten sind, und zwar in dem Puffer 360. Das N-Schreiben kann ein einzelner Befehl sein, welcher einen einzelnen Befehlsidentifizierer aufweist. Alternativ kann das Verwaltungsmodul 310 die Schreibdaten WDAT aus dem Speicher 225 des Host 200 lesen, welcher durch den Datenzeiger 43 bezeichnet ist, welcher in dem N-Schreiben, welches in 8A veranschaulicht ist, enthalten ist, und kann die Schreibdaten WDAT in dem Puffer 360 speichern.
  • Das Verwaltungsmodul 310 wandelt das N-Schreiben (einen externen Befehl) in den Schreibbefehl NVM_Write (beispielsweise einen internen Befehl) um, welcher für eine NVM-Vorrichtung (beispielsweise eine NAND-Flash-Speichervorrichtung) geeignet ist. Wenn die erste und zweite physikalische Adresse PBA1 und PBA2 in der Adressliste Add_List des N-Schreibens enthalten sind, kann das Verwaltungsmodul 310 einen ersten Schreibbefehl NVM_Write, welcher die erste physikalische Adresse PBA1 aufweist, erzeugen und zu der ersten NVM-Vorrichtung in Operation S120 senden, und kann einen zweiten Schreibbefehl NVM_Write, welcher die zweite physikalische Adresse PBA2 enthält, erzeugen und zu der zweiten NVM-Vorrichtung in Operation S130 senden. Die erste und zweite NVM-Vorrichtung können beispielsweise jeweils die NVM-Vorrichtungen 410-1 und 410-2 sein, verbunden mit unterschiedlichen Kanälen, beispielsweise jeweils CHA und CHB, wie in 2 gezeigt ist. Demzufolge können Operationen S120 und S130 parallel (beispielsweise zu derselben Zeit) durchgeführt werden.
  • Erste Daten DAT1, welche zu der ersten NVM-Vorrichtung geschrieben werden, und zweite Daten DAT2, welche zu der zweiten NVM-Vorrichtung geschrieben werden, sind auf den Schreibdaten WDAT, welche von dem Host 200 empfangen werden, basiert. Beispielsweise können die ersten Daten DAT1 und die zweiten Daten DAT2 die Daten sein, welche in dem Puffer 360 gespeichert sind, und können der jeweiligen ersten und zweiten nichtflüchtigen Speichervorrichtung von dem Puffer 360 zugeführt werden. Jede der ersten und zweiten Daten DAT1 und DAT2 können dieselben wie die Schreibdaten WDAT sein, können ein Teil der Schreibdaten WDAT sein, können komprimierte Daten der Schreibdaten WDAT sein, oder können Paritätsdaten der Schreibdaten WDAT sein, das erfinderische Konzept ist jedoch nicht auf diese Beispiele beschränkt. Die komprimierten Daten oder die Paritätsdaten der Schreibdaten WDAT können durch den Datenoperator 335, welcher in 5A veranschaulicht ist, erzeugt werden.
  • Genauer ist in einigen Ausführungsformen der externe Mehrfachzugriffsbefehl ein Mehrfachschreibbefehl, welcher Schreibdaten aufweist, und ein erster Teil der Schreibdaten ist in einem ersten internen Zugriffsbefehl (beispielsweise in einem ersten Befehl, welcher durch das Verwaltungsmodul 310 und unter Verwendung der ersten Adresse umgewandelt wird) enthalten, und ein zweiter Teil der Schreibdaten, und nicht der erste Teil der Schreibdaten, ist in dem zweiten internen Zugriffsbefehl (beispielsweise in einem zweiten Befehl, welcher durch das Verwaltungsmodul 310 und unter Verwendung der zweiten Adresse umgewandelt wird) enthalten. In diesem Fall kann das Duplizier-/Split-Flag 47 gesplittete Daten anzeigen.
  • In einigen Ausführungsformen ist der Mehrfachzugriffsbefehl ein Mehrfachschreibbefehl, welcher Schreibdaten aufweist, und alle der Schreibdaten, welche dem Mehrfachschreibbefehl zugeordnet sind, sind in dem ersten internen Zugriffsbefehl enthalten, und alle der Schreibdaten, welche dem Mehrfachschreibbefehl zugeordnet sind, sind ebenso in dem zweiten internen Zugriffsbefehl enthalten. In diesem Fall kann das Duplizier-/Split-Flag 47 duplizierte Daten anzeigen.
  • Gemäß der obigen Beschreibung kann eine Mehrfachzugriffsanfrage bei dem Host 200 initiiert und erzeugt werden und kann zuerst bei dem Host 200 (beispielsweise bei einer Flashübersetzungsschicht des Host) verarbeitet werden, um einen Mehrfachzugriffsbefehl zu bilden. Beispielsweise kann eine Mappingoperation durchgeführt werden (beispielsweise unter Verwendung einer Mappingtabelle und -schaltung), welche eine erste Adresse wie beispielsweise eine logische Adresse in zwei oder mehr zweite Adressen (beispielsweise logische Adressen) umwandelt. Die zwei oder mehr zweiten Adressen können unterschiedlich zueinander sein und können unter Verwendung von Flashübersetzungsschichtsteuerungen ausgewählt werden, wie beispielsweise in Verbindung mit 4 beschrieben. Der Mehrfachzugriffsbefehl kann dann an der Datenspeichervorrichtung, beispielsweise durch ein Verwaltungsmodul 310 in einen getrennten ersten und zweiten internen Zugriffsbefehl umgewandelt werden. Auf diese Art und Weise kann der Host 200 einen Mehrfachzugiffsbefehl zu der Datenspeichervorrichtung 300 zuführen, und die Datenspeichervorrichtung 300 kann über das Verwaltungsmodul 310 jeweilige interne Mehrfachzugriffsbefehle basierend auf dem Befehl, welcher von dem Host 200 empfangen wird, zu einer Mehrzahl von jeweiligen Speichervorrichtungen der Datenspeichervorrichtung 300, beispielsweise zu unterschiedlichen physikalischen Adressen einer Mehrzahl von Speichervorrichtungen zuführen.
  • 9 ist ein Diagramm zum Erklären einer Mehrfachschreiboperation eines Datenverarbeitungssystems gemäß einigen Ausführungsformen des erfinderischen Konzepts. Hier können jede der ersten und zweiten Daten DAT1 und DAT2 dieselben sein wie die Schreibdaten WDAT, welche von dem Host 200 empfangen werden.
  • Das Verwaltungsmodul 310 kann Daten gleich wie die Schreibdaten WDAT, welche von dem Host 200 empfangen werden, bei unterschiedlichen physikalischen Adressen, das heißt einer ersten physikalischen Adresse und einer zweiten physikalischen Adresse gemäß dem Opcode 42 und einem Duplizier-/Split-Flag 47 in einem Mehrfachschreibbefehl (N-Schreiben) speichern. In einigen Ausführungsformen können der Opcode 42 und das Duplizier-/Split-Flag 47 Teil desselben Feldes sein. Wenn dieselben Schreibdaten WDAT an unterschiedlichen physikalischen Adressen gespeichert werden, kann eine Duplizierung oder ein Spiegeln der Schreibdaten WDAT ausgeführt werden.
  • Alternativ sind eine der ersten und zweiten Daten DAT1 und DAT2 dieselben wie die Schreibdaten WDAT und die anderen können komprimierte Daten sein oder die Paritätsdaten der Schreibdaten WDAT. Beispielsweise können ein Kompressions-/Dekompressionsflag und/oder auch ein weiteres Paritäts-/Fehler-Korrektur-Flag als solches anzeigen. Zu dieser Zeit kann das Verwaltungsmodul 310 die Schreibdaten WDAT, welche von dem Host 200 empfangen werden, an der ersten physikalischen Adresse in Operation S120 speichern und kann die komprimierten Daten oder die Paritätsdaten der Schreibdaten WDAT bei der zweiten physikalischen Adresse in Operation S130 speichern. Es sollte festgehalten werden, dass, wenn eine Fehlerkorrektur oder eine Kompression durch das Verwaltungsmodul durchgeführt werden, sie durchgeführt werden können bevor die Daten dupliziert/gesplittet werden oder nachdem die Daten dupliziert/gesplittet werden. Typischerweise wird eine Fehlerkorrektur (beispielsweise unter Verwendung des Fehlerkorrekturcodes ”ECC”) auf Einheiten viel kleiner als der Seiten-/Block-Größe für SSD – beispielsweise Einheiten von 1 k durchgeführt. So kann eine ECC in diesem Fall in einer Mehrzahl von Schritten entweder vor oder nach dem Duplizieren oder Splitten der Daten durchgeführt werden.
  • 10 ist ein Diagramm zum Erklären einer Mehrfachschreiboperation eines Datenverarbeitungssystems gemäß anderen Ausführungsformen des erfinderischen Konzepts. Das Verwaltungsmodul 310 kann die Schreibdaten WDAT, welche von dem Host 200 empfangen werden, in wenigstens zwei Segmente DAT1' und DAT2' gemäß dem Opcode 42 und dem Duplizier-/Split-Flag 47 in einem Mehrfachschreibbefehl (N-Schreiben) unterteilen und kann die Segmente DAT1' und DAT2' jeweils bei unterschiedlichen physikalischen Adressen, das heißt einer ersten physikalischen Adresse und einer zweiten physikalischen Adresse (in Operationen S120 und S130) speichern. Beispielsweise kann ein Duplizier-/Split-Flag 47 anzeigen, dass ein erster Teil von Daten, welche dem Mehrfachzugriffsbefehl zugeordnet sind, in eine erste Speichervorrichtung der Datenspeichervorrichtung geschrieben werden sollten und nicht eine zweite Speichervorrichtung der Datenspeichervorrichtung, und ein zweiter Teil der Daten, welche dem Mehrfachzugriffsbefehl zugeordnet sind, in die zweite Speichervorrichtung und nicht die erste Speichervorrichtung geschrieben werden sollten. Das erste Segment DAT1' kann die erste Hälfte der Schreibdaten WDAT sein, und das zweite Segment DAT2' kann die zweite Hälfte der Schreibdaten WDAT sein.
  • Nach dem Senden des ersten Schreibbefehls NVM_Write zu der ersten NVM-Vorrichtung in Operation S120 und einem Senden des zweiten Schreibbefehls NVM_Write zu der zweiten NVM-Vorrichtung in Operation S130 kann das Verwaltungsmodul 310 die Bestätigung ACK des N-Schreibens zu dem Host 200 in Operation S140 senden.
  • 11 ist ein Flussdiagramm eines Mehrfachleseverfahrens eines Datenverarbeitungssystems gemäß einigen Ausführungsformen des erfinderischen Konzepts. Bezug nehmend auf die 1 bis 5B und 11 sendet der Host 200 einen Mehrfachlesebefehl (N-Lesen) zu der Datenspeichervorrichtung 300 in Operation S210 und das Verwaltungsmodul 310 der Datenspeichervorrichtung 300 empfängt das N-Lesen von dem Host 200 in Operation S210. Der Host kann anfänglich eine Mehrfachleseanfrage erzeugen und die Mehrfachleseanfrage in einen Mehrfachlesebefehl umwandeln, welcher zwei Adressen aufweist, beispielsweise unter Verwendung einer Mappingtabelle und einer Schaltung wie sie obenstehend beschrieben sind.
  • Das N-Lesen bezeichnet wenigstens zwei (beispielsweise N) physikalische Blockadressen, sodass eine Leseoperation auf den wenigstens zwei physikalischen Blockadressen mit einem einzelnen Befehl durchgeführt wird. Gemäß Ausführungsformen des erfinderischen Konzepts wird das N-Lesen, welches ursprünglich zwischen dem Host 200 und der Datenspeichervorrichtung 300 definiert ist, verwendet, sodass eine Leseoperation auf wenigstens zwei unterschiedlichen physikalischen Blockadressen mit einem einzelnen Befehl, der beispielsweise einen einzelnen Befehlsidentifizierer hat, durchgeführt werden kann.
  • Das N-Lesen kann ähnlich zu dem N-Schreiben sein, welches in den 8A oder 8B veranschaulicht ist. Wie das N-Schreiben 40a oder 40b, welches in 8A oder 8B veranschaulicht ist, kann das N-Lesen den Befehlsidentifizierer 41, den Opcode 42, das Duplizier-/Split-Flag 47, das Komprimier-/Dekomprimier-Flag und die Adressliste 44 und 45 (und ein optionales Chipadressfeld) aufweisen. Das N-Lesen kann jedoch zu dem N-Schreiben darin unterschiedlich sein, dass das N-Lesen den Datenzeiger 43 oder die Daten 46, welche in die Datenspeichervorrichtung 300 zu schreiben sind, nicht aufweist.
  • Das Verwaltungsmodul 310 der Datenspeichervorrichtung 300 kann das N-Lesen in dem Puffer 360 empfangen und speichern. Das Verwaltungsmodul 310 kann das N-Lesen in einen Lesebefehl NVM_Read umwandeln, welcher für eine NVM-Vorrichtung (beispielsweise eine NAND-Flashspeicher-Vorrichtung) geeignet ist.
  • Wenn die erste und zweite physikalische Adresse PBA1 und PBA2 in der Adressliste Add_list des N-Lesens enthalten sind, kann das Verwaltungsmodul 310 einen ersten Lesebefehl NVM_Read, welcher die erste physikalische Adresse PBA1 aufweist, erzeugen und zu der ersten NVM-Vorrichtung in Operation S220 senden und kann einen zweiten Lesebefehl NVM_Read, welcher die zweite physikalische Adresse PBA2 aufweist, erzeugen und zu der zweiten NVM-Vorrichtung in Operation S240 senden. Die erste und zweite NVM-Vorrichtung können die NVM-Vorrichtungen beispielsweise jeweils 410-1 und 410-2 sein, verbunden mit unterschiedlichen Kanälen, beispielsweise jeweils CHA und CHB wie in 2 gezeigt ist. Demzufolge können Operationen S220 und S240 parallel (beispielsweise zu derselben Zeit) durchgeführt werden.
  • Die erste NVM-Vorrichtung kann die ersten Daten DAT1 von der ersten physikalischen Adresse PBA1 in Antwort auf den ersten Lesebefehl NVM_Read lesen und die ersten Daten DAT1 zu dem Verwaltungsmodul 310 in Operation S230 senden. Die zweite NVM-Vorrichtung kann die zweiten Daten DAT2 von der zweiten physikalischen Adresse PBA2 in Antwort auf den zweiten Lesebefehl NVM_Read lesen und die zweiten Daten DAT2 zu dem Verwaltungsmodul 310 in Operation S250 senden. Die Operationen S230 und S250 können parallel durchgeführt werden.
  • Das Verwaltungsmodul 310 kann vorübergehend die ersten und zweiten Daten DAT1 und DAT2, welche jeweils von der ersten und der zweiten NVM-Vorrichtung gelesen werden, in dem Puffer 360 speichern. Das Verwaltungsmodul 310 kann gelesene Daten RDAT zu dem Host 200 basierend auf den ersten und zweiten Daten DAT1 und DAT2 in Operation S260 übertragen.
  • Die gelesenen Daten RDAT, welche zu dem Host 200 übertragen werden, können eine Kombination der ersten und zweiten Daten DAT1 und DAT2 sein. Beispielsweise kann, wenn die Schreibdaten WDAT, welche von dem Host 200 empfangen werden, in die ersten und zweiten Daten DAT1 und DAT2 unterteilt worden sind und getrennt an der ersten und zweiten physikalischen Adresse PBA1 und PBA2 gemäß einem N-Schreiben und einem Duplizier-/Split-Flag, welches ein Splitten der Daten anzeigt, gespeichert wurden, der Host 200 den Opcode 42 in dem N-Schreiben auf einen bestimmten Wert vor dem Senden des N-Lesens zu der Datenspeichervorrichtung 300 einstellen. Die Datenspeichervorrichtung 300 kann die ersten und zweiten Daten DAT1 und DAT2 von den ersten und zweiten physikalischen Adressen PBA1 und PBA2 jeweils lesen und die gelesenen Daten RDAT, welche durch ein Kombinieren der ersten und zweiten Daten DAT1 und DAT2 erlangt werden, zu dem Host 200 gemäß dem N-Lesen in Operation S260 senden.
  • 12 ist ein Flussdiagramm eines Mehrfachleseverfahrens eines Datenverarbeitungssystems gemäß anderen Ausführungsformen des erfinderischen Konzepts. Das Mehrfachleseverfahren, welches in 12 veranschaulicht ist, ist ähnlich zu demjenigen, welches in 11 veranschaulicht ist; demnach werden hauptsächlich Unterschiede dazwischen beschrieben werden.
  • In den Ausführungsformen, welche in 12 veranschaulicht sind, können die gelesenen Daten DAT, welche zu dem Host 200 übertragen werden, entweder die ersten Daten DAT1 oder die zweiten Daten DAT2 sein. In dieser Situation werden, wenn dieselben Daten bei unterschiedlichen physikalischen Adressen für eine Datenduplizierung oder eine Spiegelung (beispielsweise Duplizier-/Split-Flag zeigt eine Duplizierung an) gespeichert werden, nur eine der Daten, welche von den unterschiedlichen physikalischen Adressen gelesen werden, zu dem Host 200 übertragen. Zu dieser Zeit kann das Verwaltungsmodul 310 die Daten, welche am frühesten unter den Daten DAT1 und DAT2 von den unterschiedlichen physikalischen Adressen zu dem Host 200 gelesen worden sind, beispielsweise die Daten mit der schnelleren Lesegeschwindigkeit, übertragen. In dieser Art und Weise ist die Verwaltungsschaltung konfiguriert, um zwischen einem Senden der ersten Daten, welche von der ersten nichtflüchtigen Speichervorrichtung gelesen wurden zu dem Host und einem Senden der zweiten gelesenen Daten von der zweiten nichtflüchtigen Speichervorrichtung zu dem Host basierend auf der Datenlesegeschwindigkeit der ersten nichtflüchtigen Speichervorrichtung und der Datenlesegeschwindigkeit der zweiten nichtflüchtigen Speichervorrichtung auszuwählen.
  • In einer Ausführungsform kann beispielsweise ohne ein Verwenden eines Duplizier-/Split-Flags das Verwaltungsmodul 310 die ersten und zweiten Daten DAT1 und DAT2 vergleichen, welche von den unterschiedlichen physikalischen Adressen in Operation S255 gelesen werden. Wenn die ersten und zweiten Daten DAT1 und DAT2 dieselben sind wie die anderen, können nur eine der ersten und zweiten Daten DAT1 und DAT2 zu dem Host 200 in Operation S260' übertragen werden. Wenn die ersten und zweiten Daten DAT1 und DAT2 unterschiedlich voneinander sind, können beide Daten zu dem Host 200 als rekombinierte, vorangehend gesplittete Daten übertragen werden.
  • Das Verwaltungsmodul 310 kann Fehler in Daten, welche in dem Speichervorrichtungscluster 400 zu speichern sind, und/oder Fehler in Daten, welche von dem Speichervorrichtungscluster 400 ausgegeben werden, unter Verwendung der ECC-Maschine 325, welche in 5A gezeigt ist, korrigieren.
  • Das Verwaltungsmodul 310 kann einen vorbestimmten Datenvorgang auf den ersten Daten DAT oder den zweiten Daten DAT2 durchführen. Beispielsweise kann, wenn die zweiten Daten DAT2 die komprimierten Daten der ersten Daten DAT1 sind, das Verwaltungsmodul 310 die zweiten Daten DAT2 dekomprimieren, um dekomprimierte Daten zu erlangten. Wenn die zweiten Daten DAT2 die Paritätsdaten der ersten Daten DAT1 sind, kann das Verwaltungsmodul 310 die Paritätsdaten der ersten Daten DAT1 mit den zweiten Daten DAT2 vergleichen, welche gelesen worden sind, und kann die ersten Daten DAT1 und die gelesenen Daten RDAT zu dem Host 200 übertragen, wenn die Paritätsdaten der ersten Daten DAT1 dieselben sind wie die zweiten Daten DAT2.
  • 13 ist ein Diagramm zum Erklären einer Mehrfachleseoperation eines Datenverarbeitungssystems gemäß einigen Ausführungsformen des erfinderischen Konzepts. In den Ausführungsformen, welche in 13 veranschaulicht sind, kann ein N-Lesen die Adressliste Add_List aufweisen, welche drei unterschiedliche physikalische Adressen aufweist.
  • Das Verwaltungsmodul 310 der Datenspeichervorrichtung 300 kann erste bis dritte Daten DAT1, DAT2 und DAT3 von NVM-Vorrichtungen 410-1b, 410-2b und 410-3b, welche jeweils die drei unterschiedlichen physikalischen Adressen haben, in Antwort auf das N-Lesen jeweils lesen. Die drei NVM-Vorrichtungen können unterschiedliche Typen von Vorrichtungen sein. Beispielsweise kann die NVM-Vorrichtung 410-1b die Dreiniveauzelle (TLC = Three-Level Cell = Drei-Niveauzelle) NAND sein; die NVM-Vorrichtung 410-2b kann die Einzelniveauzelle (SLC = Single-Level Cell = Einzelniveauzelle) NAND sein; die NVM-Vorrichtung 410-3b kann eine Mehrfachniveauzelle (MLC) NAND sein.
  • Das Verwaltungsmodul 310 kann eine Kombination der ersten bis dritten Daten DAT1, DAT2 und DAT3 zu dem Host 200 übertragen. Alternativ kann das Verwaltungsmodul 310 eine der ersten bis dritten Daten DAT1, DAT2 und DAT3 zu dem Host 200 übertragen.
  • In den Ausführungsformen, welche in den 7 und 9 bis 13 veranschaulicht sind, werden Daten zwischen dem Host 200 und einer NVM-Vorrichtung über das Verwaltungsmodul 310 übertragen. Die Daten können jedoch direkt zwischen dem Host 200 und der NVM-Vorrichtung, ohne durch das Verwaltungsmodul 310 hindurchzutreten, in anderen Ausführungsformen übertragen werden.
  • 14 ist ein Diagramm zum Erklären eines Mehrfachlöschverfahrens eines Datenverarbeitungssystems gemäß einigen Ausführungsformen des erfinderischen Konzepts. Bezug nehmend auf die 1 bis 14 sendet der Host 200 einen Mehrfachlöschbefehl (N-Löschen) zu der Datenspeichervorrichtung 300 in Operation S310 und das Verwaltungsmodul 310 der Datenspeichervorrichtung 300 empfängt das N-Löschen von dem Host 200 in Operation S310. Das N-Löschen bezeichnet wenigstens zwei physikalische Blockadressen, sodass eine Löschoperation auf den wenigstens zwei physikalischen Blockadressen mit einem einzelnen Befehl durchgeführt wird. Eine ähnliche Umwandlung und Flags wie obenstehend beschrieben können für N-Löschen verwendet werden. Gemäß Ausführungsformen des erfinderischen Konzepts wird das N-Löschen, welches ursprünglich zwischen dem Host 200 und der Datenspeichervorrichtung 300 definiert ist, verwendet, sodass eine Löschoperation auf wenigstens zwei unterschiedlichen physikalischen Blockadressen mit einem einzelnen Befehl durchgeführt werden kann.
  • Das N-Löschen kann ähnlich zu dem N-Schreiben sein, welches in 8A oder 8B veranschaulicht ist. Wie das N-Schreiben 40A oder 40B, welches in 8A oder 8B veranschaulicht ist, kann das N-Löschen den Befehlsidentifizierer 41, den OpCode 42 und die Adressliste 44 und 45 aufweisen. Das N-Löschen kann jedoch den Datenzeiger 43 oder die Daten 46, welche zu der Datenspeichervorrichtung 300 wie ein N-Schreiben zu schreiben sind, nicht aufweisen, und kann ebenso ein Duplizier-/Split-Flag 47 oder ein Kompressions-/Dekompressions-Flag nicht aufweisen.
  • Das Verwaltungsmodul 310 der Datenspeichervorrichtung 300 kann das N-Löschen in dem Puffer 360 empfangen und speichern. Das Verwaltungsmodul 310 kann das N-Löschen in einen Löschbefehl NVM_Erase umwandeln, welcher für eine NVM-Vorrichtung (beispielsweise eine NAND-Flashspeichervorrichtung) geeignet ist.
  • Wenn die ersten und zweiten physikalischen Adressen PBA1 und PBA2 in der Adressliste Add_list des N-Löschens enthalten sind, kann das Verwaltungsmodul 310 einen ersten Löschbefehl NVM_Erase, welcher die erste physikalische Adresse PBA1 enthält, erzeugen und zu der ersten NVM-Vorrichtung in Operation S320 senden und kann einen zweiten Löschbefehl NVM_Erase, welcher die zweite physikalische Adresse PBA2 enthält, erzeugen und zu der zweiten NVM-Vorrichtung in Operation S330 senden. Die erste und zweite NVM-Vorrichtung können jeweils beispielsweise die NVM-Vorrichtungen, 410-1 und 410-2 sein, welche mit unterschiedlichen Kanälen beispielsweise CHA und CHB jeweils wie in 2 gezeigt verbunden sind. Demzufolge können Operationen S320 und S330 parallel durchgeführt werden (beispielsweise zu derselben Zeit).
  • Die erste NVM-Vorrichtung kann Blöcke, welche der ersten physikalischen Adresse PBA1 entsprechen, in Antwort auf den ersten Löschbefehl NVM_Erase löschen. Die zweite NVM-Vorrichtung kann Blöcke, welche der zweiten physikalischen Adresse PBA2 entsprechen, in Antwort auf den zweiten Löschbefehl NVM_Erase löschen.
  • Nach dem Senden des ersten Löschbefehls NVM_Erase zu der ersten NVM-Vorrichtung in Operation S320 und ein Senden des zweiten Löschbefehls NVM_Erase zu der zweiten NVM-Vorrichtung in Operation S330 kann das Verwaltungsmodul 310 die Bestätigung ACK des N-Löschens zu dem Host 200 in Operation S340 senden.
  • Gemäß den obigen Ausführungsformen kann eine Datenspeichervorrichtung einen externen Mehrfachzugriffsbefehl von einer Vorrichtung extern zu der Datenspeichervorrichtung empfangen. Der externe Mehrfachzugriffsbefehl kann eine erste Adresse und eine zweite Adresse aufweisen. Ein erster Zugriffsbefehl (beispielsweise durch die Datenspeichervorrichtung erzeugt) kann basierend auf dem externen Mehrfachzugriffsbefehl zu einem ersten nichtflüchtigen Speicher der Datenspeichervorrichtung zugeführt werden. Beispielsweise kann der erste Zugriffsbefehl die erste Adresse aufweisen. Dann wird eine erste Zugriffsoperation auf der ersten nichtflüchtigen Speichervorrichtung unter Verwendung des ersten Zugriffsbefehls und der ersten Adresse ausgeführt. Ein zweiter Zugriffsbefehl (beispielsweise erzeugt durch die Datenspeichervorrichtung) kann basierend auf dem externen Mehrfachzugriffsbefehl zu einem zweiten nichtflüchtigen Speicher zugeführt werden. Beispielsweise kann der zweite Zugriffsbefehl die zweite Adresse aufweisen. Eine zweite Zugriffsoperation wird auf der zweiten nichtflüchtigen Speichervorrichtung unter Verwendung des zweiten Zugriffsbefehls und der zweiten Adresse ausgeführt. Der Mehrfachzugriffsbefehl kann einen einzelnen Befehlsidentifizierer aufweisen. Ferner können die erste Zugriffsoperation und die zweite Zugriffsoperation zu derselben Zeit ausgeführt werden.
  • Wie obenstehend beschrieben ist, können Daten geschrieben werden zu, gelesen werden von oder gelöscht werden von wenigstens zwei Speicherbereichen mit einem einzelnen Mehrfachzugriffsbefehl, welcher von dem Host 200 zu der Datenspeichervorrichtung 300 übertragen wird. Demzufolge ermöglicht, verglichen mit herkömmlichen Datenverarbeitungssystemen, welche typischerweise wenigstens zwei Male einer Übertragung eines Befehls benötigen, ein Datenverarbeitungssystem gemäß einigen Ausführungsformen der Erfindung eine effiziente Verwendung einer Bandbreite, wodurch der Leistungsverbrauch verringert wird.
  • 15 ist ein Blockschaltbild eines Datenverarbeitungssystems 500 gemäß bestimmten Ausführungsformen des erfinderischen Konzepts. Bezug nehmend auf die 1 bis 15 kann das Datenverarbeitungssystem 500 eine Datenbank 520, einen Datenbankserver 530, ein zweites Netzwerk 540 und eine Mehrzahl von Clientcomputern 550 und 551 aufweisen. Die Datenbank 520 und der Datenbankserver 530 können in einem Datencenter 510 enthalten sein. Das Datencenter 510 kann ein Internetdatencenter oder ein Clouddatencenter sein.
  • Die Datenbank 520 kann eine Mehrzahl von Datenspeichervorrichtungen 300 aufweisen. Die Datenspeichervorrichtungen 300 können in Racks installiert sein. Die Struktur und der Betrieb der Datenspeichervorrichtungen 300 sind im Wesentlichen dieselben wie oder ähnlich zu denjenigen der Datenspeichervorrichtung 300, welche obenstehend unter Bezugnahme auf die 1 bis 11 beschrieben ist.
  • Der Datenbankserver 530 kann den Betrieb jeder der Datenspeichervorrichtungen 300 steuern. Der Datenbankserver 530 kann die Funktion des Host 200, welche in 1 veranschaulicht ist, durchführen. Der Datenbankserver 530 kann mit dem zweiten Netzwerk 540, beispielsweise einem Internet oder Wi-Fi über ein erstes Netzwerk 535 beispielsweise ein Lokalbereichsnetzwerk (LAN = Local Area Network = Lokalbereichsnetzwerk) verbunden sein. Die Clientcomputer 550 und 551 können mit dem Datenbankserver 530 über das zweite Netzwerk 540 verbunden sein.
  • Die 16 und 17 sind Blockschaltbilder von Datenverarbeitungssystemen 900 und 900', welche die Datenspeichervorrichtung 300 gemäß einigen Ausführungsformen des erfinderischen Konzepts aufweisen. Bezug nehmend auf 16 kann das Datenverarbeitungssystem 900 die Datenspeichervorrichtung 300, eine Leistungsversorgung 910, eine CPU 920, einen RAM 930, eine Verwenderschnittstelle 940 und einen Systembus 950 aufweisen, welcher elektrisch die Elemente 300, 910, 920, 930 und 940 miteinander verbindet.
  • Die CPU 920 steuert den Gesamtbetrieb des Datenverarbeitungssystems 900. Der RAM 930 speichert Informationen, welche für den Betrieb des Datenverarbeitungssystems 900 notwendig sind. Die Nutzerschnittstelle 940 sieht eine Schnittstelle zwischen dem Datenverarbeitungssystem 900 und einem Nutzer vor. Die Leistungsversorgung 910 führt Leistung den internen Elementen, das heißt der CPU 920, dem RAM 930, der Nutzerschnittstelle 940 und der Datenspeichervorrichtung 300 zu.
  • Die CPU 920 kann dem Host 200 entsprechen. Die Datenspeichervorrichtung 300 kann eine Zugriffsoperation auf unterschiedliche physikalische Adressen in Antwort auf einen Mehrfachzugriffsbefehl (N-Zugriff) von dem Host 200 durchführen.
  • Die Struktur des Datenverarbeitungssystems 900', welches in 17 veranschaulicht ist, ist ähnlich zu derjenigen des Datenverarbeitungssystems 900, welches in 16 veranschaulicht ist; demnach werden Unterschiede dazwischen hauptsächlich beschrieben werden, um eine Redundanz zu vermeiden. Verglichen mit dem Datenverarbeitungssystem 900, welches in 16 veranschaulicht ist, weist das Datenverarbeitungssystem 900', welches in 17 veranschaulicht ist, ferner eine redundante Anordnung von unabhängigen Platten (RAID)-Steuerkarte 960 auf. Eine Mehrzahl von Datenspeichervorrichtungen 300-1 bis 300-k (wobei ”k” eine ganze Zahl von wenigstens zwei ist) kann nicht direkt mit einem Host koppeln, das heißt der CPU 920, sondern sie kann auf der RAID-Steuerkarte 960 montiert sein und kann mit dem Host 920 über die RAID-Steuerkarte 960 koppeln.
  • Die Datenverarbeitungssysteme 900 und 900', welche jeweils in den 16 und 17 veranschaulicht sind, können jeweils ein Computer sein, ein PDA, ein Mobiltelefon, ein Smartphone, ein MP3-Player, ein PMP, ein Automobilnavigationssystem oder ein MID, sind jedoch nicht auf diese Beispiele beschränkt.
  • Wie obenstehend beschrieben ist, wird gemäß einigen Ausführungsformen des erfinderischen Konzepts ein Mehrfachzugriffsbefehl, welcher ursprünglich zwischen einem Host und einer Datenspeichervorrichtung definiert ist, verwendet, um eine Mehrzahl von Adressen und Daten mit einem einzelnen Befehl zu übertragen, sodass eine Datenverarbeitungseffizienz der Datenspeichervorrichtung erhöht wird und eine Datenübertragungseffizienz zwischen dem Host und der Datenspeichervorrichtung ebenso erhöht wird. Als ein Ergebnis wird ein Leistungsverbrauch der Datenspeichervorrichtung und eines Datenspeichersystems, welches die Datenspeichervorrichtung aufweist, verringert.
  • Während das erfinderische Konzept insbesondere unter Bezugnahme auf beispielhafte Ausführungsformen davon gezeigt und beschrieben wurde, wird es durch Fachleute verstanden werden, dass verschiedene Änderungen in den Formen und Details darin getätigt werden können, ohne von dem Gedanken und Umfang der folgenden Ansprüche abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 10-2016-0036386 [0001]
    • US 7679133 [0038]
    • US 8553466 [0038]
    • US 8654587 [0038]
    • US 8559235 [0038]
    • US 2011/0233648 [0038]

Claims (27)

  1. Datenspeichervorrichtung (300, 300a, 300b, 300c), die Folgendes aufweist: eine erste nichtflüchtige Speichervorrichtung (410-1); eine zweite nichtflüchtige Speichervorrichtung (410-2); und eine Verwaltungsschaltung (310), welche mit der ersten nichtflüchtigen Speichervorrichtung (410-1) und der zweiten nichtflüchtigen Speichervorrichtung (410-2) verbunden ist, wobei die Verwaltungsschaltung (310) konfiguriert ist, um: einen externen Mehrfachzugriffsbefehl zu empfangen, wobei der externe Mehrfachzugriffsbefehl von außerhalb der Datenspeichervorrichtung (300, 300a, 300b, 300c) empfangen wird und eine erste Adresse und eine zweite Adresse aufweist, basierend auf dem externen Mehrfachzugriffsbefehl und der ersten Adresse einen ersten internen Zugriffsbefehl zu erzeugen und um den ersten internen Zugriffsbefehl und die erste Adresse der ersten nichtflüchtigen Speichervorrichtung (410-1) zuzuführen, und basierend auf dem externen Mehrfachzugriffsbefehl und der zweiten Adresse einen zweiten internen Zugriffsbefehl zu erzeugen und um den zweiten internen Zugriffsbefehl und die zweite Adresse der zweiten nichtflüchtigen Speichervorrichtung (410-2) zuzuführen.
  2. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 1, wobei die Datenspeichervorrichtung (300, 300a, 300b, 300c) ein Festkörperlaufwerk (SSD) ist.
  3. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 1, wobei die erste nichtflüchtige Speichervorrichtung (410-1) ein Halbleiterchip oder eine Halbleiterbaugruppe ist, und die zweite nichtflüchtige Speichervorrichtung ein Halbleiterchip oder eine Halbleiterbaugruppe ist.
  4. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 1, wobei: der Mehrfachzugriffsbefehl ein Mehrfachschreibbefehl ist.
  5. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 4, wobei: die Datenspeichervorrichtung (300, 300a, 300b, 300c) konfiguriert ist, um in Antwort auf den externen Mehrfachzugriffsbefehl, welcher ein Mehrfachschreibbefehl ist, Daten zu der ersten Adresse bei der ersten nichtflüchtigen Speichervorrichtung (410-1) zu derselben Zeit zu schreiben wie Daten zu der zweiten Adresse bei der zweiten nichtflüchtigen Speichervorrichtung (410-2) zu schreiben.
  6. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 4, wobei: die Verwaltungsschaltung (310) einen Puffer aufweist; und die Verwaltungsschaltung (310) konfiguriert ist, um: Schreibdaten zu empfangen und sie in dem Puffer zu speichern, und einen ersten Teil der Schreibdaten, welche in dem Puffer gespeichert sind, der ersten nichtflüchtigen Speichervorrichtung (410-1) zuzuführen, und um einen zweiten Teil der Schreibdaten, welche in dem Puffer gespeichert sind, und nicht der erste Teil sind, der zweiten nichtflüchtigen Speichervorrichtung (410-2) zuzuführen.
  7. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 4, wobei: jede der ersten nichtflüchtigen Speichervorrichtung (410-1) und der zweiten nichtflüchtigen Speichervorrichtung (410-2) konfiguriert ist, um Daten, welche mit dem Schreibbefehl verbunden sind, von einem Host (200) zu empfangen, ohne dass die Daten in einem Puffer der Verwaltungsschaltung (310) gespeichert werden.
  8. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 4, wobei der Mehrfachschreibbefehl Schreibdaten aufweist, und der Mehrfachschreibbefehl die Verwaltungsschaltung (310) instruiert, alle der Schreibdaten, welche mit dem Mehrfachschreibbefehl verbunden sind, zu beiden der ersten nichtflüchtigen Speichervorrichtung (410-1) und der zweiten nichtflüchtigen Speichervorrichtung (410-2) zu schreiben.
  9. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 4, wobei der Mehrfachschreibbefehl Schreibdaten aufweist, und der Mehrfachschreibbefehl der Verwaltungsschaltung (310) befiehlt, einen ersten Teil der Schreibdaten zu dem ersten nichtflüchtigen Speicher zu schreiben und einen zweiten Teil der Schreibdaten und nicht den ersten Teil zu dem zweiten nichtflüchtigen Speicher zu schreiben.
  10. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 4, wobei: die ersten und zweiten Adressen physikalische Adressen sind, welche durch einen Host (200) gemäß einer Abbildungstabelle erzeugt werden; und die ersten und zweiten nichtflüchtigen Speichervorrichtungen (410-1, 410-2) konfiguriert sind, um Daten zu einem Ort zu schreiben, welcher jeweils der ersten und zweiten physikalischen Adresse entspricht.
  11. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 10, wobei: die Verwaltungsschaltung (310) konfiguriert ist, um: einen externen Schreibbefehl, welcher Schreibdaten aufweist, zu empfangen und die Schreibdaten in einem Puffer zu speichern; einen ersten internen Schreibbefehl zu erzeugen, welcher die erste physikalische Adresse und wenigstens einen Abschnitt der Schreibdaten aufweist; einen zweiten internen Schreibbefehl zu erzeugen, welcher die zweite physikalische Adresse und wenigstens einen Abschnitt der Schreibdaten aufweist.
  12. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 10, wobei: die Verwaltungsschaltung (310) konfiguriert ist, um Schreibdaten zu empfangen und sie in einem Puffer zu speichern, und dann die Schreibdaten sowohl der ersten nichtflüchtigen Speichervorrichtung (410-1) als auch der zweiten nichtflüchtigen Speichervorrichtung (410-2) zuzuführen.
  13. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 10, wobei jede der ersten nichtflüchtigen Speichervorrichtung (410-1) und der zweiten nichtflüchtigen Speichervorrichtung (410-2) konfiguriert ist, um Daten, welche mit dem Schreibbefehl verbunden sind, von einem Host (200) zu empfangen ohne dass die Daten in einem Puffer der Verwaltungsschaltung (310) gespeichert werden.
  14. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 10, wobei: die Verwaltungsschaltung (310) konfiguriert ist, um einen Mehrfachzugriffsbefehl zu empfangen, welcher die erste physikalische Adresse und die zweite physikalische Adresse aufweist, und dann erste Daten, welche der ersten physikalischen Adresse entsprechen, aus der ersten nichtflüchtigen Speichervorrichtung (410-1) zu lesen und zweite Daten, welche der zweiten physikalischen Adresse entsprechen, aus der zweiten nichtflüchtigen Speichervorrichtung (410-2) zu lesen.
  15. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 14, wobei: die Verwaltungsschaltung (310) konfiguriert ist, um die ersten Lesedaten und die zweiten Lesedaten zu kombinieren und die kombinierten Daten zu dem Host (200) zu übertragen.
  16. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 14, wobei: die Verwaltungsschaltung (310) konfiguriert ist, um entweder die ersten Lesedaten oder die zweiten Lesedaten zu dem Host (200) zu übertragen, wenn die ersten Lesedaten dieselben wie die zweiten Lesedaten sind.
  17. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 10, wobei: die Verwaltungsschaltung (310) konfiguriert ist, um einen Mehrfachzugriffsbefehl zu empfangen, welcher die erste physikalische Adresse und die zweite physikalische Adresse aufweist, und dann einen ersten Löschbefehl zu der ersten nichtflüchtigen Speichervorrichtung (410-1) basierend auf der ersten Adresse zu senden und einen zweiten Löschbefehl zu der zweiten nichtflüchtigen Speichervorrichtung (410-2) basierend auf der zweiten Adresse zu senden.
  18. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 1, wobei: der externe Mehrfachzugriffsbefehl ein Mehrfachlesebefehl ist; der erste interne Zugriffsbefehl ein erster Lesebefehl ist; und der zweite interne Zugriffsbefehl ein zweiter Lesebefehl ist, wobei die Verwaltungsschaltung (310) konfiguriert ist, um erste Daten aus der ersten nichtflüchtigen Speichervorrichtung (410-1) in Antwort auf den ersten Lesebefehl zu lesen, und um zweite Daten aus der zweiten nichtflüchtigen Speichervorrichtung (410-2) in Antwort auf den zweiten Lesebefehl zu lesen.
  19. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 18, wobei: die Datenspeichervorrichtung (300, 300a, 300b, 300c) konfiguriert ist, um in Antwort auf den externen Mehrfachzugriffsbefehl, welcher ein Mehrfachlesebefehl ist, eine Leseoperation auf der ersten nichtflüchtigen Vorrichtung für die ersten Daten zu derselben Zeit durchzuführen wie eine Leseoperation auf der zweiten nichtflüchtigen Speichervorrichtung (410-2) für die zweiten Daten durchzuführen.
  20. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 18, wobei die Verwaltungsschaltung (310) konfiguriert ist, um die ersten Daten, welche aus der ersten nichtflüchtigen Speichervorrichtung (410-1) gelesen werden, mit den zweiten Daten, welche aus der zweiten nichtflüchtigen Speichervorrichtung (410-2) gelesen werden, zu kombinieren und um die kombinierten Daten zu einem Host (200) zu übertragen.
  21. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 18, wobei die Verwaltungsschaltung (310) konfiguriert ist, um eine der ersten Daten, welche aus der ersten nichtflüchtigen Speichervorrichtung (410-1) gelesen werden, und der zweiten Daten, welche aus der zweiten nichtflüchtigen Speichervorrichtung (410-2) gelesen werden, zu einem Host (200) zu senden, wenn die ersten Daten dieselben sind wie die zweiten Daten.
  22. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 21, wobei die Verwaltungsschaltung (310) konfiguriert ist, um zwischen einem Senden der ersten Daten, welche aus der ersten nichtflüchtigen Speichervorrichtung (410-1) gelesen werden, zu dem Host (200) und einem Senden der zweiten Daten, welche aus der zweiten nichtflüchtigen Speichervorrichtung (410-2) gelesen werden, zu dem Host (200) auszuwählen basierend auf der Datenlesegeschwindigkeit der ersten nichtflüchtigen Speichervorrichtung (410-1) und der Datenlesegeschwindigkeit der zweiten nichtflüchtigen Speichervorrichtung (410-2).
  23. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 1, wobei: der externe Mehrfachzugriffsbefehl einen Mehrfachlöschbefehl aufweist; der erste interne Zugriffsbefehl einen ersten Löschbefehl aufweist; und der zweite interne Zugriffsbefehl einen zweiten Löschbefehl aufweist, wobei die erste nichtflüchtige Speichervorrichtung (410-1) konfiguriert ist, um Daten, welche mit der ersten Adresse verbunden sind, in Antwort auf den ersten Löschbefehl zu löschen, und wobei die zweite nichtflüchtige Speichervorrichtung (410-2) konfiguriert ist, um Daten, welche mit der zweiten Adresse verbunden sind, in Antwort auf den zweiten Löschbefehl zu löschen.
  24. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 23, wobei: die Datenspeichervorrichtung (300, 300a, 300b, 300c) konfiguriert ist, um in Antwort auf den externen Mehrfachzugriffsbefehl, welcher ein Mehrfachlöschbefehl ist, Daten, welche mit der ersten Adresse verbunden sind, aus der ersten nichtflüchtigen Speichervorrichtung (410-1) zu derselben Zeit zu löschen wie Daten, welche mit der zweiten Adresse verbunden sind, aus der zweiten nichtflüchtigen Speichervorrichtung (410-2) zu löschen.
  25. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 1, wobei: die erste Adresse eine erste physikalische Adresse ist; und die zweite Adresse eine zweite physikalische Adresse ist.
  26. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 1, wobei: die erste nichtflüchtige Speichervorrichtung (410-1) ein NAND-Speicher ist; und die Verwaltungsschaltung (310) eine NAND-Verwaltungsschaltung ist.
  27. Datenspeichervorrichtung (300, 300a, 300b, 300c) nach Anspruch 26, wobei: die NAND-Verwaltungsschaltung keine Flashübersetzungsschicht aufweist.
DE102017104448.5A 2016-03-25 2017-03-03 Datenspeichervorrichtung Pending DE102017104448A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2016-0036386 2016-03-25
KR20160036386 2016-03-25

Publications (1)

Publication Number Publication Date
DE102017104448A1 true DE102017104448A1 (de) 2017-09-28

Family

ID=59814261

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017104448.5A Pending DE102017104448A1 (de) 2016-03-25 2017-03-03 Datenspeichervorrichtung

Country Status (4)

Country Link
US (2) US10481799B2 (de)
KR (1) KR102387968B1 (de)
CN (1) CN107229417B (de)
DE (1) DE102017104448A1 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248330B2 (en) * 2017-05-30 2019-04-02 Seagate Technology Llc Data storage device with buffer tenure management
US11592991B2 (en) 2017-09-07 2023-02-28 Pure Storage, Inc. Converting raid data between persistent storage types
EP3612922A1 (de) 2017-06-12 2020-02-26 Pure Storage, Inc. In eine massenspeichervorrichtung integrierter zugänglicher schneller dauerhafter speicher
US11609718B1 (en) 2017-06-12 2023-03-21 Pure Storage, Inc. Identifying valid data after a storage system recovery
US10552090B2 (en) * 2017-09-07 2020-02-04 Pure Storage, Inc. Solid state drives with multiple types of addressable memory
US11593036B2 (en) 2017-06-12 2023-02-28 Pure Storage, Inc. Staging data within a unified storage element
US10459809B2 (en) * 2017-06-30 2019-10-29 Intel Corporation Stacked memory chip device with enhanced data protection capability
KR102410671B1 (ko) * 2017-11-24 2022-06-17 삼성전자주식회사 스토리지 장치, 스토리지 장치를 제어하는 호스트 장치, 및 스토리지 장치의 동작 방법
KR102637166B1 (ko) 2018-04-17 2024-02-16 삼성전자주식회사 대용량 데이터를 저장하는 네트워크 스토리지 장치
CN110389904B (zh) * 2018-04-20 2024-10-01 北京忆恒创源科技股份有限公司 具有压缩的ftl表的存储设备
KR102513919B1 (ko) * 2018-11-05 2023-03-27 에스케이하이닉스 주식회사 메모리 시스템
US11327656B2 (en) * 2018-08-03 2022-05-10 Mobileye Vision Technologies Ltd. Accessing a dynamic memory module
KR102527265B1 (ko) * 2018-08-23 2023-05-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
KR102709411B1 (ko) * 2018-12-19 2024-09-24 삼성전자주식회사 메모리 컨트롤러 및 메모리 시스템의 동작 방법, 및 메모리 시스템
CN110007853B (zh) * 2019-01-30 2022-06-28 镕铭微电子(济南)有限公司 一种Nandflash命令处理方法、装置、终端及存储介质
KR102687192B1 (ko) 2019-02-18 2024-07-19 삼성전자주식회사 메모리 장치 및 시스템
CN113330410A (zh) * 2019-03-01 2021-08-31 阿里巴巴集团控股有限公司 用于管理非易失性存储器和闪存作为计算对象接口固态驱动器的方法和装置
WO2020186081A1 (en) * 2019-03-12 2020-09-17 Intel Corporation Computational data storage systems
CN109992444A (zh) * 2019-03-25 2019-07-09 深圳忆联信息系统有限公司 一种基于硬件的端对端数据保护方法、装置、计算机设备及存储介质
CN111913892B (zh) * 2019-05-09 2021-12-07 北京忆芯科技有限公司 使用cmb提供开放通道存储设备
CN112306378B (zh) * 2019-08-01 2024-04-09 兆易创新科技集团股份有限公司 用户数据搬移的恢复方法、装置、电子设备及存储介质
US11017842B2 (en) 2019-08-29 2021-05-25 Micron Technology, Inc. Copy data in a memory system with artificial intelligence mode
US11720413B2 (en) * 2020-06-08 2023-08-08 Samsung Electronics Co., Ltd. Systems and methods for virtualizing fabric-attached storage devices
DE102021004288A1 (de) * 2020-09-15 2022-03-17 Löwenstein Medical Technology S.A. Verfahren und System zur Datenübertragung bei Beatmungsgeräten
US20230153037A1 (en) * 2021-11-17 2023-05-18 Microchip Technology Incorporated System and Method for a Storage Controller Card with Redundant Boot Storage
US20230367476A1 (en) * 2022-05-16 2023-11-16 SK Hynix Inc. Hardware accelerated database sorting in solid state storage drives

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7679133B2 (en) 2007-11-08 2010-03-16 Samsung Electronics Co., Ltd. Vertical-type non-volatile memory devices
US20110233648A1 (en) 2010-03-26 2011-09-29 Samsung Electronics Co., Ltd. Three-Dimensional Semiconductor Memory Devices And Methods Of Fabricating The Same
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US8559235B2 (en) 2010-08-26 2013-10-15 Samsung Electronics Co., Ltd. Nonvolatile memory device, operating method thereof and memory system including the same
US8654587B2 (en) 2010-08-11 2014-02-18 Samsung Electronics Co., Ltd. Nonvolatile memory devices, channel boosting methods thereof, programming methods thereof, and memory systems including the same
KR20160036386A (ko) 2014-09-25 2016-04-04 엘지전자 주식회사 이동단말기 및 그 제어방법

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505268B1 (en) 1996-12-20 2003-01-07 Compaq Computer Corporation Data distribution in a disk array
US6317805B1 (en) 1998-12-18 2001-11-13 Emc Corporation Data transfer interface having protocol conversion device and upper, lower, middle machines: with middle machine arbitrating among lower machine side requesters including selective assembly/disassembly requests
US8341332B2 (en) * 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US20050289218A1 (en) 2004-06-28 2005-12-29 Rothman Michael A Method to enable remote storage utilization
US7319612B2 (en) * 2005-05-18 2008-01-15 Intel Corporation Performing multiple read operations via a single read command
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
US20090006745A1 (en) 2007-06-28 2009-01-01 Cavallo Joseph S Accessing snapshot data image of a data mirroring volume
US8966580B2 (en) 2008-05-01 2015-02-24 Sandisk Il Ltd. System and method for copying protected data from one secured storage device to another via a third party
KR20100100394A (ko) * 2009-03-06 2010-09-15 삼성전자주식회사 반도체 디스크 장치 그리고 그것의 데이터 기록 및 읽기 방법
KR101070511B1 (ko) 2009-03-20 2011-10-05 (주)인디링스 Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
US8417871B1 (en) 2009-04-17 2013-04-09 Violin Memory Inc. System for increasing storage media performance
KR101594029B1 (ko) 2009-07-06 2016-02-16 삼성전자주식회사 데이터 조작 방법 및 그 방법을 이용하는 시스템 장치
US20110022783A1 (en) * 2009-07-24 2011-01-27 Stec, Inc. Flash storage with increased throughput
KR101574207B1 (ko) * 2009-10-16 2015-12-14 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 저장 방법
US8307151B1 (en) 2009-11-30 2012-11-06 Micron Technology, Inc. Multi-partitioning feature on e-MMC
US8595414B2 (en) * 2010-09-30 2013-11-26 Apple Inc. Selectively combining commands for a system having non-volatile memory
JP2012119038A (ja) * 2010-12-02 2012-06-21 Toshiba Corp 不揮発性半導体メモリ及び記憶装置
US8819328B2 (en) * 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US8700834B2 (en) * 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
JP2013069171A (ja) * 2011-09-22 2013-04-18 Toshiba Corp メモリシステムとその制御方法
KR20140031515A (ko) * 2012-09-03 2014-03-13 삼성전자주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치
US9395924B2 (en) * 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US10073626B2 (en) * 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
KR20140114515A (ko) 2013-03-15 2014-09-29 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 중복 데이터 제거 방법
US9952784B2 (en) * 2015-03-11 2018-04-24 Sandisk Technologies Llc Multichip dual write
KR102615659B1 (ko) * 2016-07-08 2023-12-20 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7679133B2 (en) 2007-11-08 2010-03-16 Samsung Electronics Co., Ltd. Vertical-type non-volatile memory devices
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US20110233648A1 (en) 2010-03-26 2011-09-29 Samsung Electronics Co., Ltd. Three-Dimensional Semiconductor Memory Devices And Methods Of Fabricating The Same
US8654587B2 (en) 2010-08-11 2014-02-18 Samsung Electronics Co., Ltd. Nonvolatile memory devices, channel boosting methods thereof, programming methods thereof, and memory systems including the same
US8559235B2 (en) 2010-08-26 2013-10-15 Samsung Electronics Co., Ltd. Nonvolatile memory device, operating method thereof and memory system including the same
KR20160036386A (ko) 2014-09-25 2016-04-04 엘지전자 주식회사 이동단말기 및 그 제어방법

Also Published As

Publication number Publication date
US10481799B2 (en) 2019-11-19
US20170277432A1 (en) 2017-09-28
CN107229417B (zh) 2022-03-22
CN107229417A (zh) 2017-10-03
US11182078B2 (en) 2021-11-23
US20200050363A1 (en) 2020-02-13
KR20170114255A (ko) 2017-10-13
KR102387968B1 (ko) 2022-04-20

Similar Documents

Publication Publication Date Title
DE102017104448A1 (de) Datenspeichervorrichtung
DE102017128952B4 (de) Datenspeichervorrichtung, die konfiguriert ist, um eine nicht-blockierende Steuerungs-Aktualisierungsoperation auszuführen
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102018113447A1 (de) Speichervorrichtung zum Koppeln mit einem Host und Verfahren zum Betreiben des Hosts und der Speichervorrichtung
DE102018122491A1 (de) Halbleiterspeichervorrichtung und verfahren zum betreiben derselben
DE112017001471T5 (de) Mehrebenen-speichermanagement
DE102016009807A1 (de) Korrelieren von physikalischen seitenadressen für soft-decision-dekodierung
DE102015012566A1 (de) Mehrlagenkonzept für logische speicherungsverwaltung
DE112017004966T5 (de) Erweiterte anwendung eines fehlerprüfungs- und korrekturcodes in einem speicher
DE102020211544A1 (de) Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben
DE102017106713A1 (de) Rechensystem, nichtflüchtiges Speichermodul und Verfahren zum Betreiben einer Speichervorrichtung
DE102015109359A1 (de) Interner Speicher, externer Speicher, der mit diesem kommunizieren kann, und Datenverarbeitungssystem mit diesen Speichern
DE102019134294A1 (de) Nichtflüchtiges speichersystem mit schneller wiederherstellung nach nicht ordnungsgemässem herunterfahren
DE102021120140A1 (de) Speichervorrichtung, die in der lage ist, fehlerhafte daten im parallel-bit-test auszugeben, und speichersystem mit dieser speichervorrichtung
DE102021123711A1 (de) Testverfahren von Speichervorrichtung implementiert in Multi-Chip-Packages (MCP) und Herstellungsverfahren eines MCP umfassend das Testverfahren
DE102021118940A1 (de) Speichersteuerung und speichereinrichtung mit derselben
DE102018123494A1 (de) Speichervorrichtung, die zum aktualisieren einesfeldprogrammierbaren gate-arrays ausgestaltetist, und betriebsverfahren dafür
DE112020005044T5 (de) Zonenanhang-befehlsplanung basierend auf zonenzustand
DE102022101607A1 (de) Verwaltung der hostspeicherpufferzuweisung
DE102018204931A1 (de) Dauerhaftes Caching eines arbeitsspeicherseitigen Cache-Inhalts
DE112020005395T5 (de) Kapazitätserweiterung für speicher-untersysteme
DE102021006246A1 (de) Doppelt verschachtelte Programmierung einer Speichervorrichtung in einem Speicher-Untersystem
DE102022106020A1 (de) Anwendungsbewusste speicher-patrol-scrubbing-techniken
DE112019000158T5 (de) Bereichskollisions-crawler für logische blockadressierung
DE112021001848T5 (de) Mehrere pinkonfigurationen von speichervorrichtungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed