DE102015117066A1 - Verfahren zum Betreiben einer Datenspeichervorrichtung, mobile Rechenvorrichtung mit derselben und Verfahren der mobilen Rechenvorrichtung - Google Patents

Verfahren zum Betreiben einer Datenspeichervorrichtung, mobile Rechenvorrichtung mit derselben und Verfahren der mobilen Rechenvorrichtung Download PDF

Info

Publication number
DE102015117066A1
DE102015117066A1 DE102015117066.3A DE102015117066A DE102015117066A1 DE 102015117066 A1 DE102015117066 A1 DE 102015117066A1 DE 102015117066 A DE102015117066 A DE 102015117066A DE 102015117066 A1 DE102015117066 A1 DE 102015117066A1
Authority
DE
Germany
Prior art keywords
storage device
data storage
command
response
host
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.)
Withdrawn
Application number
DE102015117066.3A
Other languages
English (en)
Inventor
Seung Cheol Hong
Seung Uk Shin
Sang Won Jung
Jeong Hoon Cho
Kyung Ho Kim
Hong Suk Choi
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 DE102015117066A1 publication Critical patent/DE102015117066A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory

Abstract

Ein Verfahren zum Betreiben einer Datenspeichervorrichtung (300) enthält ein Empfangen eines Befehls mit einem von einem Host (200) übertragenen gesetzten Bit (SB), ein Speichern (S114) des gesetzten Bit (SB) in einem Register als Antwort auf den Befehl, ein Empfangen eines ersten Zustandsprüfbefehls (SCC) von dem Host (200), und ein Übertragen (S122, S130) einer Antwort (RES1, RES2), welche Zustandsinformation der Datenspeichervorrichtung (300) sowie einem Schreibbefehl (WC) in der Datenspeichervorrichtung (300) entsprechende Verarbeitungsinformation enthält, an den Host (200) basierend auf dem ersten Zustandsprüfbefehl (SCC) und dem in dem Register gespeicherten gesetzten Bit (SB).

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität gemäß 35 U.S.C. §119(a) der am 27. Oktober 2014 eingereichten Koreanischen Patentanmeldung Nr. KR 10-2014-0145651 , deren Offenbarung in ihrer Gesamtheit hiermit mit eingebaut wird.
  • HINTERGRUND
  • 1. Gebiet
  • Zumindest einige beispielhafte Ausführungsformen der erfinderischen Konzepte beziehen sich auf eine Datenspeichervorrichtung und insbesondere auf eine Datenspeichervorrichtung, die Informationen über eine Verarbeitungszeit für einen Schreibbefehl an einen Host übertragen kann, auf ein Verfahren zum Betreiben der Datenspeichervorrichtung und auf eine mobile Rechenvorrichtung, welche die Lese-Latenzzeit auf der Grundlage der Information einstellen kann.
  • 2. Verwandte Technik
  • Anders als ein dynamischer Direktzugriffsspeicher (DRAM) oder ein Festplattenlaufwerk (HDD) kann ein Flash-Speicher möglicherweise keine Inplace-Update-Operation an Daten durchführen. Nachdem ein Programmcode in einen NOR-Flash-Speicher geschrieben wurde, kann ein Update in dem NOR-Flash-Speicher kaum erzeugt werden. Da jedoch ein Update an Daten in einem NAND-Flash-Speicher häufig durchgeführt wird, wird eine Lösch-Operation für ein Update benötigt.
  • Um bei dem NAND-Flash-Speicher in einen Speicherbereich geschriebene Daten zu aktualisieren, muss eine Lösch-Operation zum Löschen der in den Speicherbereich geschriebenen Daten durchgeführt werden. Die Lösch-Operation kann länger dauern als eine Schreiboperation (oder eine Programmieroperation) oder eine Lese-Operation, und eine Größe des Speicherbereichs oder der Daten, der/die der Lösch-Operation unterzogen werden, kann größer sein als eine Größe eines Speicherbereichs oder der Daten, die der Schreib-Operation oder der Lese-Operation unterzogen werden. Im Allgemeinen wird die Schreib-Operation oder die Lese-Operation auf einer Seitenbasis durchgeführt und wird die Lösch-Operation auf einer Blockbasis durchgeführt. Dabei enthält ein Block eine Mehrzahl von Seiten.
  • Wenn eine Aktualisierungsanforderung für eine Seite oder für in einen ersten Speicherbereich geschriebene Seitendaten eines Flash-Speichers auftritt, schreibt der Flash-Speicher, ohne die Seite sofort zu löschen, eine zu aktualisierende Seite in einen zweiten Speicherbereich des Flash-Speichers und macht dann die in den ersten Speicherbereich geschriebene Seite ungültig und mappt die zu aktualisierende Seite unter Verwendung einer Mapping-Tabelle neu.
  • Wenn die Anzahl an ungültigen Seiten in dem Flash-Speicher erhöht wird, wird ein Speicherbereich oder ein freier Block zum Schreiben neuer Seiten ungenügend werden. Dementsprechend führt der Flash-Speicher periodisch eine Löschoperation an dem Block durch. Dabei führt der Flash-Speicher eine Operation des Kopierens von gültigen Seiten, die in einem entsprechenden Block gespeichert sind, in einen anderen Speicherbereich durch, bevor eine Löschoperation an dem entsprechenden Block durchgeführt wird. Dies wird als Speicherbereinigung bezeichnet.
  • KURZFASSUNG
  • Eine technische Aufgabe von zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte ist es, einen Host bereitzustellen, der in der Lage ist, einen Befehl, der anfordert, ob oder ob nicht eine Hintergrundoperation durchgeführt wird, um so eine Lese-Latenzzeit adaptiv einzustellen, an eine Datenspeichervorrichtung zu übertragen, sowie ein Verfahren zum Betreiben des Host bereitzustellen.
  • Eine technische Aufgabe von zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte ist es, eine Datenspeichervorrichtung bereitzustellen, die in der Lage ist, eine Antwort an einen Host zu übertragen, ob oder ob nicht eine Hintergrundoperation durchgeführt wird, als Antwort auf einen Befehl, welcher anfordert, ob oder ob nicht die Hintergrundoperation durchgeführt wird, sowie ein Verfahren zum Betreiben der Datenspeichervorrichtung bereitzustellen. Die Datenspeichervorrichtung enthält ein dreidimensionales Speicherarray, wobei das dreidimensionale Speicherarray einen nichtflüchtigen Speicher aufweist, der monolithisch auf zwei oder mehreren physikalischen Ebenen von Speicherzellen ausgebildet ist, welche über einem Siliziumsubstrat angeordnete aktive Bereiche besitzen.
  • Eine technische Aufgabe von zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte ist es, eine mobile Rechenvorrichtung bereitzustellen, welche einen Host enthält, der in der Lage ist, einen Befehl an eine Datenspeichervorrichtung zu übertragen, der anfordert, ob oder ob nicht eine Hintergrundoperation durchgeführt wird, um so adaptiv eine Lese-Latenzzeit einzustellen, und die Datenspeichervorrichtung bereitzustellen, die in der Lage ist, eine Antwort an den Host zu übertragen, welche wiedergibt, ob oder ob nicht die Hintergrundoperation durchgeführt wird, sowie ein Verfahren zum Betreiben der mobilen Rechenvorrichtung bereitzustellen.
  • Gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte enthält ein Verfahren zum Betreiben einer Datenspeichervorrichtung: ein Empfangen eines von einem Host übertragenen ersten Befehls mit einem gesetzten Bit; ein Speichern des gesetzten Bit in einem Register als Antwort auf den ersten Befehl; ein Empfangen eines ersten Zustandsprüfbefehls von dem Host; und ein Übertragen einer Antwort, welche Zustandsinformation der Datenspeichervorrichtung sowie Verarbeitungsinformation enthält, welche einem Schreibbefehl für die Datenspeichervorrichtung entspricht, an den Host auf der Grundlage des ersten Zustandsprüfbefehls und des in dem Register gespeicherten gesetzten Bit.
  • Das Verfahren kann weiter ein Erzeugen, durch die Datenspeichervorrichtung, einer Antwort aufweisen, so dass die Verarbeitungsinformation Information über eine Latenzzeit eines in der Datenspeichervorrichtung zu verarbeitenden Schreibbefehls enthält.
  • Das Verfahren kann weiter ein Erzeugen der Antwort durch die Datenspeichervorrichtung aufweisen, so dass die Verarbeitungsinformation Information über Speicherbereinigung enthält, welche in der Datenspeichervorrichtung durchgeführt wird.
  • Das Verfahren enthält weiter ein Empfangen eines Lesebefehls von dem Host, während die Speicherbereinigung durchgeführt wird; ein Stoppen der Speicherbereinigung als Antwort auf den Lesebefehl; ein Übertragen von Lesedaten an den Host als Antwort auf den Lesebefehl; und ein Wiederaufnehmen der gestoppten Speicherbereinigung.
  • Das Verfahren enthält weiter ein Übertragen einer Antwort, die einen Abschluss der Speicherbereinigung anzeigt, an dem Host als Antwort auf einen zweiten Zustandsprüfbefehl, der von dem Host nach dem Abschluss der Speicherbereinigung übertragen wird; und ein Empfangen eines Schreibbefehls sowie von Schreibdaten von dem Host und Speichern der Schreibdaten in einem Speicher basierend auf dem Schreibbefehl.
  • Das Verfahren enthält weiter, wenn die Speicherbereinigung in einer Mehrzahl von Schritten durchgeführt wird und die Mehrzahl von Schritten verschiedene Ausführungszeiten besitzen, ein Erzeugen der Antwort durch die Datenspeichervorrichtung, so dass die Antwort die Verarbeitungsinformation mit Bits enthält, welche jedem der Mehrzahl von Schritten entsprechen.
  • Die Datenspeichervorrichtung kann eine embedded Multimedia Card (eMMC) sein, der erste Befehl kann ein SWITCH-Befehl (CMD6) mit dem gesetzten Bit sein, das Register kann ein EXT_CSD-Register sein, das Speichern des gesetzten Bit kann ein Speichern des gesetzten Bit in einem herstellerspezifischen Feld des EXT_CSD-Registers sein und der erste Zustandsprüfbefehl ist CMD13.
  • Gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte enthält ein Verfahren zum Betreiben einer mobilen Rechenvorrichtung mit einem Host und einer Datenspeichervorrichtung: ein Bestimmen einer Lese-Latenzzeit eines in der Datenspeichervorrichtung durchzuführenden Lesebefehls durch den Host; ein Übertragen eines ersten Befehls durch den Host an die Speichervorrichtung gemäß einem Ergebnis der Bestimmung, wobei der erste Befehl ein gesetztes Bit enthält; ein Speichern des gesetzten Bit durch die Datenspeichervorrichtung in einem Register als Antwort auf den ersten Befehl; ein Übertragen eines ersten Zustandsprüfbefehls durch den Host an die Datenspeichervorrichtung; und ein Übertragen entweder einer ersten Antwort oder einer zweiten Antwort an den Host durch die Datenspeichervorrichtung, basierend auf dem ersten Zustandsprüfbefehl und dem in dem Register gespeicherten gesetzten Bit.
  • Das Verfahren kann weiter enthalten: ein Erzeugen der ersten Antwort, so dass die erste Antwort eine Zustandsinformation der Datenspeichervorrichtung enthält sowie ein Erzeugen der zweiten Antwort, so dass die zweite Antwort die Zustandsinformation der Datenspeichervorrichtung sowie Verarbeitungsinformation enthält, welche einem Schreibbefehl für die Datenspeichervorrichtung entspricht.
  • Das Verfahren kann weiter ein Rescheduling durch den Host von zumindest einem von einem Lesebefehl und einem Schreibbefehl, die an die Datenspeichervorrichtung übertragen werden sollen, auf der Grundlage der zweiten Antwort, enthalten.
  • Das Verfahren kann weiter enthalten ein Einstellen, durch einen Host, eines Übertragungsintervalls eines Warteschlangenbereitschafts-Prüfbefehls, der an die Datenspeichervorrichtung übertragen werden soll, basierend auf der zweiten Antwort.
  • Das Verfahren kann weiter enthalten: ein Erzeugen der Verarbeitungsinformation, so dass die Verarbeitungsinformation zumindest eine von einer Information über die Latenzzeit eines nächsten in der Datenspeichervorrichtung zu verarbeitenden Schreibbefehls und einer Information enthält, die eine Hintergrundoperation anzeigt, welche in der Datenspeichervorrichtung verarbeitet wird.
  • Die Hintergrundoperation kann zumindest eine Speicherbereinigung, ein Wear-Leveling und eine Leserückholoperation enthalten.
  • Das Verfahren kann weiter enthalten: ein Empfangen eines ersten Lesebefehls durch eine Datenspeichervorrichtung von dem Host, während die Speicherbereinigung durchgeführt wird; ein Stoppen der Speicherbereinigung durch die Datenspeichervorrichtung als Antwort auf den ersten Lesebefehl; ein Übertragen von Lesedaten durch die Datenspeichervorrichtung an den Host als Antwort auf den ersten Lesebefehl; und ein Wiederaufnehmen der gestoppten Speicherbereinigung durch die Datenspeichervorrichtung.
  • Das Verfahren enthält weiter: ein Übertragen eines dritten Befehls, der einen Abschluss der Speicherbereinigung anzeigt, durch die Datenspeichervorrichtung an den Host als Antwort auf einen zweiten Zustandsprüfbefehl, wobei der zweite Zustandsprüfbefehl ein Prüfbefehl ist, der von dem Host übertragen wird, nachdem die Speicherbereinigung abgeschlossen ist; und ein Empfangen eines ersten Schreibbefehls und von Schreibdaten durch die Datenspeichervorrichtung von dem Host und ein Speichern der Schreibdaten in einem Speicher basierend auf dem ersten Schreibbefehl.
  • Die Datenspeichervorrichtung kann eine embedded Multimedia Card (eMMC) sein, der erste Befehl ist ein SWITCH-Befehl (CMD6) mit dem gesetzten Bit, das Register ist ein EXT_CSD-Register, das Speichern des gesetzten Bit enthält ein Speichern des gesetzten Bit in einem herstellerspezifischen Feld des EXT_CSD-Registers und der erste Zustandsprüfbefehl ist CMD13.
  • Gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte enthält ein Verfahren zum Betreiben eines Host: ein Bestimmen, bei dem Host, einer Lese-Latenzzeit einer Datenspeichervorrichtung; ein Erzeugen, bei dem Host, eines gesetzten Indikators, so dass ein Wert des gesetzten Indikators basierend auf der bestimmten Lese-Latenzzeit ausgewählt wird; ein Übertragen eines Zustandsprüfbefehls von dem Host an die Datenspeichervorrichtung; ein Empfangen, bei dem Host, einer ersten Antwort von der Datenspeichervorrichtung, wobei ein Antworttyp der ersten Antwort ein erster Typ oder ein zweiter Typ ist; ein Bestimmen, ob eine Reihenfolge der Datenzugriffsbefehle in einem Befehls-Schedule des Host neu angeordnet wird oder nicht, basierend auf dem Antworttyp der ersten Antwort; und ein Senden eines ersten Datenzugriffsbefehls von dem Host an die Datenspeichervorrichtung, basierend auf dem Befehls-Schedule.
  • Das Bestimmen, ob die Reihenfolge von Datenzugriffsbefehlen neu angeordnet wird oder nicht, enthält, wenn der Antworttyp der ersten Antwort der zweite Antworttyp ist, ein Neuanordnen der Reihenfolge der Datenzugriffsbefehle in einem Befehls-Schedule des Host, so dass ein Lesebefehl in dem Befehls-Schedule eingezogen wird von einem Schreibbefehl in dem Befehls-Schedule und wenn der Antworttyp der ersten Antwort der erste Typ ist, ein Aufrechterhalten einer gegenwärtigen Reihenfolge des Befehls-Schedule, ohne Neuanordnen des Befehls-Schedule.
  • Das Erzeugen des gesetzten Indikators kann ein Erzeugen des gesetzten Indikators derart, dass er einen ersten Wert besitzt, wenn die bestimmte Latenzzeit über einem Referenzwert ist, und ein Erzeugen des gesetzten Indikators derart, dass er einen zweiten Wert besitzt, wenn die bestimmte Latenzzeit nicht über dem Referenzwert ist, enthalten.
  • Das Empfangen der ersten Antwort von der Datenspeichervorrichtung kann ein Empfangen der ersten Antwort mit dem zweiten Antworttyp, wenn der gesetzte Indikator den ersten Wert besitzt, und ein Empfangen der ersten Antwort mit dem ersten Antworttyp, wenn der gesetzte Indikator den zweiten Wert besitzt, enthalten.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die obigen und weitere Merkmale und Vorteile der beispielhaften Ausführungsformen der erfinderischen Konzepte werden offenkundig durch Beschreiben von beispielhaften Ausführungsformen der erfinderischen Konzepte im Detail mit Bezug auf die beigefügten Zeichnungen. Die begleitenden Zeichnungen sind dazu gedacht, beispielhafte Ausführungsformen der erfinderischen Konzepte darzustellen und sollten nicht derart interpretiert werden, dass sie den beabsichtigten Umfang der Ansprüche beschränken. Die begleitenden Zeichnungen sollen nicht als maßstabsgerecht gezeichnet betrachtet werden, außer es ist explizit vermerkt.
  • 1 ist ein schematisches Blockdiagramm eines Datenverarbeitungssystems gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte;
  • 2 ist ein Datenflussdiagramm, das einen Zeitablaufplanungsvorgang eines Eingang-/Ausgangs-Scheduler darstellt, welcher in dem in 1 gezeigten Datenverarbeitungssystem durchgeführt wird, gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte;
  • 3 ist eine Zeichnung, welche einen Betrieb des in 1 gezeigten Datenverarbeitungssystems gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte darstellt;
  • 4 ist eine Zeichnung des Betriebs des in 1 gezeigten Datenverarbeitungssystems gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte;
  • 5 ist ein Datenflussdiagramm, das den Betrieb des in 1 gezeigten Datenverarbeitungssystems gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte darstellt;
  • 6 ist ein Konzeptdiagramm, das ein Verfahren des Einstellen eines Übertragungsintervalls eines Warteschlangenbereitschafts-Prüfbefehls gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte beschreibt; und
  • 7 ist ein Blockdiagramm eines Systems, welches das in 1 gezeigte Datenverarbeitungssystem enthält.
  • DETALLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Detaillierte beispielhafte Ausführungsformen der erfinderischen Konzepte werden hier offenbart. Jedoch sind hier offenbarte bestimmte strukturelle und funktionelle Details nur repräsentativ zum Zwecke des Beschreibens von beispielhaften Ausführungsformen der erfinderischen Konzepte. Beispielhafte Ausführungsformen der erfinderischen Konzepte können jedoch in vielen alternativen Formen ausgebildet sein und sollten nicht als nur auf die hier ausgeführten Ausführungsformen beschränkt ausgelegt werden.
  • Dementsprechend, während beispielhafte Ausführungsformen der erfinderischen Konzepte verschiedene Abwandlungen und alternative Formen annehmen können, werden Ausführungsformen davon nur beispielhaft in den Zeichnungen gezeigt und werden hier im Detail beschrieben werden. Es sollte jedoch verstanden werden, dass es nicht beabsichtigt ist, beispielhafte Ausführungsformen der erfinderischen Konzepte auf bestimmte offenbarte Formen zu beschränken, sondern im Gegenteil, sollen beispielhafte Ausführungsformen der erfinderischen Konzepte alle Abwandlungen, Äquivalente und Alternativen abdecken, die innerhalb des Umfangs der beispielhaften Ausführungsformen der erfinderischen Konzepte fallen. Gleiche Zahlen beziehen sich in der Beschreibung der Figuren durchgehend auf gleiche Elemente.
  • Es wird verstanden werden, dass obwohl die Begriffe erster/erste/erstes, zweiter/zweite/zweites usw. hier verwendet werden können zum Beschreiben verschiedener Elemente, diese Elemente nicht durch diese Begriffe beschränkt sein sollen. Diese Begriffe werden nur verwendet zum Unterscheiden eines Elementes von einem anderen. Zum Beispiel könnte ein erstes Element ein zweites Element genannt werden und genauso könnte ein zweites Element ein erstes Element genannt werden, ohne von dem Umfang der beispielhaften Ausführungsformen der erfinderischen Konzepte abzuweichen. Wie hier verwendet, enthält der Begriff „und/oder” irgendeinen und alle Kombinationen von einem oder mehreren der zusammen aufgelisteten Gegenstände.
  • Es wird verstanden werden, dass, wenn ein Element als „verbunden mit” oder „gekoppelt mit” einem anderen Element bezeichnet wird, es direkt verbunden mit oder gekoppelt mit dem anderen Element sein kann oder dazwischenliegende Elemente vorhanden sein können. Wenn dagegen ein Element als „direkt verbunden mit” oder „direkt gekoppelt mit” einem anderen Element bezeichnet wird, sind keine dazwischenliegenden Elemente vorhanden. Andere zum Beschreiben des Verhältnisses zwischen Elementen verwendete Worte sollten in gleicher Art und Weise verwendet werden (z. B. „zwischen”, „gegenüber”, „unmittelbar dazwischen”, „benachbart”, „gegenüber”, „direkt benachbart” usw.).
  • Die hier verwendete Terminologie ist nur zum Zwecke des Beschreibens bestimmter Ausführungsformen und nicht dafür gedacht, beispielhafte Ausführungsformen der erfinderischen Konzepte zu beschränken. Wie sie hier verwendet werden, sind die Singularformen „einer/eine/eines” und „der/die/das” dazu gedacht, auch die Pluralformen zu umfassen, außer der Kontext zeigt eindeutig anderes an. Es wird weiter verstanden werden, dass die Begriffe „umfasst”, „umfassend”, „enthält” und/oder „enthaltend”, wenn sie hier verwendet werden, das Vorhandensein von angegebenen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten spezifizieren, aber nicht das Vorhandensein oder Hinzufügen von einem oder mehreren Merkmalen, einer oder mehreren anderen Ganzzahlen, einem oder mehreren Schritten, einer oder mehreren Operationen, einem oder mehreren Elementen, einer oder mehreren Komponenten und/oder Gruppen davon ausschließen.
  • Es sollte auch bemerkt werden, dass bei einigen alternativen Implementierungen die angegebenen Funktionen/Handlungen in einer anderen als in der in den Figuren angegebenen Reihenfolge vorgesehenen sein können. Zum Beispiel können zwei aufeinanderfolgende Figuren im Wesentlichen gleichzeitig ausgeführt werden oder können manchmal in umgekehrter Reihenfolge ausgeführt werden, in Abhängigkeit von den beteiligten Funktionalitäten/Handlungen.
  • Beispielhafte Ausführungsformen der erfinderischen Konzepte werden hier beschrieben mit Bezug auf schematische Darstellungen von idealisierten Ausführungsformen (und Zwischenstrukturen) der erfinderischen Konzepte. Als solches sind Abweichungen von den Formen der Darstellungen als ein Ergebnis von z. B. Herstellungstechniken und/oder Toleranzen zu erwarten. Somit sollten beispielhafte Ausführungsformen der erfinderischen Konzepte nicht ausgelegt werden als die besonderen Formen der hier dargestellten Bereiche beschränkend, sondern sollen Abweichungen in Formen als Ergebnis z. B. der Herstellung mit enthalten.
  • Obwohl entsprechende Draufsichten und/oder perspektivische Ansichten von einigen Querschnittsansichten möglicherweise nicht gezeigt sind, stellen die Querschnittsansichten von Vorrichtungsstrukturen, die hier dargestellt sind, eine Unterstützung für eine Mehrzahl von Vorrichtungsstrukturen dar, die sich entlang von zwei verschiedenen Richtungen erstrecken, wenn sie in Draufsicht dargestellt würden, und/oder sich in drei verschiedenen Richtungen erstrecken, wenn sie in einer perspektivischen Ansicht dargestellt würden. Die zwei verschiedenen Richtungen können orthogonal zueinander sein oder nicht. Die drei verschiedenen Richtungen können eine dritte Richtung enthalten, die orthogonal zu den zwei verschiedenen Richtungen sein kann. Die Mehrzahl von Vorrichtungsstrukturen kann in derselben elektronischen Vorrichtung integriert sein. Zum Beispiel, wenn eine Vorrichtungsstruktur (z. B. eine Speicherzellenstruktur oder eine Transistorstruktur) in einer Querschnittsansicht dargestellt ist, kann eine elektronische Vorrichtung eine Mehrzahl der Vorrichtungsstrukturen (z. B. Speicherzellstrukturen oder Transistorstrukturen) enthalten, wie es durch eine Draufsicht der elektronischen Vorrichtung dargestellt würde. Die Mehrzahl von Vorrichtungsstrukturen kann in einem Array und/oder in einem zweidimensionalen Muster angeordnet sein.
  • Wie oben diskutiert, führt ein Flash-Speicher eine Operation des Kopierens von in einem entsprechenden Block gespeicherten gültigen Seiten in einen anderen Speicherbereich durch, bevor eine Löschoperation an dem entsprechenden Block durchgeführt wird. Dies wird als eine Speicherbereinigung bezeichnet. Bei dem Flash-Speicher wird eine Antwortzeit für den Schreibbefehl verlängert, wenn die Speicherbereinigung durchgeführt wird, während eine Schreiboperation gemäß einem Schreibbefehl durchgeführt wird. Das bedeutet, dass der Flash-Speicher einem Schreibbefehl entsprechende Schreibdaten nach einem Abschluss der Speicherbereinigung in einen Speicherbereich schreibt und eine Schreibabschlussantwort nach einem Abschluss einer Schreiboperation an einen Host überträgt. Selbst wenn der Host beabsichtigt, eine Leseoperation an einem Flash-Speicher durchzuführen, kann der Host die Leseoperation an dem Flash-Speicher nicht durchführen bis der Host eine Schreibabschlussantwort empfängt. Dementsprechend ist die Lese-Latenzzeit für eine Leseoperation erhöht.
  • 1 ist ein schematisches Blockdiagramm eines Datenverarbeitungssystems gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte. Bezugnehmend auf 1 enthält ein Datenverarbeitungssystem 100 einen Host 200 und eine Datenspeichervorrichtung 300, die miteinander durch eine Schnittstelle 110 verbunden sind. Das Datenverarbeitungssystem 100 kann als ein Personalcomputer (PC), ein Desktoprechner, ein Laptopcomputer, ein Arbeitsplatzcomputer oder eine mobile Rechenvorrichtung ausgebildet sein.
  • Die mobile Rechenvorrichtung kann ausgebildet sein als ein Mobiltelefon, ein Smartphone, ein Tablet-PC, ein persönlicher digitaler Assistent (PDA), ein Enterprise Digital Assistant (EDA), eine digitale Fotokamera, eine digitale Videokamera, ein tragbarer Multimediaplayer (PMP), eine Multimediavorrichtung, eine persönliche Navigationsvorrichtung oder eine tragbare Navigationsvorrichtung (PND), eine Handspielkonsole, eine mobile Internetvorrichtung (MID), eine tragbare Vorrichtung (oder tragbarer Computer), ein Internet-of-Things(IoT)-Vorrichtung, eine Internet-of-Everything(IoE)-Vorrichtung oder ein E-Book.
  • Der Host 200 kann eine Verarbeitungsschaltung 201 und einen ersten Speicher 203 enthalten. Die Verarbeitungsschaltung kann ein Prozessor sein oder einen Prozessor enthalten. Der Begriff „Prozessor”, wie er hier verwendet wird, kann sich z. B. auf eine Hardware-implementierte Datenverarbeitungsvorrichtung mit einer Schaltung beziehen, die physikalisch aufgebaut ist zum Ausführen gewünschter Operationen einschließlich z. B. von Operationen, die als Code und/oder in einem Programm enthaltenen Anweisungen wiedergegeben werden. Beispiele der oben erwähnten Hardware-implementierten Datenverarbeitungsvorrichtung enthalten, aber sind nicht beschränkt auf einen Mikroprozessor, eine Zentralverarbeitungseinheit, eine zentrale Verarbeitungseinheit (CPU), einen Prozessorkern, einen Multiprozessor, eine anwendungsspezifische integrierte Schaltung (ASIC) und ein feldprogrammierbares Gatearray (FPGA).
  • Der Host 200 kann ausgebildet sein als eine integrierte Schaltung (IC), ein Anwendungsprozessor (AP), ein mobiler AP oder ein Ein-Chip-System (SoC), jedoch ist der Host nicht darauf beschränkt. Gemäß zumindest einigen beispielhaften Ausführungsformen der erfinderischen Konzepte kann der Host 200 ausgebildet sein als ein Package-on-Package (PoP), ein System-on-Package (SoP) oder ein System-in-Package (SiP), jedoch ist der Host nicht darauf beschränkt.
  • Wenn ein erstes Gehäuse die Verarbeitungsschaltung 201, die als ein IC, ein AP, ein mobiler AP oder ein SoC ausgebildet ist, und ein zweites Gehäuse den Speicher (oder Speicherchip) 203 enthält, kann die Verarbeitungsschaltung 201 an eine Platine (PCB) mit Flip-Chip-Montage angebracht sein oder kann mit der PCB durch Bonding-Drähte verbunden sein. Das zweite Gehäuse kann über das erste Gehäuse gestapelt sein durch an dem PCB angebrachte Stack-Balls.
  • Die Verarbeitungsschaltung 201 kann eine erste CPU 210, eine Vorrichtungsschnittstelle 220 und einen Speichercontroller 230 enthalten. Gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte kann die Verarbeitungsschaltung 201 ein Chip oder ein Die sein.
  • Die erste CPU 210, die Vorrichtungsschnittstelle 220 und der Speichercontroller 230 können Daten durch eine Busarchitektur 205 übertragen oder empfangen. Die Busarchitektur 205 kann ein Advanced-Microcontroller-Bus-Architecture(AMBA)-Busprotokoll, ein Advanced-High-Performance-Bus(AHB)-Protokoll, ein Advanced-Peripheral-Bus(APB)-Protokoll oder ein Advanced-Extensible-Interface(AXI)-Busprotokoll unterstützen, jedoch ist die Busarchitektur nicht darauf beschränkt.
  • Die erste CPU 210 kann ein Betriebssystem (OS) 212 und eine Firmware (z. B. mit einem oder mehreren Programmen) implementieren, welche in den vorliegenden Unterlagen beschriebene Aktionen durchführen. Zum Beispiel können das OS 212 und die von der ersten CPU 210 implementierte Firmware definiert sein durch Anweisungen, welche z. B. in dem ersten Speicher 203 gespeichert sein können und von der CPU 210 ausgeführt werden. Gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte können in den vorliegenden Unterlagen beschriebene Operationen, wie sie von dem OS 212 oder der Firmware durchgeführt werden, durch die erste CPU 210 durchgeführt werden, welche die durch das OS 212 und/oder die Firmware definierten Anweisungen ausführt. Das von der ersten CPU 210 ausgeführte OS 212 kann einen Eingabe/Ausgabe-Scheduler 214 und einen Vorrichtungstreiber 216 enthalten. Während 1 ein Beispiel darstellt, bei dem das OS 212 den Eingabe/Ausgabe-Scheduler 214 und den Vorrichtungstreiber 216 gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte enthält, könnte das OS 212 eines oder beide von dem Eingabe/Ausgabe-Scheduler 214 und dem Vorrichtungstreiber 216 nicht enthalten, und kann das OS 212 den Eingabe/Ausgabe-Scheduler 214 und den Vorrichtungstreiber 216 steuern, selbst wenn es nicht den Eingabe/Ausgabe-Scheduler 214 und den Vorrichtungstreiber 216 enthält. Anweisungen (z. B. ein Code), welche das OS 212 oder die Firmware definieren, können von dem ersten Speicher 203 in die erste CPU 210 geladen werden, um ausgeführt zu werden. Die erste CPU 210 kann einen oder mehrere Kerne enthalten.
  • Die Vorrichtungsschnittstelle 220 kann Daten oder Signale an eine Datenspeichervorrichtung 300 senden oder von dieser empfangen gemäß einer Steuerung der ersten CPU 210.
  • Der Speichercontroller 230 kann gemäß einer Steuerung der ersten CPU 210 Daten in den ersten Speicher 203 schreiben oder Daten von dem ersten Speicher 203 lesen. Gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte kann der Speichercontroller 230 eine Funktion eines Direktspeicherzugriffs(DMA)-Controllers durchführen.
  • Der erste Speicher 203 kann ausgebildet sein als ein flüchtiger Speicher und/oder als ein nichtflüchtiger Speicher. Der flüchtige Speicher kann ausgebildet sein als ein Direktzugriffsspeicher (RAM), ein dynamischer RAM (DRAM) oder ein statischer RAM (SRAM). Der nichtflüchtige Speicher kann ausgebildet sein als ein elektrisch löschbarer programmierbarer Nur-Lese-Speicher (EEPROM), ein Flash-Speicher, ein magnetischer RAM (MRAM), ein Spin-Transfer-Torque-MRAM, ein ferroelektrischer RAM (FeRAM), ein Phasenänderungs-RAM (PRAM) oder ein resistiver RAM.
  • Zum Beispiel kann der erste Speicher 203 ausgebildet sein als ein Festplattenlaufwerk (HDD), eine Smartcard, eine Secure Digital (SD) Card, eine Multimedia Card (MMC), eine embedded MMC (eMMC), ein embedded Multi-Chip-Package (eMCP), ein Perfect-Page-NAND (PPN), ein Universal-Flash-Speicher (UFS), ein Festkörperlaufwerk (SSD) oder ein embedded SSD (eSSD). Darüber hinaus kann der erste Speicher 203 als ein fester Speicher oder als ein Wechselspeicher ausgebildet sein.
  • Zur Vereinfachung der Beschreibung in 1 sind ein erster Speicher 203 und ein Speichercontroller 230 gezeigt, jedoch kann der erste Speicher 203 aus einer Mehrzahl von Speichern bestehen und kann der erste Controller 230 aus einer Mehrzahl von Speichercontrollern bestehen, welche der Mehrzahl von Speichern entspricht. Die Mehrzahl von Speichern kann verschiedene Arten von Speichern enthalten.
  • Die Datenspeichervorrichtung 300 kann einen Controller 310 und zumindest einen zweiten Speicher 330 enthalten. Zum Beispiel ist die Datenspeichervorrichtung 300 eine dreidimensionale nichtflüchtige Speichervorrichtung. Die Datenspeichervorrichtung 300 kann von dem Host 200 ausgegebene Daten speichern. Die Datenspeichervorrichtung 300 kann als eine Smartcard, eine Secure Digital (SD) Card, eine Multimedia Card (MMC), eine embedded MMC (eMMC), ein embedded Multi-Chip-Package (eMCP), ein Perfect-Page-NAND (PPN), ein Universal-Flash-Speicher (UFS), ein USB-Flash-Laufwerk, ein Festkörperlaufwerk (SSD) oder ein embedded SSD (eSSD) ausgebildet sein.
  • Der Controller 310 kann ein Datenübertragen oder -empfangen zwischen dem Host 200 und dem zumindest einen zweiten Speicher 330 steuern. Der Controller 310 kann eine Host-Schnittstelle 312, eine zweite CPU 314, einen Puffer 316 und eine Speicherschnittstelle 318 enthalten.
  • Die Host-Schnittstelle 312, die zweite CPU 314, der Puffer 316 und die Speicher-Schnittstelle 318 können Daten oder Signale aneinander übertragen oder voneinander empfangen durch eine Busarchitektur 311. Gemäß zumindest einigen beispielhaften Ausführungsformen der erfinderischen Konzepte kann jede von den Schnittstellen 110, 220 und 312 ausgebildet sein als eine Schnittstelle, die ein Peripheral-Component-Interconnect-Express(PCIe)-Protokoll unterstützt, eine Schnittstelle, die ein Serial-Advanced-Technology-Attachment(SATA)-Protokoll unterstützt oder eine Schnittstelle, die ein Serial-Attached-Small-Computer-System-Interface(SCSI)-Protokoll unterstützt; jedoch sind die Schnittstellen 110, 220 und 312 nicht auf die oben beschriebenen beispielhaften Protokolle beschränkt.
  • Die zweite CPU 314 kann Firmware oder ein Computerprogramm ausführen, die/das einen Betrieb der Datenspeichervorrichtung 300 steuern kann. Obwohl eine zweite CPU 314 in 1 gezeigt ist, kann der Controller 310 jedoch eine CPU enthalten, welche einen Befehl und/oder eine Datenausgabe von dem Host 200 verarbeitet und eine weitere CPU enthalten, die eine Zugriffsoperation, z. B. eine Schreiboperation, eine Leseoperation und/oder eine Löschoperation in dem zweiten Speicher 330 gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte steuert.
  • Der Puffer 316 kann zwischen dem Host 200 und dem zweiten Speicher 330 übertragene oder empfangene Daten puffern. Zum Beispiel kann der Puffer 316 als ein SRAM ausgebildet sein.
  • Die Speicher-Schnittstelle 318 kann eine Funktion eines Speichercontrollers durchführen. Dementsprechend kann die Speicher-Schnittstelle 318 die Zugriffsoperation, z. B. eine Schreiboperation, eine Leseoperation und/oder eine Löschoperation in dem zweiten Speicher 330 gemäß einer Steuerung der zweiten CPU 314 oder einer Steuerung der Firmware FB steuern, die von der zweiten CPU 314 implementiert sein kann. Zum Beispiel können die Firmware FW definierende Anweisungen in dem zweiten Speicher 330 gespeichert werden und von der zweiten CPU 314 ausgeführt werden und alle als durch die Firmware FW der Datenspeichervorrichtung 300 ausgeführt beschriebenen Operationen können durch die zweite CPU 314 durchgeführt werden, welche die Anweisungen ausführt, die die Firmware FW definieren. Der zweite Speicher 330 enthält ein zweidimensionales (2D) Speicherarray oder ein dreidimensionales (3D) Speicherarray. Das 2D- oder 3D-Speicherarray enthält eine Mehrzahl von Blöcken. Jeder der Mehrzahl von Blöcken enthält eine Mehrzahl von Seiten. Jede der Mehrzahl von Seiten enthält eine Mehrzahl von Speicherzellen. Jede der Speicherzellen kann eine Single-Level-Zelle (SLC), welche Information eines Bit speichert, oder eine Multi-Level-Zelle (MLC) sein, welche Information von zumindest zwei Bit speichert. Das 3D-Speicherarray ist monolithisch in einer oder zwei physikalischen Ebenen eines Arrays von Speicherzellen mit einem über einem Siliziumsubstrat angeordneten aktiven Bereich und einer mit dem Betrieb dieser Speicherzellen verknüpften Schaltung ausgebildet, unabhängig davon, ob die verknüpfte Schaltung über oder innerhalb eines solchen Substrates ist. Der Term „monolithisch” bedeutet, dass Schichten jeder Ebene des Arrays direkt auf den Schichten jeder darunterliegenden Ebene des Arrays angeordnet sind. Bei einer Ausführungsform des vorliegenden erfinderischen Konzepts enthält das 3D-Speicherarray vertikale große NAND-Ketten, die vertikal ausgerichtet sind, so dass zumindest eine Speicherzelle über einer anderen Speicherzelle angeordnet ist. Die zumindest eine Speicherzelle kann eine Ladungsspeicherschicht aufweisen. Die folgenden Patentschriften, die durch Verweis hier mit aufgenommen sind, beschreiben geeignete Konfigurationen für dreidimensionale Speicherarrays, bei denen die dreidimensionalen Speicherarrays in einer Mehrzahl von Ebenen konfiguriert sind, mit Wortleitungen und/oder Bitleitungen, die von den Ebenen geteilt werden: US 7,679,133 ; US 8,535,466 ; US 8,654,587 ; US 8,559,235 ; und US 2011/0233648 .
  • Ein Betrieb des Ein-/Ausgabe-Scheduler 214, der durch die erste CPU 210 des Host 200 implementiert ist, und ein Betrieb der Firmware FW, die durch die zweite CPU 314 der Datenspeichervorrichtung 300 implementiert ist, wird im Detail mit Bezug auf die 2 bis 6 beschrieben werden.
  • Der Eingangs/Ausgangs-Scheduler 214, der von der ersten CPU 210 implementiert ist, kann bestimmen, wann ein Ein-/Ausgangs-Befehl, z. B. ein Lesebefehl und ein Schreibbefehl, an die Datenspeichervorrichtung 300 auszugeben ist, basierend auf einer von der Datenspeichervorrichtung 300 übertragenen zweiten Antwort.
  • Darüber hinaus kann der Ein-/Ausgabe-Scheduler 214 eine Ausgabesequenz von ursprünglich geplanten Befehlen, basierend auf einer von der Datenspeichervorrichtung 300 gesendeten zweiten Antwort ändern. Zusätzlich kann der Ein-/Ausgabe-Scheduler 214 ein Sendeintervall oder ein Polling-Intervall eines ursprünglich geplanten Warteschlangenbereitschafts-Prüfbefehls, basierend auf der von der Datenspeichervorrichtung 300 gesendeten zweiten Antwort anpassen.
  • 2 ist ein Datenflussdiagramm, das einen Scheduling-Betrieb eines Ein-/Ausgabe-Schedulers beschreibt, welcher in dem in 1 gezeigten Datenverarbeitungssystem gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte ausgeführt wird. Wenn die Datenspeichervorrichtung eine Antwort mit einer Information, die eine Zeit zum Verarbeiten eines Schreibbefehls identifiziert, an den Host 200 sendet, kann der Host 200 einen Schedule für einen Lesebefehl, basierend auf der Antwort, ändern. Entsprechend kann der Host 200 die Antwort verwenden zum Verringern der Lese-Latenzzeit.
  • Bezugnehmend auf die 1 und 2 kann die erste CPU 210 des Host 200 in Schritt S110 eine Lese-Latenzzeit bestimmen. Darüber hinaus kann die erste CPU 210 in Schritt S110 bestimmen, ob die Lese-/Latenzzeit wichtig ist oder nicht oder verbessert werden muss. Zum Beispiel kann die erste CPU 210 in Schritt S110 bestimmen, ob ein Zeitpunkt, zu dem die Lese-Latenzzeit als wichtig bestimmt wird, oder kann einen Zeitpunkt bestimmen, zu dem die Leseleistungsfähigkeit als zu verbessern bestimmt wird. Die Bestimmung kann durchgeführt werden durch die Firmware oder den Ein-/Ausgabe-Scheduler 214, der durch die erste CPU 210 implementiert ist.
  • In Schritt S112 sendet die erste CPU 210 einen Befehl mit einem gesetzten Bit SB auf der Grundlage der Bestimmung in Schritt S110. Wenn die erste CPU 210 in Schritt S110 stimmt, dass die Lese-Latenzzeit wichtig ist oder verbessert werden muss, kann die erste CPU 210 des Host 200 in Schritt S112 einen Befehl mit einem gesetzten Bit SB mit einem ersten Wert, z. B. einem High-Pegel oder einer logischen 1, an die zweite CPU 314 der Datenspeichervorrichtung 300 durch die Komponenten 205, 220, 110, 312 und 311 senden. Wenn jedoch die erste CPU 210 in Schritt S110 bestimmt, dass die Lese-Latenzzeit nicht wichtig ist oder verbessert werden muss, kann die erste CPU 210 des Host 200 in Schritt 112 einen Befehl mit einem gesetzten Bit SB mit einem zweiten Wert z. B. einem Low-Pegel oder einer logischen 0, an die zweite CPU 314 der Datenspeichervorrichtung 300 senden durch die Komponenten 205, 220, 110, 312 und 311. Gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte, kann der Befehl ein SWITCH-Befehl CMD6 sein und kann das gesetzte Bit SB in dem SWITCH-Befehl CMD6 enthalten sein, wenn die Datenspeichervorrichtung 300 ein eMMC ist.
  • Die Speicher-Schnittstelle 318 kann das von dem Host 200 gesendete gesetzte Bit SB in einem Register (nicht dargestellt) speichern gemäß einer Steuerung der zweiten CPU 314 oder der durch die zweite CPU 314 implementierten Firmware FW (S114). Wenn der Datenspeicher 300 ein eMMC ist, kann das Register ein EXT_CSD-Register sein. Zum Beispiel kann das EXT_CSD-Register ein Speicherbereich des zweiten Speichers 330 sein, jedoch ist das EXT_CSD nicht darauf beschränkt.
  • Die erste CPU 210 des Host 200 kann einen Zustandsprüfbefehl SCC erzeugen und kann den Zustandsprüfbefehl SCC an die zweite CPU 314 der Datenspeichervorrichtung 300 durch die Komponenten 205, 220, 110, 312 und 311 übertragen (S116). Wenn die Datenspeichervorrichtung 300 ein eMMC ist, kann der Zustandsprüfbefehl SCC ein CMD13 sein.
  • Beispielhafte Beschreibungen der eMMCs, auf die in den vorliegenden Unterlagen Bezug genommen wird, sowie Definitionen der mit dem eMMC verknüpften Begriffe, welche in den vorliegenden Unterlagen verwendet werden, können in dem Dokument JESD84-B50 (überarbeitete Fassung JESD84-B451, Juni 2012) gefunden werden, d. h. in dem embedded-Multi-Media-Card(eMMC)-Electrical-Standard (5.0).
  • Die zweite CPU 314 oder die durch die zweite CPU 314 implementierte Firmware FW kann einen Wert des in einem Register gespeicherten gesetzten Bit SB prüfen oder Bezug darauf nehmen und kann einen Betriebszustand der Datenspeichervorrichtung 300 gemäß einem Ergebnis des Prüfens des Werts des gesetzten Bit prüfen oder bestimmen (S118).
  • Der in Schritt S118 bestimmte Betriebszustand kann ein Zustand sein, der anzeigt, ob ein Hintergrundbetrieb von der Datenspeichervorrichtung 300 durchgeführt wird (oder in Kürze durchgeführt werden wird) und der Hintergrundbetrieb kann eine Speicherbereinigung, Wear-Leveling und/oder eine Leserückholoperation enthalten, jedoch ist der Hintergrundbetrieb nicht auf die oben diskutierten Beispiele beschränkt. Die Leserückholoperation kann ein Kopieren oder Übertragen von gültigen Daten in einem Speicherblock eines zweiten Speicherbereichs des zweiten Speichers 330 zu einem oder mehreren Speicherblöcken eines ersten Speicherbereichs des zweiten Speichers 330 aufweisen.
  • Wenn ein Wert des in einem Register gespeicherten gesetzten Bit SB ein erster Wert, z. B. eine logische 1 ist (JA in S120), kann die zweite CPU 314 oder die von der zweiten CPU 314 implementierte Firmware FW eine zweite Antwort RES2 an die erste CPU 210 durch die Komponenten 311, 312, 110, 220 und 205 übertragen, basierend auf dem Betriebszustand (z. B. dem in Schritt S118 bestimmten Betriebszustand) (S122). Hierbei kann die zweite Antwort RES2 Zustandsinformation der Datenspeichervorrichtung 300 und Verarbeitungsinformation über einen Schreibbefehl für die Datenspeichervorrichtung 300 enthalten. Die Verarbeitungsinformation kann Information enthalten, welche den Betriebszustand anzeigt.
  • Zum Beispiel, wenn die Datenspeichervorrichtung 300 ein eMMC ist, können die Zustandsinformationen in einem EXT_CSD-Register gespeicherte Zustandswerte sein oder enthalten. Die Verarbeitungsinformation kann Information über eine Latenzzeit eines Schreibbefehls, der in der Datenspeichervorrichtung 300 verarbeitet werden soll, oder Information über einen Hintergrundbetrieb (z. B. Speicherbereinigung, Wear-Leveling und/oder eine Leserückholoperation) sein, die in der Datenspeichervorrichtung 300 durchgeführt wird oder durchgeführt werden wird.
  • Das bedeutet, dass die Verarbeitungsinformation Information enthalten kann, die eine Schreiboperation (oder eine Zeit zum Durchführen einer Schreiboperation) anzeigt, welche einem nächsten Schreibbefehl entspricht, länger sein wird (z. B. länger als ein Referenzwert, welcher gemäß Präferenzen eines Bedieners oder Herstellers der Datenspeichervorrichtung 300 festgelegt ist), Information enthalten kann, die anzeigt, dass ein Hintergrundbetrieb derzeit in der Datenspeichervorrichtung 300 durchgeführt wird oder Information enthalten kann, die anzeigt, dass der Hintergrundbetrieb in der Datenspeichervorrichtung 300 durchgeführt werden wird.
  • Der Ein-/Ausgabe-Scheduler 214, der in der ersten CPU 210 läuft, kann zumindest einen von einem Lesebefehl oder einem Schreibbefehl, die an die Datenspeichervorrichtung 300 übertragen werden sollen, neu planen, basierend auf der zweiten Antwort RES2 oder auf einem Analysieren eines Ergebnisses der zweiten Antwort RES2 (S124). Zum Beispiel kann der Ein-/Ausgabe-Scheduler 214 eine Ausgabesequenz (oder Ausgabereihenfolge) von ursprünglichen Befehlen (z. B. einem Lesebefehl und einem Schreibbefehl), die an die Datenspeichervorrichtung 300 übertragen werden sollen, auf der Grundlage der zweiten Antwort RES2 ändern (S124). Zum Beispiel kann die zweite Antwort RES2 ein oder mehrere Bit enthalten, die einer Verarbeitungsinformation entsprechen. Zum Beispiel können ein oder mehrere Bit in einem herstellerspezifischen Feld des EXT_CSD enthalten sein.
  • Wenn der Hintergrundbetrieb, z. B. eine Speicherbereinigung, in einer Mehrzahl von Schritten durchgeführt wird und die Mehrzahl von Schritten verschiedene Ausführungszeiten besitzen, kann die Verarbeitungsinformation ein oder mehrere Bit enthalten, welche für jeden der Mehrzahl von Schritten stehen. Das bedeutet, dass der Ein-/Ausgabe-Scheduler 214, der in der ersten CPU 210 läuft, zumindest einen von einem Lesebefehl und einem Schreibbefehl, welche an die Datenspeichervorrichtung 300 übertragen werden sollen, neu plant oder ändert, basierend auf der zweiten Antwort RES2 mit der Verarbeitungsinformation (S124).
  • Wenn der Ein-/Ausgabe-Scheduler 214 den Lesebefehl oder den Schreibbefehl, der neu geplant oder geändert ist, auf der Grundlage der zweiten Antwort RES2 mit der Verarbeitungsinformation an den Vorrichtungstreiber 216 überträgt, kann der Vorrichtungstreiber 216 den von den Ein-/Ausgabe-Scheduler 214 übertragenen Lesebefehl oder Schreibbefehl durch die Komponenten 205, 220, 210, 312 und 311 an die zweite CPU 314 übertragen (S126).
  • In Schritt S128 kann die zweite CPU 314 oder die von der zweiten CPU 314 ausgeführte Firmware die Speicherschnittstelle 318 steuern, um den durch die Komponenten 205, 220, 110, 312 und 311 empfangenen Lesebefehl oder Schreibbefehl durchzuführen.
  • Wenn der Vorrichtungstreiber 216 in Schritt S126 einen Lesebefehl überträgt, kann die Speicherschnittstelle 318 in Schritt S128 Daten, die dem Lesebefehl entsprechen, von dem zweiten Speicher 330 lesen, und die gelesenen Daten können durch Komponenten 311, 312 und 110 an den Host übertragen werden, während eine dem Lesebefehl entsprechende Leseoperation durchgeführt wird.
  • Darüber hinaus, wenn der Vorrichtungstreiber 216 in Schritt S126 einen Schreibbefehl überträgt, kann die Speicherschnittstelle 318 in Schritt S126 durch Komponenten 110, 312 und 311 empfangene Schreibdaten in einen Speicherbereich des zweiten Speichers 330, der einer in dem Schreibbefehl enthaltenen Adresse entspricht, während einer dem Schreibbefehl entsprechenden Schreiboperation schreiben oder programmieren.
  • Wenn ein Wert des in einem Register gespeicherten gesetzten Bit SB ein zweiter Wert (z. B. logisch 0) ist (NEIN in S120), kann die zweite CPU 314 oder die von der zweiten CPU 314 ausgeführte Firmware FW eine erste Antwort RES1 durch die Komponenten 311, 312, 110, 220 und 205 an die erste CPU 210 übertragen (S130). Anders als die zweite Antwort RES2 kann die erste Antwort RES1 nur Zustandsinformation der Datenspeichervorrichtung 300 enthalten (z. B. kann die erste Antwort RES1 die oben bezüglich der zweiten Antwort RES2 diskutierte Verarbeitungsinformation ausschließen). Zum Beispiel, wenn die Datenspeichervorrichtung 300 die eMMC ist, können die Zustandsinformationen in dem EXT_CSD-Register gespeicherte Zustandswerte sein.
  • Der Ein-/Ausgabe-Scheduler 214 kann einen ursprünglichen Schedule für den an die Datenspeichervorrichtung 300 zu übertragenden Lesebefehl und Schreibbefehl auf der Grundlage der ersten Antwort RES1 aufrechterhalten (S132). Das bedeutet, dass der Ein-/Ausgabe-Scheduler 214 die Ausgabesequenz (oder die Ausgabereihenfolge) der Befehle (z. B. ein Lesebefehl und ein Schreibbefehl), die an die Datenspeichervorrichtung 300 basierend auf der ersten Antwort RES1 übertragen werden sollen, nicht ändert (S132).
  • Wenn der Ein-/Ausgabe-Scheduler 214 einen ursprünglichen Lesebefehl oder Schreibbefehl an den Vorrichtungstreiber 216 basierend auf der ersten Antwort RES1 überträgt, kann der Vorrichtungstreiber 216 den von dem Ein-/Ausgabe-Scheduler 214 übertragenen Lesebefehl oder Schreibbefehl durch die Komponenten 205, 220, 110, 312 und 311 an die zweite CPU 314 übertragen (S134).
  • Die zweite CPU 314 oder die von der zweiten CPU 314 ausgeführte Firmware FW kann die Speicherschnittstelle 318 steuern, um den durch die Komponenten 205, 220, 110, 312 und 311 empfangenen Lesebefehl oder Schreibbefehl durchzuführen.
  • Während einer dem Lesebefehl entsprechenden Leseoperation kann die Speicherschnittstelle 318 dem Lesebefehl entsprechende Lesedaten von dem zweiten Speicher 330 lesen, und können die Lesedaten durch die Komponenten 311, 312 und 110 an den Host 200 übertragen werden (S136). Während einer dem Schreibbefehl entsprechenden Schreiboperation kann die Speicherschnittstelle 318 die durch die Komponenten 110, 312 und 311 empfangenen Schreibdaten in einen Speicherbereich des zweiten Speichers 330 schreiben, der einer in dem Schreibbefehl enthaltenen Adresse entspricht (S136).
  • Gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte, wenn das Ergebnis des Schritts S120 JA ist, werden Schritte S122 bis S128 durchgeführt und werden Schritte S130 bis S136 nicht durchgeführt; und wenn das Ergebnis des Schritts S120 NEIN ist, werden Schritte S130 bis S136 durchgeführt und werden Schritte S122 bis S128 nicht durchgeführt.
  • 3 ist eine Zeichnung, welche einen Betrieb des in 1 gezeigten Datenverarbeitungssystems 100 gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte beschreibt. In dem in 3 dargestellten Beispiel wird angenommen, dass der Scheduler 214 zeitlich terminiert, einen Schreibbefehl WC vor einem Lesebefehl RC auszugeben, und ein gesetztes Bit SB mit einem ersten Wert (z. B. einem High-Pegel oder logisch 1) wird in einem bestimmten Feld eines Registers gesetzt. Wie oben beschrieben kann das Register, in dem das gesetzte Bit SB gesetzt wird, ein EXT_CSD-Register der eMMC sein. Bezugnehmend auf die 1 bis 3 kann die erste CPU 210 einen Zustandsprüfbefehl SCC an die Datenspeichervorrichtung 300 übertragen.
  • Die zweite CPU 314 oder die von der zweiten CPU 314 ausgeführte Firmware FW kann den Zustandsprüfbefehl SCC interpretieren oder dekodieren, und einen Wert des in einem Register gespeicherten gesetzten Bit SB gemäß einem Ergebnis der Interpretation oder Dekodierung bestimmen. Da der Wert des gesetzten Bit SB ein erster Wert ist, kann die zweite CPU 314 oder die von der zweiten CPU 314 ausgeführte Firmware FW die zweite Antwort RES2 an den Host 200 ausgeben.
  • Der Ein-/Ausgabe-Scheduler 214 kann eine Bestimmung, wie sie basierend auf der zweiten Antwort RES2 folgt, durchführen. Das bedeutet, dass der Ein-/Ausgabe-Scheduler 214 bestimmen kann, dass eine Antwortzeit für den Schreibbefehl WC verlängert oder länger sein wird, wenn eine dem Schreibbefehl WC entsprechende Schreiboperation in der Datenspeichervorrichtung 300 durchgeführt wird, da ein Hintergrundbetrieb (z. B. eine Speicherbereinigung) in der Datenspeichervorrichtung 300 ausgeführt werden muss.
  • Dementsprechend kann der Ein-/Ausgabe-Scheduler 214 den Lesebefehl RC an den Vorrichtungstreiber 216 vor dem Ausgeben des Schreibbefehls WC an den Vorrichtungstreiber 216 basierend auf der zweiten Antwort RES2 ausgeben. Zum Beispiel kann der Ein-/Ausgabe-Scheduler 214 die Ausgabesequenz des Schreibbefehls WC und des Lesebefehls RC ändern und den Lesebefehl RC an den Vorrichtungstreiber 216 vor dem Ausgeben oder Abgeben des Schreibbefehls WC an den Vorrichtungstreiber 216 ausgeben oder abgeben, um so die Leseleistungsfähigkeit oder Leseantwortzeit zu verbessern.
  • Die zweite CPU 314 kann die Speicherschnittstelle 318 als Antwort auf den von dem Host 200 abgegebenen Lesebefehl RC steuern. Die Speicherschnittstelle 318 kann dem Lesebefehl RC entsprechende Daten RDATA von dem zweiten Speicher lesen. Die Lesedaten RDATA können an den Host 200 übertragen werden. Wenn eine Verarbeitung für den Lesebefehl RC abgeschlossen ist, kann der Ein-/Ausgabe-Scheduler 214 den Schreibbefehl WC an den Vorrichtungstreiber 216 ausgeben oder abgeben. Der Host 200 kann den Schreibbefehl WC und die Schreibdaten WDATA durch die Schnittstelle 110 an die Datenspeichervorrichtung 300 übertragen.
  • Die zweite CPU 314 oder die von der zweiten CPU 314 ausgeführte Firmware FW kann die Speicherschnittstelle 318 basierend auf dem Schreibbefehl WC steuern. Die Speicherschnittstelle 318 kann die Schreibdaten WDATA in den zweiten Speicher 330 schreiben. Die Speicherbereinigung kann durchgeführt werden, während die Schreibdaten WDATA in den zweiten Speicher geschrieben werden. Zum Beispiel, wenn ein freier Block des zweiten Speichers 330 ungenügend ist, während die Schreibdaten WDATA in den zweiten Speicher 330 geschrieben werden, kann die Speicherbereinigung durchgeführt werden.
  • 4 ist eine Zeichnung, welche den Betrieb des in 1 gezeigten Datenverarbeitungssystems gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte beschreibt. Wenn die Speicherbereinigung durchgeführt wird in der Datenspeichervorrichtung 300, während die Speicherbereinigung und eine Schreiboperation getrennt voneinander sind, oder ein Hintergrundbetrieb durchgeführt wird, kann der Ein-/Ausgabe-Scheduler 124 nur einen Lesebefehl ausgeben ohne einen Schreibbefehl auszugeben.
  • Es wird angenommen, dass der Scheduler 214 zeitlich terminiert, den Schreibbefehl WC vor dem Lesebefehl RC auszugeben und das gesetzte Bit SB mit dem ersten Wert in einem Register gesetzt wird.
  • Bezugnehmend auf die 1, 2 und 4 kann die erste CPU 210 des Host 200, während die Speicherbereinigung in der Datenspeichervorrichtung 300 durchgeführt wird, einen ersten Zustandsprüfbefehl SCC1 an die Datenspeichervorrichtung 300 abgeben. Die Datenspeichervorrichtung 300 kann an den Host 200 eine zweite Antwort RES2 mit Verarbeitungsinformation übertragen, welche anzeigt, dass die Speicherbereinigung gegenwärtig in der Datenspeichervorrichtung 300 durchgeführt wird, als Antwort auf den ersten Zustandsprüfbefehl SCC1.
  • Während die Speicherbereinigung kontinuierlich durchgeführt wird in der Datenspeichervorrichtung 300, kann die erste CPU 210 des Host 200 einen zweiten Zustandsprüfbefehl SCC2 an die Datenspeichervorrichtung 300 abgeben. Die Datenspeichervorrichtung 300 kann eine zweite Antwort RES2 mit Verarbeitungsinformation, welche wiedergibt, dass die Speicherbereinigung gegenwärtig in der Speichervorrichtung 300 durchgeführt wird, als Antwort auf den zweiten Zustandsprüfbefehl SCC2 an den Host 200 übertragen.
  • Wenn eine Leseoperation in der Datenspeichervorrichtung 300 benötigt wird, kann die erste CPU 210 oder der Ein-/Ausgabe-Scheduler 214 die Ausgabereihenfolge eines Schreibbefehls WC und eines Lesebefehls RC ändern und den Lesebefehl RC an den Vorrichtungstreiber 216 gemäß einer geänderten Ausgabereihenfolge übertragen.
  • Die zweite CPU 314 oder die von der zweiten CPU 314 ausgeführte Firmware FW kann die Speicherschnittstelle 318 steuern, um die Speicherbereinigung auf der Grundlage des von dem Vorrichtungstreiber 216 übertragenen Lesebefehls RC zu stoppen. Dementsprechend wird die Speicherbereinigung gestoppt (G/C STOP).
  • Die Speicherschnittstelle 318 kann dem Lesebefehl RC entsprechende Daten RDATA von dem zweiten Speicher 330 lesen gemäß einer Steuerung der zweiten CPU 314 oder der durch die zweite CPU 314 ausgeführten Firmware FW. Die Lesedaten RDATA können an den Host 200 übertragen werden. Wenn eine Leseoperation für die Daten RDATA abgeschlossen ist gemäß dem Lesebefehl RC, kann die zweite CPU 314 oder die von der zweiten CPU 314 ausgeführte Firmware die Speicherschnittstelle 318 steuern, um die Speicherbereinigung fortzusetzen. Dementsprechend wird die Speicherbereinigung fortgesetzt.
  • Wenn die Speicherbereinigung durchgeführt wird in der Datenspeichervorrichtung 300, kann die erste CPU 210 des Host einen dritten Zustandsprüfbefehl SCC3 an die Datenspeichervorrichtung 300 ausgeben. Die Datenspeichervorrichtung 300 kann an den Host 200 als Antwort auf den dritten Zustandsprüfbefehl SCC3 die zweite Antwort RES2 mit Verarbeitungsinformation übertragen, welche anzeigt, dass die Speicherbereinigung gegenwärtig in der Datenspeichervorrichtung 300 durchgeführt wird.
  • Wenn die Speicherbereinigung kontinuierlich durchgeführt wird in der Datenspeichervorrichtung 300, kann die erste CPU 210 des Host 200 einen vierten Zustandsprüfbefehl SCC4 an die Datenspeichervorrichtung 300 ausgeben. Die Datenspeichervorrichtung 300 kann an den Host 200 als Antwort auf den vierten Zustandsprüfbefehl SCC4 die zweite Antwort RES2 mit Verarbeitungsinformation übertragen, welche wiedergibt, dass die Speicherbereinigung in der Datenspeichervorrichtung 300 noch durchgeführt wird.
  • Nachdem die Speicherbereinigung in der Datenspeichervorrichtung 300 abgeschlossen ist, kann die erste CPU 210 des Host 200 einen fünften Zustandsprüfbefehl SCC5 an die Datenspeichervorrichtung 300 abgeben. Die Datenspeichervorrichtung 300 kann an den Host 200 als Antwort auf den fünften Zustandsprüfbefehl SCC5 eine zweite Antwort RES2' mit Verarbeitungsinformation übertragen, welche anzeigt, dass die Speicherbereinigung in der Datenspeichervorrichtung 300 gegenwärtig nicht durchgeführt wird.
  • Die erste CPU 210 oder der Ein-/Ausgabe-Scheduler 214 kann einen Schreibbefehl WC gemäß der geänderten Ausgabereihenfolge basierend auf der zweiten Antwort RES2' an den Vorrichtungstreiber 216 ausgeben. Der Host 200 kann Schreibdaten WDATA, welche dem Schreibbefehl WC entsprechen, durch die Schnittstelle 110 an die Datenspeichervorrichtung 300 übertragen.
  • Die zweite CPU 314 oder die Firmware FW kann die Speicherschnittstelle 318 als Antwort auf den Schreibbefehl WC steuern. Die Speicherschnittstelle 318 kann eine Schreiboperation des Schreibens der Schreibdaten WDATA in den zweiten Speicher 330 durchführen. Nachdem die Schreiboperation abgeschlossen ist, kann die erste CPU 210 des Host 200 einen sechsten Zustandsprüfbefehl SCC6 an die Datenspeichervorrichtung 300 abgeben.
  • Die 3 und 4 veranschaulichen Beispiele, bei denen die Datenspeichervorrichtung 300 als eine synchrone Datenspeichervorrichtung verwendet wird. 5 ist ein Datenflussdiagramm, welches den Betrieb des in 1 gezeigten Datenverarbeitungssystems gemäß zumindest einer anderen beispielhaften Ausführungsform der erfinderischen Konzepte darstellt. Zum Beispiel kann die Datenspeichervorrichtung 300 als eine asynchrone Datenspeichervorrichtung verwendet werden.
  • Bezugnehmend auf die 1, 2 und 5 kann die erste CPU 210 in Schritt S110 eine Lese-Latenzzeit bestimmen. Darüber hinaus kann die erste CPU 210 in Schritt S110 bestimmen, ob oder ob nicht die Lese-Latenzzeit wichtig ist oder verbessert werden muss. Zum Beispiel kann die erste CPU 210 in Schritt S110 einen Zeitpunkt bestimmen, zu dem eine Lese-Latenzzeit als wichtig bestimmt wird, oder kann einen Zeitpunkt bestimmen, zu dem bestimmt wird, dass eine Leseleistungsfähigkeit verbessert werden muss. Die Bestimmung kann durchgeführt werden durch Firmware, welche durch die erste CPU 210 implementiert ist, oder durch den Ein-/Ausgabe-Scheduler 214.
  • In Schritt S112 überträgt die erste CPU 210 einen Befehl mit einem gesetzten Bit SB basierend auf der Bestimmung in Schritt S110. Wenn die erste CPU 210 in Schritt S110 bestimmt, dass die Lese-Latenzzeit wichtig ist oder verbessert werden muss, kann die erste CPU 210 in Schritt S112 einen Befehl mit einem gesetzten Bit SB mit einem ersten Wert, z. B. einem High-Pegel oder logisch 1, an die zweite CPU 314 übertragen. Gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte kann die erste CPU 210 in Schritt S112 einen Befehl mit einem gesetzten Bit SB mit einem ersten Wert, z. B. einem High-Pegel oder logisch 1, durch die Komponenten 205, 220, 110, 312 und 311 nur zu dem Zeitpunkt an die zweite CPU 314 übertragen (S112), zu dem bestimmt wird, dass die Leseleistungsfähigkeit verbessert werden muss. Wenn jedoch die erste CPU 210 in Schritt S110 bestimmt, dass die Lese-Latenzzeit nicht wichtig ist oder nicht verbessert werden muss, kann die erste CPU 210 in Schritt S112 einen Befehl mit einem gesetzten Bit SB mit einem zweiten Wert, z. B. einem Low-Pegel oder logisch 0, durch die Komponenten 205, 220, 110, 312 und 311 an die zweite CPU 314 übertragen.
  • Die Speicherschnittstelle 318 kann das gesetzte Bit SB mit einem ersten Wert oder einem zweiten Wert in einem Register speichern gemäß einer Steuerung der zweiten CPU 314 oder der durch die zweite CPU 314 implementierten Firmware (S114). Die erste CPU 210 kann einen Zustandsprüfbefehl an die Datenspeichervorrichtung 300 übertragen, um einen Betriebszustand der Datenspeichervorrichtung 300 zu bestimmen (S116).
  • Die zweite CPU 314 oder die durch die zweite CPU 314 implementierte Firmware FW kann einen Wert des gesetzten Bit SB, das in einem in der Datenspeichervorrichtung 300 ausgebildeten Register gespeichert ist, prüfen oder bestimmen, und kann einen Betriebszustand der Datenspeichervorrichtung 300 als Antwort auf einen Zustandsprüfbefehl SCC prüfen oder bestimmen (S118). Wie oben beschrieben kann der Betriebszustand anzeigen, ob ein Hintergrundbetrieb durchgeführt wird oder nicht, und kann der Hintergrundbetrieb Speicherverarbeitung, Wear-Leveling und/oder eine Leserückholoperation enthalten, jedoch ist der Hintergrundbetrieb nicht darauf beschränkt.
  • Wenn ein Wert des in einem Register gespeicherten gesetzten Bit SB ein erster Wert, z. B. logisch 1, ist (JA in S120), kann die zweite CPU 314 oder die durch die zweite CPU 314 implementierte Firmware FW die zweite Antwort RES2 durch die Komponenten 311, 312, 110, 220 und 205 an die erste CPU 210 basierend auf dem Betriebszustand (z. B. dem in Schritt S118 bestimmten Betriebszustand) übertragen (S122). Die zweite Antwort RES2 kann Zustandsinformation der Datenspeichervorrichtung 300 sowie Verarbeitungsinformation über einen Schreibbefehl für die Datenspeichervorrichtung 300 enthalten.
  • Die erste CPU 210 oder der Ein-/Ausgabe-Scheduler 214 kann ein Übertragungsintervall oder ein Polling-Intervall eines Warteschlangenbereitschafts-Prüfbefehls anpassen zum Prüfen, ob eine Warteschlange bereit ist oder nicht, basierend auf der zweiten Antwort RES2 (S210). Wenn das Übertragungsintervall oder das Polling-Intervall verlängert wird, nimmt der Gebrauch der ersten CPU 210 ab. Die erste CPU 210 oder der Ein-/Ausgabe-Scheduler 214 kann einen Warteschlangenbereitschafts-Prüfbefehl QRCi an die Datenspeichervorrichtung 300 in angepassten Übertragungsintervallen oder angepassten Polling-Intervallen übertragen (S212).
  • Wenn jedoch ein Wert des in einem Register gespeicherten gesetzten Bit SB ein zweiter Wert, z. B. logisch 0, ist (NEIN in S120), kann die zweite CPU 314 oder die Firmware FW die zweite Antwort RES2 an die erste CPU 210 übertragen durch die Komponenten 311, 312, 110, 220 und 205 basierend auf dem Betriebszustand (S130). Zu dieser Zeit kann die zweite Antwort RES2 möglicherweise nur Zustandsinformation der Datenspeichervorrichtung 300 enthalten.
  • Die erste CPU 210 oder der Ein-/Ausgabe-Scheduler 214 halten das Übertragungsintervall oder das Polling-Intervall des Warteschlangenbereitschaftsprüfbefehls aufrecht zum Prüfen, ob eine Warteschlange so wie sie ist bereit ist oder nicht (S220). Die erste CPU 210 oder der Ein-/Ausgabe-Scheduler 214 kann den Warteschlangenbereitschaftsprüfbefehl QRCi an die Datenspeichervorrichtung 300 in ursprünglichen Übertragungsintervallen oder ursprünglichen Polling-Intervallen übertragen (S220).
  • Gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte werden, wenn das Ergebnis des Schritts S120 JA ist, Schritte S122, S210 und S212 durchgeführt und werden Schritte nicht durchgeführt, und wenn das Ergebnis des Schritts S120 NEIN ist, werden Schritte S130, S220 und S222 durchgeführt und werden Schritte S122, S210 und S212 nicht durchgeführt.
  • 6 ist ein konzeptionelles Diagramm, das ein Verfahren des Anpassen eines Übertragungsintervalls oder eines Warteschlangenbereitschafts-Prüfbefehls gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte darstellt. Es wird angenommen, dass der Scheduler 214 anfänglich zeitlich terminiert, einen Warteschlangenbereitschaftsprüfbefehl zu jedem Zeitpunkt T1, T2, T3 und T4 auszugeben, und das gesetzte Bit SB mit einem ersten Wert in einem Register gesetzt wird. Dabei wird angenommen, dass Intervalle zwischen zwei Zeitpunkten T1 und T2, T2 und T3 sowie T3 und T4 jeweils gleich zueinander sind.
  • Bezugnehmend auf die 1, 5 und 6 wird angenommen, dass ein Schreib-Warteschlangen-Befehl SCHREIBE Q erzeugt wird gemäß einer Host-Schreibanforderung HOST-SCHREIB-ANFORDERUNGEN, die in der ersten CPU 210 erzeugt wird, und der Schreib-Warteschlangen-Befehl SCHREIBE Q erzeugt wird gemäß den Befehlen CM1 und CM2 und in einer Warteschlangenposition „0” einer Warteschlange 250 gespeichert wird. Während ein Hintergrundbetrieb, z. B. eine Speicherbereinigung, durchgeführt wird in der Datenspeichervorrichtung 300, kann die erste CPU 210 einen ersten Zustandsprüfbefehl SCC1 an die Datenspeichervorrichtung 300 abgeben.
  • Die zweite CPU 314 oder die Firmware FW kann die zweite Antwort RES2 mit Zustandsinformation der Datenspeichervorrichtung 300 sowie Verarbeitungsinformation, welche anzeigt, dass die Speicherbereinigung gegenwärtig in der Datenspeichervorrichtung 300 durchgeführt wird, an den Host 200 als Antwort auf den ersten Zustandsprüfbefehl SCC1 übertragen. Die erste CPU 210 oder der Ein-/Ausgabe-Scheduler 214 können einen ersten Warteschlangenbereitschafts-Prüfbefehl QRC1 an die Datenspeichervorrichtung 300 zu einem ersten Zeitpunkt T1 übertragen.
  • Dann wird angenommen, dass ein Lese-Warteschlangen-Befehl LESE Q erzeugt wird gemäß einer Host-Leseanforderung HOST-LESE-ANFORDERUNG, die in der ersten CPU 210 erzeugt wurde, und der Lese-Warteschlangen-Befehl LESE Q erzeugt wird gemäß den Befehlen CM3 und CM4 und an einer Warteschlangenposition „1” der Warteschlange 250 gespeichert wird. Es wird genommen, dass „W” in der Warteschlangenposition „0” eine Schreiboperation ist und „R” an der Warteschlangenposition „1” eine Leseoperation ist.
  • Die Datenspeichervorrichtung 300 stoppt die Speicherbereinigung G/C als Antwort auf den Lese-Warteschlangen-Befehl LESE Q (G/C STOP). Die erste CPU 210 oder der Ein-/Ausgabe-Scheduler 214 kann einen zweiten Warteschlangenbereitschafts-Prüfbefehl QRC2 an die Datenspeichervorrichtung 300 zu einem Intervall-angepassten zweiten Zeitpunkt T2' übertragen. Die zweite CPU 314 der Datenspeichervorrichtung 300 oder der Firmware FW kann eine Lesebereitschaftsantwort RR an den Host 200 als Antwort auf einen zweiten Warteschlangenbereitschafts-Prüfbefehl QRC2 senden. Hierbei kann die Lesebereitschaftsantwort RR eine Antwort zum Durchführen einer Leseoperation sein, welche dem Warteschlangenelement R an der Warteschlangenposition „1” entspricht.
  • Die erste CPU 210 oder der Ein-/Ausgabe-Scheduler 214 kann einen Lesebefehl RC an die Datenspeichervorrichtung 300 basierend auf der Lesebereitschaftsantwort RR übertragen. Die Speicherschnittstelle 318 der Datenspeichervorrichtung 300 kann in dem zweiten Speicher 330 gespeicherte Daten RDATA gemäß einer Steuerung der zweiten CPU 314 oder der Firmware, welche gemäß dem Lesebefehl RC arbeiten, lesen. Die Lesedaten RDATA können an den Host 200 übertragen werden.
  • Nachdem die Leseoperation für den Lesebefehl RC abgeschlossen oder beendet ist, kann die Datenspeichervorrichtung 300 die Speicherbereinigung G/C fortsetzen. Während die Speicherbereinigung G/C durchgeführt wird, kann die erste CPU 210 oder der Ein-/Ausgabe-Scheduler 214 einen dritten Warteschlangenbereitschafts-Prüfbefehl QRC3 an die Datenspeichervorrichtung 300 zu einem Intervall-angepassten dritten Zeitpunkt T3' übertragen.
  • Nachdem die Speicherbereinigung G/C abgeschlossen ist, kann die erste CPU 210 oder der Ein-/Ausgabe-Scheduler 214 einen vierten Warteschlangenbereitschafts-Prüfbefehl QRC4 an die Datenspeichervorrichtung 300 zu einem Intervall-angepassten vierten Zeitpunkt T4' übertragen. Die zweite CPU 314 der Datenspeichervorrichtung 300 oder die Firmware FW kann eine Schreibbereitschaftsantwort WR als Antwort auf den vierten Warteschlangenbereitschafts-Prüfbefehl QRC4 an den Host 200 übertragen. Hierbei kann die Schreibbereitschaftsantwort WR eine Antwort zum Durchführen einer Schreiboperation sein, welche dem Warteschlangenelement W an der Warteschlangenposition „0” entspricht.
  • Die erste CPU 210 oder der Ein-/Ausgabe-Scheduler 214 kann einen Schreibbefehl WC und Schreibdaten WDATA basierend auf der Schreibbereitschaftsantwort WR an die Datenspeichervorrichtung 300 übertragen. Die zweite CPU 314 der Datenspeichervorrichtung 300 oder die Firmware FW kann die Speicherschnittstelle 318 gemäß dem Schreibbefehl WC steuern. Die Speicherschnittstelle 318 kann die Schreibdaten WDATA in dem zweiten Speicher 330 speichern.
  • 7 ist ein Blockdiagramm eines Systems, welches das in 1 gezeigte Datenverarbeitungssystem enthält. Bezugnehmend auf die 1 bis 7 kann ein System 400 zumindest einen Client-Computer 410, einen Server oder Web-Server 420, ein Netzwerk 430 und eine Datenverarbeitungsvorrichtung 440 enthalten. Die Datenverarbeitungsvorrichtung 440 kann einen Datenbank-Server 450 und eine Datenbank 460 enthalten. Zum Beispiel kann das System 400 ein Suchportal, ein Datenzentrum oder ein Internetdatenzentrum (IDC) sein.
  • Der Client-Computer 410 kann mit dem Server 420 über ein Netzwerk kommunizieren. Der Client-Computer 410 kann als ein PC, ein Laptop-Computer, ein Smartphone, ein Tablet-PC, ein PDA, ein MID, ein tragbarer Computer, eine IoT-Vorrichtung oder eine IoE-Vorrichtung ausgebildet sein. Der Server 420 kann mit dem Datenbankserver 450 über das Netzwerk 430 kommunizieren. Der Datenbankserver 450 kann eine Funktion des Host 200 aus 1 durchführen.
  • Der Datenbankserver 450 kann einen Betrieb der Datenbank 460 steuern. Der Datenbankserver 450 kann auf zumindest eine Datenbank 460 zugreifen. Die zumindest eine Datenbank 460 kann zumindest eine Datenspeichervorrichtung 300 enthalten. Ein Aufbau und ein Betrieb der zumindest einen Datenspeichervorrichtung 300 kann im Wesentlichen gleich oder ähnlich dem mit Bezug auf die 1 bis 6 beschrieben Aufbau und Betrieb der Datenspeichervorrichtung 300 sein. Der Server 420 und der Datenbankserver 450 können Daten zueinander übertragen oder Daten voneinander empfangen über das Netzwerk 430. Das Netzwerk 430 kann ein drahtgebundenes Netzwerk, ein drahtloses Netzwerk, das Internet, Wi-Fi oder ein Mobiltelefonnetzwerk sein.
  • Ein Host und ein Verfahren zum Betreiben des Host gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte können einen Befehl, welcher Information anfordert, die anzeigt, ob ein Hintergrundbetrieb durchgeführt wird oder nicht, an eine Datenspeichervorrichtung übertragen, um eine Lese-Latenzzeit adaptiv anzupassen. Eine Datenspeichervorrichtung und ein Verfahren zum Betreiben der Datenspeichervorrichtung gemäß beispielhaften Ausführungsformen der erfinderischen Konzepte kann eine Antwort, welche darstellt, ob ein Hintergrundbetrieb durchgeführt wird oder nicht, an den Host übertragen als Antwort auf den von einem Host übertragenen Befehl, welcher anfordert, ob der Hintergrundbetrieb durchgeführt wird oder nicht.
  • Der Host gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte kann eine Ausgabesequenz (oder eine Ausgabereihenfolge) von an die Datenspeichervorrichtung übertragenen Befehlen ändern, um eine Lese-Latenzzeit zu verringern basierend auf einer von einer Datenspeichervorrichtung übertragenen Antwort. Der Host gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte kann ein Übertragungsintervall oder ein Polling-Intervall eines Warteschlangenbereitschafts-Prüfbefehls einstellen basierend auf einer von der Datenspeichervorrichtung übertragenen Antwort.
  • Beispielhafte Ausführungsformen der erfinderischen Konzepte wurden somit beschrieben, es wird offensichtlich sein, dass dieselben auf verschiedene Art und Weise variiert werden können. Solche Variationen sind nicht als Abweichung von dem beabsichtigten Gedanken und Umfang der beispielhaften Ausführungsformen der erfinderischen Konzepte anzusehen, und alle diese Abwandlungen, die für einen Fachmann ersichtlich sein würden, sind beabsichtigt, innerhalb des Umfangs der folgenden Ansprüche enthalten zu sein.
  • 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-2014-0145651 [0001]
    • US 7679133 [0065]
    • US 8535466 [0065]
    • US 8654587 [0065]
    • US 8559235 [0065]
    • US 2011/0233648 [0065]

Claims (22)

  1. Verfahren zum Betreiben einer Datenspeichervorrichtung (300) mit: einem Empfangen eines ersten Befehls mit einem gesetzten Bit (SB), der von einem Host (200) übertragen wurde; ein Speichern des gesetzten Bit (SB) in einem Register als Antwort auf den ersten Befehl; ein Empfangen eines ersten Zustandsprüfbefehls (SCC) von dem Host (200); und ein Übertragen einer Antwort (RES1, RES2), die eine Zustandsinformation der Datenspeichervorrichtung (300) und eine einem Schreibbefehl (WC) für die Datenspeichervorrichtung (300) entsprechende Verarbeitungsinformation enthält, an den Host (200) basierend auf dem ersten Zustandsprüfbefehl (SCC) und dem in dem Register gespeicherten gesetzten Bit (SB).
  2. Verfahren nach Anspruch 1, weiter mit: einem Erzeugen, durch die Datenspeichervorrichtung (300), der Antwort (RES1, RES2), so dass die Verarbeitungsinformation eine Information über eine Latenzzeit eines in der Datenspeichervorrichtung (300) zu verarbeitenden Schreibbefehls (WC) enthält.
  3. Verfahren nach Anspruch 1, weiter mit: einem Erzeugen, durch die Datenspeichervorrichtung (300), der Antwort (RES1, RES2), so dass die Verarbeitungsinformation Information über eine Speicherbereinigung enthält, die in der Datenspeichervorrichtung (300) durchgeführt wird.
  4. Verfahren nach Anspruch 3, weiter mit: einem Empfangen eines Lesebefehls (RC) von dem Host (200), während die Speicherbereinigung durchgeführt wird; ein Stoppen der Speicherbereinigung als Antwort auf den Lesebefehl (RC); ein Übertragen von Lesedaten (RDATA) an den Host (200) als Antwort auf den Lesebefehl (RC); und ein Wiederaufnehmen der gestoppten Speicherbereinigung.
  5. Verfahren nach Anspruch 3, weiter mit: einem Übertragen einer Antwort (RES2'), die einen Abschluss der Speicherbereinigung anzeigt, an den Host (200) als Antwort auf einen zweiten Zustandsprüfbefehl (SCC5), der von dem Host (200) übertragen wurde nachdem die Speicherbereinigung abgeschlossen ist; und ein Empfangen eines Schreibbefehls (WC) und von Schreibdaten (WDATA) von dem Host (200) sowie ein Speichern der Schreibdaten (WDATA) in einem Speicher (330) basierend auf dem Schreibbefehl (WC).
  6. Verfahren nach Anspruch 3, wobei wenn die Speicherbereinigung in einer Mehrzahl von Schritten durchgeführt wird und die Mehrzahl von Schritten verschiedene Ausführungszeiten aufweisen, die Datenspeichervorrichtung (300) die Antwort (RES2) so erzeugt, dass die Antwort (RES2) die Verarbeitungsinformation mit jedem der Mehrzahl von Schritten entsprechenden Bits (SB) enthält.
  7. Verfahren nach Anspruch 1, wobei die Datenspeichervorrichtung (300) eine Embedded Multimedia Card (eMMC) ist, der erste Befehl ein SWITCH-Befehl (CMD6) mit dem gesetzten Bit (SB) ist, das Register ein EXT_CSD-Register ist, das Speichern des gesetzten Bit (SB) das Speichern des gesetzten Bit (SB) in einem herstellerspezifischen Feld des EXT_CSD-Registers enthält und der erste Zustandsprüfbefehl (SCC) CMD13 ist.
  8. Verfahren nach Anspruch 1, wobei die Datenspeichervorrichtung (300) eine dreidimensionale nichtflüchtige Speichervorrichtung ist.
  9. Verfahren nach Anspruch 1, wobei die Datenspeichervorrichtung (300) ein dreidimensionales Speicherarray enthält, wobei das dreidimensionale Speicherarray einen nichtflüchtigen Speicher aufweist, der monolithisch ausgebildet ist in einer oder mehreren physikalischen Ebenen von Speicherzellen mit über einem Siliziumsubstrat angeordneten aktiven Bereichen.
  10. Verfahren zum Betreiben einer mobilen Rechenvorrichtung mit einem Host (200) und einer Datenspeichervorrichtung (300), wobei das Verfahren aufweist: ein Bestimmen (S110), durch den Host (200), einer Lese-Latenzzeit eines in der Datenspeichervorrichtung (300) durchzuführenden Lesebefehls (RC); ein Übertragen (S112), durch den Host (200), eines ersten Befehls an die Datenspeichervorrichtung (300) gemäß einem Ergebnis der Bestimmung, wobei der erste Befehl ein gesetztes Bit (SB) enthält; ein Speichern (S114), durch die Datenspeichervorrichtung (300), des gesetzten Bit (SB) in einem Register als Antwort auf den ersten Befehl; ein Übertragen (S116), durch den Host (200), eines ersten Zustandsprüfbefehls (SCC) an die Datenspeichervorrichtung (300); und ein Übertragen (S122, S130), durch die Datenspeichervorrichtung (300), von einer von einer ersten Antwort (RES1) und einer zweiten Antwort (RES'') an den Host (200) basierend auf dem ersten Zustandsprüfbefehl (SCC) und dem in dem Register gespeicherten gesetzten Bit (SB).
  11. Verfahren nach Anspruch 10, weiter mit: einem Erzeugen der ersten Antwort (RES1), so dass die erste Antwort eine Zustandsinformation der Datenspeichervorrichtung (300) enthält, und einem Erzeugen der zweiten Antwort (RES2), so dass die zweite Antwort (RES2) die Zustandsinformation der Datenspeichervorrichtung (300) sowie eine einem Schreibbefehl (WC) entsprechende Verarbeitungsinformation für die Datenspeichervorrichtung (300) enthält.
  12. Verfahren nach Anspruch 11, weiter mit: einem Rescheduling (S124), durch den Host (200), von zumindest einem von einem Lesebefehl (RC) und einem Schreibbefehl (WC), die an die Datenspeichervorrichtung (300) übertragen werden sollen, basierend auf der zweiten Antwort (RES2).
  13. Verfahren nach Anspruch 11, weiter mit: einem Anpassen, durch den Host (200), eines Übertragungsintervalls eines Warteschlangenbereitschafts-Prüfbefehls (QRCi), der an die Datenspeichervorrichtung (300) übertragen werden soll, basierend auf der zweiten Antwort (RES2).
  14. Verfahren nach Anspruch 11, weiter mit: einem Erzeugen der Verarbeitungsinformation so, dass die Verarbeitungsinformation zumindest eine von einer Information über eine Latenzzeit eines nächsten Schreibbefehls (WC), der in der Datenspeichervorrichtung (300) verarbeitet werden soll, und einer Information enthält, welche einen Hintergrundbetrieb anzeigt, der in der Datenspeichervorrichtung (300) durchgeführt wird.
  15. Verfahren nach Anspruch 14, wobei die Hintergrundoperation zumindest eine Datenspeicherbereinigung, Wear-Levelling sowie eine Leserückholoperation umfasst.
  16. Verfahren nach Anspruch 15, weiter mit: einem Empfangen durch die Datenspeichervorrichtung (300), eines ersten Lesebefehls (RC) von dem Host (200), während die Speicherbereinigung durchgeführt wird; ein Stoppen, durch die Datenspeichervorrichtung (300), der Speicherbereinigung als Antwort auf den ersten Lesebefehl (RC); ein Übertragen, durch die Datenspeichervorrichtung (300), von Lesedaten (RDATA) an den Host (200) als Antwort auf den ersten Lesebefehl (RC); und ein Wiederaufnehmen, durch die Datenspeichervorrichtung (300), der gestoppten Speicherbereinigung.
  17. Verfahren nach Anspruch 15, weiter mit: einem Übertragen, durch die Datenspeichervorrichtung (300) an den Host (200), einer dritten Antwort (RES2'), welche einen Abschluss der Speicherbereinigung anzeigt, als Antwort auf einen zweiten Zustandsprüfbefehl (SCC5), wobei der zweite Zustandsprüfbefehl (SCC5) ein Befehl ist, der von dem Host (200) übertragen wird nachdem die Speicherbereinigung abgeschlossen ist; und ein Empfangen, durch die Datenspeichervorrichtung (300), eines ersten Schreibbefehls (WC) und von Schreibdaten (WDATA) von dem Host (200), sowie ein Speichern der Schreibdaten (WDATA) in einem Speicher (330) basierend auf dem ersten Schreibbefehl (WC).
  18. Verfahren nach Anspruch 10, wobei die Datenspeichervorrichtung (300) eine Embedded Multimedia Card (eMMC) ist, der erste Befehl ein SWITCH-Befehl (CMD6) mit dem gesetzten Bit (SB) ist, das Register ein WXT_CSD-Register ist, das Speichern des gesetzten Bit (SB) ein Speichern des gesetzten Bit (SB) in einem herstellerspezifischen Feld des WXT_CSD-Registers enthält und der erste Zustandsprüfbefehl (SCC) CMD13 ist.
  19. Verfahren zum Betreiben eines Host (200) mit: einem Bestimmen (S110), bei dem Host (200), einer Lese-Latenzzeit einer Datenspeichervorrichtung (300); ein Erzeugen, bei dem Host (200), eines gesetzten Indikators (SB), so dass ein Wert des gesetzten Indikators (SB) von dem Host (200) ausgewählt wird basierend auf der bestimmten Lese-Latenzzeit; ein Übertragen eines Zustandsprüfbefehls (SCC) von dem Host (200) an die Datenspeichervorrichtung (300); ein Empfangen, bei dem Host (200), einer ersten Antwort (RES1, RES2) von der Datenspeichervorrichtung (300), wobei ein Antworttyp der ersten Antwort ein erster Typ oder ein zweiter Typ ist; wenn die erste Antwort (RES1, RES2) anzeigt, dass die Datenspeichervorrichtung (300) einen Hintergrundbetrieb durchführt, ein Bestimmen, ob oder ob nicht eine Reihenfolge von Datenzugriffsbefehlen in einem Befehls-Schedule des Host (200) neu angeordnet wird, basierend auf dem Antworttyp der ersten Antwort (RES1, RES2); und ein Senden eines ersten Datenzugriffsbefehls von dem Host (200) an die Datenspeichervorrichtung (300) basierend auf dem Befehls-Schedule.
  20. Verfahren nach Anspruch 19, wobei das Bestimmen, ob oder ob nicht die Reihenfolge von Datenzugriffsbefehlen neu angeordnet wird, enthält: wenn der Antworttyp der ersten Antwort (RES1, RES2) der zweite Typ ist, ein Neuanordnen der Reihenfolge der Datenzugriffsbefehle in einem Befehls-Schedule des Host (200), so dass ein Lesebefehl (RC) in dem Befehls-Schedule vor einen Schreibbefehl (WC) in dem Befehls-Schedule verschoben wird, und wenn der Antworttyp der ersten Antwort (RES1, RES2) der erste Typ ist, ein Aufrechterhalten einer gegenwärtigen Reihenfolge des Befehls-Schedule ohne ein Neuanordnen des Befehls-Schedule.
  21. Verfahren nach Anspruch 19, wobei das Erzeugen des gesetzten Indikators (SB) ein Erzeugen des gesetzten Indikators (SB) derart enthält, dass er einen ersten Wert besitzt, wenn die bestimmte Latenz-Zeit über einem Referenzwert ist, und ein Erzeugen des gesetzten Indikators (SB) derart, dass er einen zweiten Wert besitzt, wenn die bestimmte Latenz-Zeit nicht über dem Referenzwert ist.
  22. Verfahren nach Anspruch 20, wobei das Empfangen der ersten Antwort (RES1, RES2) von der Datenspeichervorrichtung (300) ein Empfangen der ersten Antwort (RES1, RES2) mit dem zweiten Antworttyp enthält, wenn der gesetzte Indikator (SB) den ersten Wert besitzt, und ein Empfangen der ersten Antwort (RES1, RES2) mit dem ersten Antworttyp besitzt, wenn der gesetzte Indikator (SB) den zweiten Wert besitzt.
DE102015117066.3A 2014-10-27 2015-10-07 Verfahren zum Betreiben einer Datenspeichervorrichtung, mobile Rechenvorrichtung mit derselben und Verfahren der mobilen Rechenvorrichtung Withdrawn DE102015117066A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140145651A KR20160049200A (ko) 2014-10-27 2014-10-27 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법
KR10-2014-0145651 2014-10-27

Publications (1)

Publication Number Publication Date
DE102015117066A1 true DE102015117066A1 (de) 2016-04-28

Family

ID=55698543

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015117066.3A Withdrawn DE102015117066A1 (de) 2014-10-27 2015-10-07 Verfahren zum Betreiben einer Datenspeichervorrichtung, mobile Rechenvorrichtung mit derselben und Verfahren der mobilen Rechenvorrichtung

Country Status (4)

Country Link
US (1) US20160117102A1 (de)
KR (1) KR20160049200A (de)
CN (1) CN105549898A (de)
DE (1) DE102015117066A1 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9824004B2 (en) 2013-10-04 2017-11-21 Micron Technology, Inc. Methods and apparatuses for requesting ready status information from a memory
US10108372B2 (en) 2014-01-27 2018-10-23 Micron Technology, Inc. Methods and apparatuses for executing a plurality of queued tasks in a memory
US9652415B2 (en) 2014-07-09 2017-05-16 Sandisk Technologies Llc Atomic non-volatile memory data transfer
US9904621B2 (en) 2014-07-15 2018-02-27 Sandisk Technologies Llc Methods and systems for flash buffer sizing
US9645744B2 (en) 2014-07-22 2017-05-09 Sandisk Technologies Llc Suspending and resuming non-volatile memory operations
US9753649B2 (en) 2014-10-27 2017-09-05 Sandisk Technologies Llc Tracking intermix of writes and un-map commands across power cycles
US9952978B2 (en) 2014-10-27 2018-04-24 Sandisk Technologies, Llc Method for improving mixed random performance in low queue depth workloads
US9824007B2 (en) 2014-11-21 2017-11-21 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
US9817752B2 (en) 2014-11-21 2017-11-14 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
US9652175B2 (en) 2015-04-09 2017-05-16 Sandisk Technologies Llc Locally generating and storing RAID stripe parity with single relative memory address for storing data segments and parity in multiple non-volatile memory portions
US10372529B2 (en) 2015-04-20 2019-08-06 Sandisk Technologies Llc Iterative soft information correction and decoding
US9778878B2 (en) 2015-04-22 2017-10-03 Sandisk Technologies Llc Method and system for limiting write command execution
US9870149B2 (en) * 2015-07-08 2018-01-16 Sandisk Technologies Llc Scheduling operations in non-volatile memory devices using preference values
US9715939B2 (en) 2015-08-10 2017-07-25 Sandisk Technologies Llc Low read data storage management
US10228990B2 (en) 2015-11-12 2019-03-12 Sandisk Technologies Llc Variable-term error metrics adjustment
US10126970B2 (en) 2015-12-11 2018-11-13 Sandisk Technologies Llc Paired metablocks in non-volatile storage device
US10375032B2 (en) * 2016-01-06 2019-08-06 Thomas Lorini System and method for data segmentation and distribution across multiple cloud storage points
US9837146B2 (en) 2016-01-08 2017-12-05 Sandisk Technologies Llc Memory system temperature management
US10732856B2 (en) 2016-03-03 2020-08-04 Sandisk Technologies Llc Erase health metric to rank memory portions
US10481830B2 (en) 2016-07-25 2019-11-19 Sandisk Technologies Llc Selectively throttling host reads for read disturbs in non-volatile memory system
KR20180053027A (ko) 2016-11-11 2018-05-21 삼성전자주식회사 스토리지 장치 및 그 동작 방법
KR102549540B1 (ko) 2017-09-22 2023-06-29 삼성전자주식회사 스토리지 장치 및 그 동작 방법
US10530959B2 (en) * 2018-04-12 2020-01-07 Lexmark International, Inc. Communication between an image forming device and a replaceable supply item
US10649702B2 (en) 2018-04-12 2020-05-12 Lexmark International, Inc. Communication between an image forming device and a replaceable supply item
CN108845962B (zh) * 2018-05-23 2021-04-27 中国电子科技集团公司第三十八研究所 基于高速模数转换器接口协议的流式dma控制器
US11580016B2 (en) * 2019-08-30 2023-02-14 Micron Technology, Inc. Adjustable garbage collection suspension interval
KR20210108208A (ko) 2020-02-25 2021-09-02 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

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
US8535466B2 (en) 2005-06-03 2013-09-17 The Procter & Gamble Company Process for making fibrous structures comprising a polymer structure
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
KR20140145651A (ko) 2013-06-13 2014-12-24 박완규 테두리 발광형 휴대단말기 케이스

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728809B1 (en) * 1999-09-09 2004-04-27 Matsushita Electric Industrial Co., Ltd. Time-out control apparatus, terminal unit, time-out control system and time-out procedure
US6502111B1 (en) * 2000-07-31 2002-12-31 Microsoft Corporation Method and system for concurrent garbage collection
TW561349B (en) * 2002-03-01 2003-11-11 Via Tech Inc Scheduling method and device of read/write request in control chip
US7149857B2 (en) * 2002-05-14 2006-12-12 Micron Technology, Inc. Out of order DRAM sequencer
US7440884B2 (en) * 2003-01-23 2008-10-21 Quickturn Design Systems, Inc. Memory rewind and reconstruction for hardware emulator
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
DE112009004900T5 (de) * 2009-06-10 2012-08-16 Micron Technology, Inc. Vertagen von Speicheroperationen zum Reduzieren von Leselatenz in Speicherfeldern
US8850114B2 (en) * 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
US20130185487A1 (en) * 2012-01-18 2013-07-18 Samsung Electronics Co., Ltd Memory system and mobile device including host and flash memory-based storage device
KR20140035771A (ko) * 2012-09-14 2014-03-24 삼성전자주식회사 임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 제어하는 호스트, 및 그 동작방법
KR102088403B1 (ko) * 2013-08-08 2020-03-13 삼성전자 주식회사 저장장치, 이를 포함하는 컴퓨터 시스템 및 이의 동작 방법
KR102248915B1 (ko) * 2014-03-26 2021-05-07 삼성전자주식회사 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8535466B2 (en) 2005-06-03 2013-09-17 The Procter & Gamble Company Process for making fibrous structures comprising a polymer structure
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
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
KR20140145651A (ko) 2013-06-13 2014-12-24 박완규 테두리 발광형 휴대단말기 케이스

Also Published As

Publication number Publication date
CN105549898A (zh) 2016-05-04
KR20160049200A (ko) 2016-05-09
US20160117102A1 (en) 2016-04-28

Similar Documents

Publication Publication Date Title
DE102015117066A1 (de) Verfahren zum Betreiben einer Datenspeichervorrichtung, mobile Rechenvorrichtung mit derselben und Verfahren der mobilen Rechenvorrichtung
DE102013110085B4 (de) Nicht-flüchtige speichervorrichtung
DE102017128939A1 (de) System und Verfahren zum dynamischen und adaptiven Zusammenführen von Interrupts
DE102018105984A1 (de) Prioritätsbasierte interne Datenverschiebung
DE112018000180T5 (de) System und verfahren zum adaptiven senden frühzeitiger beendigung unter verwendung eines steuerungsspeicherpuffers
DE112018000834T5 (de) System und verfahren zur adaptiven befehlsabruf-aggregation
DE112018000228T5 (de) System und Verfahren zur Verarbeitung und Arbitrierung von Übermittlungs- und Beendigungswarteschlangen
DE102018105943A1 (de) Kontextbewusste dynamische Befehlsplanung für ein Datenspeichersystem
DE102018113447A1 (de) Speichervorrichtung zum Koppeln mit einem Host und Verfahren zum Betreiben des Hosts und der Speichervorrichtung
DE102017104448A1 (de) Datenspeichervorrichtung
DE102017120960A1 (de) Mehrkanal-Speicheroperationen auf der Grundlage von Bitfehlerraten
DE102015014851A1 (de) Ressourcenzuteilung und -freigabe für die Energieverwaltung in Vorrichtungen
DE102013016609A1 (de) Vorrichtung und Verfahren für ein Storage Class Memory mit niedrigem Energieverbrauch, niedriger Latenz und hoher Kapazität
DE102020132764A1 (de) Solid-state-drive mit externer softwareausführung zum bewirken von internen operationen des solid-state-drive
DE112016000696B4 (de) Ablaufplanungsschema(ta) für eine Mehrchip-Speichervorrichtung
DE102016204283A1 (de) Datenspeichervorrichtungen, Datenverarbeitungssysteme, die diese aufweisen, Verfahren zum Betreiben und Verfahren zum Herstellen derselben.
DE102018105871A1 (de) Speichersystem und Verfahren zur Vermeidung von Befehlskollisionen in nicht flüchtigen Datenspeichern mit expliziter Kachelgruppierung
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE102019120573A1 (de) Technologien zur rechnerischen speicherung über ablade-kernel-erweiterungen
DE102020211544A1 (de) Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE112020005044T5 (de) Zonenanhang-befehlsplanung basierend auf zonenzustand
DE102021118940A1 (de) Speichersteuerung und speichereinrichtung mit derselben
DE112017001118T5 (de) Verfahren und Vorrichtung zum Bereitstellen eines zusammenhängend adressierbaren Speicherbereichs durch Neuabbildung eines Adressraums
DE102018110704A1 (de) Speicherungsvorrichtung für ein vorausgehendes Verwalten einer Schreibdaten zuzuweisenden physischen Adresse

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee