DE102013016993A1 - Embedded Multimedia Card (eMMC), einen Host steuernde eMMC und Verfahren zum Betreiben eines eMMC-Systems - Google Patents

Embedded Multimedia Card (eMMC), einen Host steuernde eMMC und Verfahren zum Betreiben eines eMMC-Systems Download PDF

Info

Publication number
DE102013016993A1
DE102013016993A1 DE102013016993.3A DE102013016993A DE102013016993A1 DE 102013016993 A1 DE102013016993 A1 DE 102013016993A1 DE 102013016993 A DE102013016993 A DE 102013016993A DE 102013016993 A1 DE102013016993 A1 DE 102013016993A1
Authority
DE
Germany
Prior art keywords
data
emmc
command
host
read
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.)
Granted
Application number
DE102013016993.3A
Other languages
English (en)
Other versions
DE102013016993B4 (de
Inventor
Kyung Phil Yoo
Sung Ho Seo
Myung Sub Shin
Woon Jae Chung
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 DE102013016993A1 publication Critical patent/DE102013016993A1/de
Application granted granted Critical
Publication of DE102013016993B4 publication Critical patent/DE102013016993B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Information Transfer Systems (AREA)
  • Read Only Memory (AREA)

Abstract

Eine embedded Multimedia Card (eMMC) enthält einen Flashspeicher und einen eMMC-Controller, der Operationen des Flashspeichers steuert. Der eMMC-Controller enthält ein Befehlsregister, das von einem Host einen Befehlssatz empfängt, der eine nächste Operation definiert, die zweite Daten spezifiziert, gleichzeitig mit einer Übermittlung der durch eine aktuelle Operation spezifizierten ersten Daten, einen ersten Speicher, der die ersten Daten speichert, und einen zweiten Speicher, der die zweiten Daten speichert.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität von der am 14. September 2012 eingereichten koreanischen Patentanmeldung Nr. 10-2012-0102483, deren Gesamtheit durch Bezugnahme hierin mit aufgenommen wird.
  • HINTERGRUND
  • Das erfinderische Konzept betrifft embedded Multimedia Cards (eMMC), einen Host steuernde eMMC und Verfahren zum Betreiben eines eMMC-Systems, das einen Host und eine eMMC enthält. Insbesondere betrifft das erfinderische Konzept eine eMMC, eMMC-Systeme und Betriebsverfahren, die die Lese-/Schreibperformance verbessern.
  • Die sogenannte Multimedia Card (MMC) ist ein besonderer Typ einer Flashspeicherkarte, die gemäß anwendbaren Standards definiert ist. Die eMMC ist ein embedded MMC-Standard, der durch einen Satz von durch die Joint Electron Devices Engineering Council (JEDEC) administrierten Standards definiert ist. In einer allgemeinen Konfiguration und Anwendung sind eMMCs entworfen, um in Verbindung mit einem Host innerhalb einer mobilen Kommunikationsvorrichtung, wie z. B. Smartphones, eingeführt (oder ”eingebettet”) zu werden. Die eMMC kommuniziert herkömmlich Datensignale, Steuersignale, Befehle, Takt(e) und/oder Leistungssignale mit einem verbunden Host über einen standardisierten 10-Linienbus.
  • KURZFASSUNG DER ERFINDUNG
  • Gemäß bestimmter Ausführungsformen des erfinderischen Konzepts wird eine eingebettete Multimedia Card (eMMC) vorgeschlagen, die einen Flashspeicher und einen eMMC-Controller enthält, der den Betrieb des Flashspeichers steuert. Der eMMC-Controller enthält ein Befehlsregister, das von einem Host einen Befehlssatz empfängt, der eine nächste Operation definiert, die zweite Daten gleichzeitig mit einer Übermittlung von ersten Daten spezifiziert, die durch eine aktuelle Operation spezifiziert sind, einen ersten Speicher, der die ersten Daten speichert, und einen zweiten Speicher, der die zweiten Daten speichert.
  • Gemäß bestimmten Ausführungsformen des erfinderischen Konzepts wird ein Verfahren zum Betreiben einer embedded Multimedia Card (eMMC) vorgeschlagen, die einen Flashspeicher enthält, wobei die eMMC mit einem Host über eine Befehlsleitung und einen Datenbus verbunden ist, wobei das Verfahren enthält: Übertragen von in einem ersten Speicher der eMMC gespeicherten ersten Daten zu dem Host über den Datenbus als Reaktion auf einen aktuellen Befehl, und gleichzeitig mit der Übertragung der ersten Daten, Kommunizieren eines Befehlssatzes, der eine nächste Operation definiert, die zweite Daten spezifiziert, von dem Host an die eMMC über die Befehlsleitung und Speichern des Befehlssatzes in einem Befehlsregister der eMMC.
  • Gemäß bestimmten Ausführungsformen des erfinderischen Konzepts wird ein Verfahren zum Betreiben einer embedded Multimedia Card (eMMC) vorgeschlagen, die einen Flashspeicher enthält, wobei die eMMC mit einem Host über eine Befehlsleitung und einen Datenbus verbunden ist, wobei das Verfahren enthält: Verwendung von zwei normalen Lese-/Schreiboperationen, um sequentiell eine erste Lese-/Schreiboperation und anschließend eine zweite Lese-/Schreiboperation der Reihe nach auszuführen, wobei jede normale Lese-/Schreiboperation eine Übermittlung von in dem Flashspeicher gespeicherten Daten verursacht; anderenfalls Verwendung einer einzelnen Multi-Warteschlangen-Lese-/Schreiboperation, um die erste Lese-/Schreiboperation gleichzeitig mit der zweiten Lese-/Schreiboperation auszuführen, wobei die Multi-Wartschlangen-Schreiboperation eine Übermittlung von in dem Flashspeicher gespeicherten Daten verursacht.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Merkmale und Vorteile des erfinderischen Konzepts zusammen mit deren Durchführung und Verwendung kann auf einfache Weise durch einen Fachmann beim Betrachten von bestimmten beispielhaften, nachstehend beschriebenen Ausführungsformen in Zusammenhang mit den beigefügten Figuren verstanden werden, in denen:
  • 1 ein Blockdiagramm eines eingebetteten Multimedia (eMMC)-Systems gemäß bestimmten Ausführungsformen des erfinderischen Konzepts ist;
  • 2 ein Blockdiagramm ist, das ferner die eMMC von 1 darstellt;
  • 3 ein konzeptionelles Diagramm ist, das ein mögliches Beispiel eines Befehlsregisters darstellt, das in Zusammenhang mit der eMMC von 2 verwendet werden kann;
  • 4 mit 4A, 4B und 4C bestimmte beispielhafte Multi-Warteschlangen-Befehle sowie zu denselben zugehörige Informationen darstellt;
  • 5 ein Blockdiagramm ist, das ferner einzelne Puffer 341 und 345 in dem Speicher 340 von 2 gemäß bestimmten Ausführungsformen des erfinderischen Konzepts darstellt;
  • 6 ein konzeptionelles Diagramm ist, das eine mögliche Herangehensweise an eine Multi-Warteschlangen-Leseoperation darstellt, die durch das eMMC-System von 1 gemäß bestimmten Ausführungsformen des erfinderischen Konzepts ausgeführt werden kann;
  • 7 ein Operationsdiagramm ist, das ferner in einer zeitlichen Art und Weise eine Multi-Warteschlangen-Leseoperation gemäß bestimmten Ausführungsformen des erfinderischen Konzepts darstellt;
  • 8 mit 8A und 8B ein Satz von Operationsdiagrammen ist, die eine Nennleseoperation, die durch eine eMMC ausgeführt werden kann, mit einer Multi-Warteschlangen-Leseoperation vergleichen, die durch eine eMMC gemäß Ausführungsformen des erfinderischen Konzepts ausgeführt werden kann;
  • 9 ein Operationsdiagramm ist, das eine mögliche Herangehensweise an eine Multi-Warteschlangen-Schreiboperation darstellt, die durch bestimmte Ausführungsformen des erfinderischen Konzepts ausgeführt werden kann; und
  • 10 mit 10A und 10B ein Satz von Operationsdiagrammen ist, die eine Nennleseoperation, die durch eine eMMC ausgeführt werden kann, mit einer Multi-Warteschlangen-Leseoperation vergleichen, die durch eine eMMC gemäß Ausführungsformen des erfinderischen Konzepts ausgeführt werden kann.
  • DETAILLIERTE BESCHREIBUNG
  • Bestimmte Ausführungsformen des erfinderischen Konzepts werden nun in zusätzlicher Einzelheit mit Bezug auf die begleitenden Figuren beschrieben. Dieses erfinderische Konzept kann jedoch in vielen verschiedenen Ausführungsformen verkörpert werden und soll nicht derart ausgelegt werden, dass es lediglich auf die dargestellten Ausführungsformen beschränkt ist. Vielmehr sind diese Ausführungsformen derart vorgesehen, dass diese Offenbarung durchgängig und vollständig sein wird, und den Schutzbereich des erfinderischen Konzepts den Fachleuten vollständig vermittelt wird. Durchgängig werden in der schriftlichen Beschreibung und in den Figuren gleiche Bezugszeichen und Bezeichnungen für gleiche oder ähnliche Elemente verwendet.
  • Es wird verstanden werden, dass ein Element als ”verbunden” oder ”gekoppelt” an ein anderes Element bezeichnet wird, das direkt verbunden oder gekoppelt an das andere Element oder dazwischenliegende Elemente vorhanden sein können. Im Gegensatz dazu, wenn ein Element als ”direkt verbunden” oder ”direkt gekoppelt” an ein weiteres Element bezeichnet wird, sind keine dazwischen liegenden Elemente vorhanden. Wie hier verwendet wird, enthält der Begriff ”und/oder” eine und alle Kombinationen von einem oder mehreren der zugehörigen aufgelisteten Gegenstände und kann als ”/” abgekürzt werden.
  • Es soll verstanden werden, dass obwohl die Begriffe erstens, zweitens, usw. zum Beschreiben verschiedener Elemente verwendet werden können, diese Elemente nicht auf diese Begriffe beschränkt sein sollen. Diese Begriffe werden lediglich dazu verwendet, ein Element von einem anderen Element zu unterscheiden. Beispielsweise könnte ein erstes Signal als ein zweites Signal bezeichnet werden und auf ähnliche Weise könnte ein zweites Signal als ein erstes Signal bezeichnet werden ohne von den Lehren der Offenbarung abzuweichen.
  • Die nachfolgend verwendete Terminologie ist nur zum Zwecke der Beschreibung von besonderen beispielhaften Ausführungsformen und ist nicht dazu gedacht, das vorliegende erfinderische Konzept zu beschränken. Die hier verwendeten Singularformen ”ein” und ”der/die/das” sind dazu gedacht auch die Pluralformen zu umfassen, soweit der Zusammenhang nichts anderes klar anzeigt. Es wird ferner verstanden werden, dass die Begriffe ”aufweisen” und/oder ”aufweisend”, oder ”enthalten” und/oder ”enthaltend”, wenn sie in diesen Unterlagen verwendet werden, das Vorhandensein von genannten Merkmalen, Regionen, ganzen Zahlen, Schritten, Operationen, Elemente und/oder Komponenten angeben, aber nicht das Vorhandensein oder Hinzufügen von einem oder mehreren weiteren Merkmalen, Regionen, ganzen Zahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon ausschließen.
  • Sofern nichts anderes definiert ist, haben alle hier verwendeten Begriffe (einschließlich technischer und wissenschaftlicher Begriffe) die gleiche Bedeutung wie sie von einem gewöhnlichen Fachmann in dem Bereich, zu dem das Erfindungskonzept gehört, verstanden werden. Es wird weiter verstanden werden, dass hier verwendete Begriffe so interpretiert werden sollen, dass ihre Bedeutung übereinstimmend mit ihrer Bedeutung in dem Kontext dieser Beschreibung und der verwandten Technik ist, und nicht in einer idealisierten und überformalen Art und Weise ausgelegt werden, außer wenn es ausdrücklich hier so definiert ist.
  • Fachleute verstehen, dass verschiedene JEDEC-Standards verfügbar sind, die die Struktur, den Aufbau und/oder die Betriebszustände bzw. -bedingungen der eMMCs kennzeichnen und/oder definieren. Diese Standards können auf einfache Weise aus der Quelle http://www.jedec.org erhalten und herangezogen werden. Beispielsweise enthält der elektrische Standard für eine eingebettete Multimediakarte (eMMC), Version 4.51, die im Juni 2012 veröffentlicht wurde (d. h. JESD84-B451), viele Begriffe und technische Definitionen, die für ein Verständnis des erfinderischen Konzepts zweckdienlich sind.
  • Verschiedene Ausführungsformen des erfinderischen Konzepts können eine oder mehrere Signalleitungen oder Signalbusse zusammen mit entsprechenden Kommunikationskanälen enthalten, die zusätzlich zu dem Standard 10-Drahtbus sind, der durch die JEDEC eMMC-Standards definiert ist.
  • 1 ist ein Blockdiagramm eines eMMC-Systems 100 gemäß bestimmten Ausführungsformen des erfinderischen Konzepts. Das eMMC-System 100 enthält einen Host 200, der mit einer ”Vorrichtung” (z. B. einer eMMC) 300 verbunden ist. Der Host 200 kann verwendet werden, um Steuerdatenverarbeitungsoperationen (z. B. Lese-/Schreiboperationen) zu steuern, die durch die eMMC 300 ausgeführt werden. Solche Datenverarbeitungsoperationen können mit einer Singledatenrate (SDR) oder einer doppelten Datenrate (DDR) ausgeführt werden.
  • Der Host 200 kann einer von einer Anzahl von verschiedenen Datenverarbeitungsvorrichtung(en) sein, wie z. B. eine zentrale Recheneinheit (CPU), ein Prozessor, ein Mikroprozessor oder ein Anwendungsprozessor, der Daten verarbeiten kann. Der Host 200 und/oder die eMMC 300 können in einer elektronischen Vorrichtung eingebettet oder implementiert sein. Die elektronische Vorrichtung kann als ein Personalcomputer (PC), ein Laptopcomputer, ein Mobiltelefon, ein Smartphone, ein Tablet-PC, ein Personal-Digital-Assistent (PDA), ein Enterprise(Unternehmens)-Digital-Assistent (EDA), eine Digital-Fotokamera, eine Digital-Videokamera, eine Audiovorrichtung, ein tragbarer Multimediaplayer (PMP), eine persönliche Navigationsvorrichtung oder eine tragbare Navigationsvorrichtung (PND), ein MP3-Player, eine von Hand getragene Spielkonsole oder ein e-Book.
  • Wie durch einen Fachmann erkannt wird, kann die eMMC 300 verschiedenartig mit der elektronischen Vorrichtung über eine Anzahl von Verbindungen, Kanäle oder Signalpfaden verbunden sein, die durch eine oder mehrere herkömmliche Komponenten implementiert sind, die (z. B.) Pad(s), Pin(s), Leitung(en) und Bus(e) mit einschließen.
  • Der in 1 dargestellte Host 200 enthält allgemein einen Prozessor 215, einen Speicher (RAM) 220 und einen Host-Controller 230. Zusätzlich kann ein Host-Resident-Betriebssystem (OS) oder eine Firmware 210 durch den Prozessor 215 verwendet werden, um Daten/Adressen/Befehle/Steuersignale an die eMMC 300 anzusteuern. Der Host 200 und in bestimmten Ausführungsformen der Host-Controller 230 des Hosts 200, kann ein Takterzeuger (nicht gezeigt) und/oder eine Zustandssteuereinheit (nicht gezeigt) enthalten. Der Takterzeuger kann verwendet werden, um ein ”Takt”-Signal CLK zu erzeugen, das als ein Referenzsignal in dem Host 200 und/oder der eMMC 300 verwendet wird. Beispielsweise wird von den Fachleuten verstanden, wie ein fachgemäßer Takterzeuger mit einer Phasenregelkreis(PLL)-Schaltung implementiert werden kann.
  • In bestimmten Ausführungsformen des erfinderischen Konzepts kann der Prozessor 215 eine Hardware-Komponente sein, die die Erzeugung eines zu der eMMC 300 kommunizierten Befehls CMD steuert. Der Prozessor 215 kann auch verwendet werden, um eine aus der eMMC 300 als Reaktion auf einen Befehl empfangene Antwort RES zu analysieren. Der Prozessor 215 kann auch verwendet werden, um in einem Extended Card Specific Data(CSD)-Register (oder einem EXT_CSD-Register) 371 der eMMC 300 gespeicherte Daten zu verarbeiten. Der Prozessor 215 kann auch verwendet werden, um aus der eMMC 300 empfangene Daten und/oder andere Daten zu verarbeiten. In jeder dieser allgemeinen Funktionen kann der Prozessor 215 die OS/Host-Firmware 210 verwenden.
  • Der Host-Controller 230 ist mit der eMMC 300 verbunden und der Host-Controller 230 kann verwendet werden, um den Befehl CMD an die eMMC 300 zu kommunizieren, die Antwort RES aus der eMMC 300 zu empfangen, zu der eMMC 300 zu schreibende ”Schreibdaten” zu übertragen und aus der eMMC 300 abgerufene ”Lesedaten” zu empfangen.
  • Die standardmäßig zehn (10) eMMC-Signalleitungen 101, 102 und der in 1 dargestellte Datenbus 103 sind konsistent mit einsetzbaren Industriestandards (z. B. der durch JEDEC definierte eMMC 4.51). Allerdings ist, wie vorstehend angemerkt, der Umfang des erfinderischen Konzepts nicht nur auf die Standardsignalleitungs-Buskonfigurationen zwischen einem Host und einer eMMC begrenzt.
  • Bei der Standardsignalleitungs-Buskonfiguration von 1 kann eine bidirektionale Taktleitung 101 verwendet werden, um ein Taktsignal CLK von dem Host 200 an die eMMC 300 zu kommunizieren. Eine bidirektionale Befehlsleitung 102 kann verwendet werden, um einen Befehl CMD von dem Host 200 an die eMMC 300 zu kommunizieren und eine Antwort RES zu dem Befehl CMD von der eMMC 300 an den Host 200 zu kommunizieren. Und ein bidirektionaler Datenbus 103, der acht (8) Datensignalleitungen [0:7] enthält, kann verwendet werden, um Schreibdaten von dem Host 200 an die eMMC 300 während einer Schreiboperation zu kommunizieren oder Lesedaten von der eMMC 300 an den Host 200 zu kommunizieren während einer Leseoperation.
  • Bei bestimmten Ausführungsformen des erfinderischen Konzepts kann der Host 200 ein Hardwarerücksetzsignal an die eMMC 300 über eine Rücksetzleitung (nicht gezeigt) kommunizieren. Eine oder mehrere Spannungserzeugungsschaltungen (nicht gezeigt) in dem Host 200 können verwendet werden, um eine oder mehrere Betriebsspannungen an die eMMC 300 vorzusehen. Solche durch einen Host erzeugten Betriebsspannungen können an die eMMC 300 über eine oder mehrere Spannungsleitungen (nicht gezeigt) kommuniziert werden.
  • 2 zeigt ein Blockdiagramm, das ferner ein Beispiel der eMMC 300 von 1 gemäß bestimmter Ausführungsformen des erfinderischen Konzepts darstellt. Hier enthält die eMMC 300 allgemein einen Vorrichtungs(eMMC)-Controller 310 und einen Flashspeicher 370.
  • Der eMMC-Controller 310 steuert den Austausch von Lesedaten und Schreibdaten zwischen dem Host 200 und dem Flashspeicher 370. Der in 1 dargestellte eMMC-Controller 310 enthält eine eMMC-Hostschnittstelle 320, eine CPU 330, einen Speicher 340, einen Fehlerkorrekturcode(ECC)-Block 360 und eine Flashschnittstelle 365.
  • Die eMMC-Hostschnittstelle 320 analysiert beim Empfang des Taktsignals CLK und eines Befehls CMD von dem Host 200 den Befehl CMD, erzeugt eine geeignete Antwort RES und kommuniziert die Antwort RES zusammen mit den Lesedaten gegebenenfalls an den Host 200. Die eMMC-Hostschnittstelle 320 von 2 enthält ein Befehlsregister 325, das verwendet werden kann, um eine Multi-Warteschlangen-Leseoperation und/oder Multi-Warteschlangen-Schreiboperation zu implementieren. Diese Operationen werden nachstehend beschrieben.
  • 3 zeigt ein konzeptionelles Diagramm, das ein mögliches Beispiel eines Befehlsregisters darstellt, das in Verbindung mit der eMMC von 2 verwendet werden kann. Das Befehlsregister 325 von 3 enthält eine Anzahl bzw. Zahl ”N” von Registersätzen (oder Befehlsregistersätzen), wobei N eine ganze Zahl größer als 1 ist. Somit kann diese Anzahl N verwendet werden, um eine ”Tiefe” (oder Warteschlangen-Größe) für das Multi-Warteschlangen-Register 325 zu verwenden.
  • Bezugnehmend nun auf 2 und 3 kann die eMMC-Hostschnittstelle 320 einen Multi-Warteschlangen-Befehl von dem Host 200 empfangen, der eine maximale Multi-Warteschlangentiefe für das Befehlsregister 325 angibt. Die eMMC-Hostschnittstelle kann anschließend den empfangenen Multi-Warteschlangen-Befehl in die Registersätze des Befehlsregisters 325 speichern. Das Befehlsregister 325 von 3 enthält ”Datengrößenregister” 326-1 bis 326-N, und entsprechende ”Adressregister” 327-1 bis 327-N, die jeweils Startadressen SAN speichern. Die Datengrößen DS1 bis DSN und entsprechende Startadressen SA1 bis SAN sind Beispiele des Typs von Informationen, der in einem durch die Hostschnittstelle 320 empfangenen Multi-Warteschlangen-Befehl enthalten sein können.
  • Auf eine bestimmte Art und Weise kann der Multi-Warteschlangen-Befehl als ein Befehl verstanden werden, der zwischen dem Host 200 und der eMMC 300 vordefiniert ist. Das bedeutet die Kommunikation eines Multi-Warteschlangen-Befehls von dem Host 200 an die eMMC 300 ist eine Art von ”Nach-Vorne-Schauen” zu einem ”nächsten Befehl”, der durch die eMMC 300 auszuführen ist sobald der ”aktuelle Befehl”, der durch die eMMC 300 ausgeführt wird, abgeschlossen wurde. Somit kann ein nächster Befehl (der Multi-Warteschlangen-Befehl) in einer Befehlsausführwarteschlange der eMMC 300 während wenigstens einem Teil der Zeitperiode gespeichert werden, während der ein aktueller Befehl ausgeführt wird.
  • Ein Multi-Warteschlangen-Befehl kann einen ”Lesebefehl”, der bewirkt, dass Lesedaten aus der eMMC 300 abgerufen werden, oder einen ”Schreibebefehl” definieren, der bewirkt, dass Schreibedaten zu der eMMC 300 geschrieben werden. Ein Multi-Warteschlangen-Befehl kann ein ”Datenauslesebefehl”, der bewirkt, dass abgerufene Lesedaten von der eMMC 300 zu dem Host 200 kommuniziert werden, und einen ”Dateneinschreibbefehl” definieren, der Schreibdaten in den mit dem Flashspeicher 370 verbunden Pufferspeicher speichert. Allerdings sind dies nur einfache Beispiele von bestimmten Multi-Warteschlangen-Befehle, die durch Ausführungsformen des erfinderischen Konzepts verwendet werden können.
  • 4, inklusive 4A, 4B und 4C, zeigt konzeptionell bestimmte beispielhafte Multi-Warteschlangebefehle sowie Informationen verbunden mit denselben.
  • Bezugnehmend auf 4A kann ein Multi-Warteschlangen-Befehl als ein ”Befehlssatz” CS implementiert werden, der wenigstens einen Befehlsregistereintrag enthält, wobei jeder einen oder mehrere Teile aufweist (z. B. CMD_ds und CMD_sa). Hier ist der erste Teil des Befehlsregistereintrags (CMD_ds 430) ein ”Größenbefehl”, der verwendet wird, um die Größe entweder von den aus dem Flashspeicher 370 abgerufenen Lesedaten oder der Größe der zu dem Flashspeicher 370 zu schreibenden Schreibdaten zu spezifizieren. Der zweite Teil des Befehlsregistereintrags (Befehl CMD_sa 440) ist ein ”Adressbefehl”, der verwendet wird, um eine Startadresse für die Lesedaten oder Schreibdaten zu spezifizieren. Bei der dargestellten Ausführungsform von 4a kann der Größenbefehl CMD_ds der erste ausgegebene gefolgt durch den Adressbefehl CMD_sa sein. Allerdings kann diese Ausgabereihenfolge umgekehrt werden.
  • Bezugnehmend auf 4B kann der Größenbefehl 430 bei wenigstens einer Ausführungsform einen Befehlstyp 431 und einen Datengrößenwert (z. B. eine Blockanzahl) 432 enthalten. In diesem Zusammenhang ist ein Block eine vorgegebene Dateneinheit einer vorbestimmten Größe und kann z. B. der Größe der Datenspeicherstelle in dem Flashspeicher 370 entsprechen. Passend zu der Ausführungsform von 3 kann die Datengröße 432 von 4 in einem der Datengrößenregister 326-1 bis 326-N in dem Registersatz 325 gespeichert werden.
  • Bezugnehmend auf 4C kann der Adressbefehl 440 bei wenigstens einer Ausführungsform einen Befehlstyp 441 und einen Startadresswert 442 enthalten. Der Startadresswert 442 des Adressbefehls 440 kann in einem der entsprechenden Adressregister 327-1 bis 327-N in dem Registersatz 325 gespeichert werden. Allerdings können bei anderen Ausführungsformen des erfinderischen Konzepts der Datengrößenwert 432 und der Startadressenwert 442 in einem zu der eMMC 300 kommunizierten Einzelbefehl enthalten sein.
  • Bezugnehmend zurück auf 3 können eine ”Datengröße” DS und eine ”Startadresse” SA in einem von dem Host 200 ausgegebenen Multi-Warteschlangen-Befehl enthalten sein und zu der eMMC 300 kommuniziert werden. Die Startadresse SA gibt eine Startposition für durch den Multi-Warteschlangen-Befehl identifizierte Daten an und die Datengröße DS zeigt die Größe der Daten an. Beispielsweise kann, wenn der Multi-Warteschlangen-Befehl ein Lesebefehl ist, die Startadresse SA als ”100” angezeigt werden, und die Datengröße DS kann als ”10” angezeigt werden. Somit wird der einzelne Lesebefehl die eMMC 300 veranlassen, 10 Datenblöcke von Lesedaten abzurufen, die bei der Startadresse in dem Flashspeicher 370 von 100 beginnen.
  • Bezugnehmend auf 2 kann die CPU 330 verwendet werden, um die Operationen der Hostschnittstelle 320 und der Flashschnittstelle 365 zu steuern, sowie die Gesamtoperation der eMMC 300. Der Speicher 340 kann verwendet werden, um temporär Schreibdaten und/oder Lesedaten, die zwischen der Hostschnittstelle 320 und der Flashschnittstelle 365 kommuniziert werden, speichern. Der Speicher 340 kann durch einen nicht-flüchtigen Speicher implementiert sein. Bei der dargestellten Ausführungsform von 2 enthält der Speicher 340 Speicherabschnitte, die als ein normaler Puffer 341, ein Warteschlangen-Datenpuffer 345 und eine Vorrichtungsfirmware 350 bezeichnet werden. Der Vorrichtungsfirmware 350-Abschnitt kann verwendet werden, um einen durch die CPU 330 ausgeführten Programmcode zu speichern.
  • Der ECC-Block 360 von 2 kann verwendet werden, um Fehler in durch den Flashspeicher 370 vorgesehene Lesedaten zu erfassen und/oder zu korrigieren.
  • Der Flashspeicher 370 von 3 kann verwendet werden, um Daten als Reaktion auf verschiedene Befehle zu empfangen und zu speichern, zu löschen und/oder abzurufen und bereitzustellen. Wenn der Flashspeicher 370 durch den NAND-Flashspeicher implementiert ist, kann z. B. die Flashschnittstelle 365 durch eine NAND-Flashschnittstelle implementiert sein. Bei bestimmten Ausführungsformen kann der Flashspeicher 370 das sogenannte und herkömmlich verstandene EXT_CSD-Register 371 enthalten, das verwendet werden kann, um Vorrichtungseigenschaften und auswählbare Operationsmodi für den Flashspeicher 370 zu speichern.
  • Die eMMC 300 kann zusätzlich oder alternativ ein Hoststeuerregister 372 (1) zusätzlich zu dem EXT_CSD-Register 371 enthalten, wobei das Hoststeuerregister ein Register ist, das in der eMMC 300 mit Ausnahme des EXT_CSD-Registers 371 angeordnet ist, das durch den Host gesteuert werden kann oder deren Dateninhaltssatz aufweist.
  • Bei der dargestellten Ausführungsform von 2 enthält der Flashspeicher 370 eine Mehrzahl von Speicherelementen CE0 bis CE3. Obwohl vier (4) Speicherelemente CE0 bis CE3 in 2 dargestellt sind, ist das erfinderische Konzept nicht auf diese Anzahl beschränkt. Der Flashspeicher 370 kann konfiguriert sein, um mit zwei oder mehreren Kanälen betrieben zu werden.
  • Der Host 200 kann einen SEND_EXT_CSD-Befehl (= CMD8) ausgeben, um das EXT_CSD-Register 371 zu lesen. Als Reaktion wird die eMMC 300 als ein Block (z. B. 512 Bits in der Länge) die durch das EXT_CSD-Register 371 gespeicherten Daten kommunizieren. Informationen, die die Tiefe ”N” des Befehlsregisters 325 (oder Multi-Warteschlangentiefe) anzeigen, können in einem reservierten Feld des EXT_CSD-Registers 371 enthalten sein. Alternativ können Informationen, die die Multi-Warteschlangentiefe definieren, durch das Hoststeuerregister 371 in der eMMC 300 bereitgestellt werden.
  • 5 zeigt ein Blockdiagramm, das ferner einzelne Puffer 341 und 345 in dem Speicher 340 von 2 gemäß bestimmten Ausführungsformen des erfinderischen Konzepts darstellt. Der normale Puffer 341 und der Warteschlangen-Datenpuffer können entsprechend verwendet werden, um temporär Schreibdaten, die von dem Host 200 empfangen wurden und zu dem Flashspeicher 370 zu schreiben sind, oder Lesedaten zu speichern, die aus dem Flashspeicher 370 abgerufen wurden und an den Host 200 zurückgegeben werden sollen.
  • Der normale Puffer 341 wird während normalen Lese-/Schreiboperationen verwendet, wobei eine ”normale” Lese-/Schreiboperation eine Lese-/Schreiboperation ist, die durch den Host 200 mit Ausnahme einer Multi-Warteschlangen-Lese-/Schreiboperation spezifiziert wird. Dagegen wird der Warteschlangen-Datenpuffer 345 während einer Multi-Warteschlangen-Lese-/Schreiboperation verwendet. Allerdings kann entsprechend eines Betriebsverfahrens und/oder einer eMMC-Systemnotwendigkeit und verfügbarer Ressourcen der normale Puffer 341 als ein Teil des Warteschlangen-Datenpuffers 345 verwendet werden und/oder der Warteschlangen-Datenpuffer 345 kann als Teil des normalen Puffers 341 verwendet werden.
  • Bestimmte Abschnitte eines Einzelspeichers 340 in dem Vorrichtungscontroller 310 können für den normalen Puffer 341 und Warteschlangen-Daten 345 verwendet werden. Alternativ können separate Speicher oder ein Abschnitt eines allgemeinen Pufferspeichers oder ein Zwischenregisterspeicher für den normalen Puffer 341 und Warteschlangen-Daten 345 verwendet werden. Diese Speicherelemente können intern oder extern von dem Vorrichtungscontroller 310 vorgesehen sein.
  • Der normale Puffer 341 wird üblicherweise verwendet, um Daten als Reaktion auf einen ”normalen Befehl”, der einen normalen Lese-/Schreibbefehl anzeigt, zu speichern, während der Warteschlangen-Datenpuffer 345 üblicherweise verwendet wird, um Daten als Reaktion auf einen ”Multi-Warteschlangen-Befehl” zu speichern, der eine Multi-Warteschlangen-Operation gemäß der Ausführungsform des erfinderischen Konzepts anzeigt. In bestimmten Ausführungsformen des erfinderischen Konzepts wird die Größe des Warteschlangen-Datenpuffers 345 gleich der Multi-Warteschlangentiefe N sein.
  • Wie vorstehend beschrieben, können, wenn der Warteschlangen-Datenpuffer 345 separat von dem normalen Puffer 341 vorgesehen ist, Daten entsprechend einem Multi-Warteschlangen-Befehl in dem Warteschlangen-Datenpuffer 345 ”gleichzeitig mit” (d. h. Ausführzeitperioden für entsprechende Befehle werden wenigstens teilweise in einer überlappenden Weise ausgeführt) Daten gespeichert, die in dem normalen Puffer 341 gespeichert werden.
  • 6 zeigt ein konzeptionelles Diagramm, das eine mögliche Herangehensweise einer Multi-Warteschlangen-Leseoperation darstellt, die durch das eMMC-System von 1 gemäß bestimmten Ausführungsformen des erfinderischen Konzepts ausgeführt werden kann. Kollektiv Bezugnehmend auf die 1, 2, 3, 4, 5 und 6 wird angenommen, dass der Host 200 einen Befehlssatz, der Befehlssatzregistereinträge 411, 412, 413 und 414 enthält, an die eMMC 300 über eine Befehlsleitung 102 gleichzeitig mit der Übermittlung der Lesedaten 401, die durch einen ”aktuellen Befehl” (d. h. einen Befehl, der aktuell ausgeführt wird) spezifiziert werden, über den Datenbus 103 zu übermitteln. Auf diese Weise kann eine Befehlswarteschlange für die eMMC 300 wirksam mit einem oder mehreren ”nächsten Befehlen” geladen (oder vorgeladen) werden (d. h. einen oder mehreren sequentiell ausgeführten Befehlen, die dem Abschluss der aktuellen Befehlsausführung folgen), während Daten 401, die mit einem aktuellen Befehl verbunden sind, über den Datenbus 103 kommuniziert werden.
  • Die maximale Anzahl von Befehlsregistereinträgen für einen Multi-Warteschlangen-Satz CS, den der Host 200 an die eMMC 300 senden kann, wird durch die Multi-Warteschlangentiefe N definiert. Unter der Annahme einer Struktur eines in Bezug auf 4 beschriebenen Befehlsregistereintrags kann jeder der Multi-Warteschlangen-Sätze (z. B. 411, 412, 413 und 414) einen Größenbefehl und einen Adressbefehl enthalten. Somit wird bei bestimmten Ausführungsformen angenommen, dass ein Befehlssatz der gleiche wie ein entsprechender Befehlsregistersatz ist, aber dies muss nicht immer der Fall sein.
  • Weiter unter der Annahme der Konfiguration des Befehlsregisters 325 von 3, wird die Datengröße DS1 des Größenbefehls in dem ersten Multi-Warteschlangen-Befehlssatz 411 in dem Datengrößenregister 326-1 gespeichert und wird die Startadresse SA1 des Adressbefehls in dem ersten Multi-Warteschlangen-Befehlssatz 411 in dem Adressregister 327-1 gespeichert. Ebenfalls werden die Datengrößen DS2 des Größenbefehls und die Startadresse SA2 des Adressbefehls bei dem zweiten Multi-Warteschlangen-Befehlssatz 412 in die entsprechenden Register 326-1 bzw. 327-2, und so weiter, gespeichert wie in 6 dargestellt ist.
  • Obwohl in 6 der Klarheit halber nicht dargestellt, kann die eMMC 300 jedes Mal, wenn ein Größenbefehl und ein entsprechender Adressbefehl von dem Host 200 empfangen wird, eine Antwort R1 zu dem Host 200 kommunizieren.
  • Die eMMC 300 kann nun die ersten Daten DAT-a aus dem Speicherelement CE0 des Flashspeichers 370 entsprechend der Datengröße DS1 und der Startadresse SA1 des ersten Multi-Warteschlangen-Befehls 411, die in den Registern 326-1 und 327-1 gespeichert sind, lesen und speichert die ersten Daten DAT-a in dem Warteschlangen-Datenpuffer 345. Die eMMC 300 kann anschließend zweite Daten DAT-b aus dem Speicherelement CE1 entsprechend der Datengröße DS2 und die Startadresse SA2 des zweiten Multi-Warteschlangen-Befehls 412, die in den Registern 326-2 und 327-2 gespeichert sind, lesen und speichert die zweiten Daten DAT-b in den Warteschlangen-Datenpuffer 345, und so weiter, für jeden Multi-Warteschlangen-Befehl in einer seriellen Weise.
  • Alternativ könnten bei bestimmten Ausführungsformen des erfinderischen Konzepts die ersten Daten DAT-a, die zweiten Daten DAT-b, die dritten Daten DAT-c und die vierten Daten DAT-d parallel aus dem Flashspeicher 370 gelesen werden.
  • Wenn die Übermittlung der aktuellen Operationsdaten 401 abgeschlossen ist, kann der Host 200 die Übermittlung der ersten Daten DAT-a, der zweiten Daten DAT b, der dritten Daten DAT-c und der vierten Daten DAT-d von dem Warteschlangen-Datenpuffer 345 empfangen. Beispielsweise kann der Host 200 einen Multi-Warteschlangen-Datenauslesebefehl an die eMMC 300 übertragen, um die in dem Warteschlangen-Datenpuffer 345 gespeicherten Daten zu erhalten. Als Reaktion kann die eMMC 300 sequentiell die ersten Daten DAT-a, die zweiten DAT-b, die dritten Daten DAT-c und die vierten Daten DAT-d, die in den Warteschlangen-Datenpuffer 345 gespeichert sind, an den Host 200 als Reaktion auf einen einzelnen Datenauslesebefehl übertragen. Mit anderen Worten, der Host 200 kann alle in einem bestimmten Warteschlangen-Datenpuffer 345 gespeicherten Daten (DAT-a, DAT-b, DAT-c und DAT-d) als Reaktion auf lediglich einen einzelnen Multi-Warteschlangen-Auslesebefehl erhalten anstatt mehrere normale Datenauslesebefehle anzuwenden, die entsprechend mit den Daten (DAT-a, DAT-b, DAT-c und DAT-d) verbunden sind.
  • 7 zeigt ein Operationsdiagramm, das ferner in einer zeitlichen Art und Weise eine Multi-Warteschlangen-Leseoperation gemäß bestimmter Ausführungsformen des erfinderischen Konzepts darstellt. Um eine Multi-Warteschlangen-Leseoperation auszuführen, überträgt der Host 200 einen Größenbefehl CMD_ds, der eine Größe für durch den eMMC-Controller 310 (S510) zu lesende Daten spezifiziert, und der eMMC-Controller 310 sendet eine entsprechende Antwort R1 zurück an den Host 200 (S515). Der eMMC-Controller 310 speichert anschließend den Datengrößenwert, der durch den Größenbefehl CMD_ds angezeigt wird, in einem Registersatz.
  • Nach Empfangen der Antwort R1 sendet der Host 200 einen Adressbefehl CMD_sa an den eMMC-Controller (S520). Der eMMC-Controller sendet eine entsprechende Antwort R1 (S525) und speichert den Startadressenwert, der durch den Adressbefehl CMD_sa angezeigt wird, in dem Registersatz.
  • Die Kombination (oder gemeinsam ”eine Iteration”) von Operationen S510, S515, S520 und S525 können so oft wiederholt werden, wie durch die Multi-Warteschlangentiefe N des Befehlsregisters 325 zugelassen wird. Mehrere Iterationen können gleichzeitig mit der Kommunikation der mit einem aktuellen Befehl verbundenen Daten über den Datenbus 103 ausgeführt werden.
  • Der eMMC-Controller kann nun einen Multi-Warteschlangen-Lesebefehl an den Flashspeicher 370 senden, der wenigstens eine Datengröße und wenigstens eine entsprechende Startadresse, die in dem Befehlsregister 325 (S530) gespeichert sind, anzeigt. Als Reaktion wird der Flashspeicher 370 die spezifizierten Lesedaten (S540) wiedergewinnen und die Lesedaten aus dem Flashspeicher 370 zu dem Warteschlangen-Datenpuffer 345 (S545) zu laden.
  • Wenn der aktuelle Befehl (z. B. ein normaler Auslesebefehl) abgeschlossen wurde (S550 = JA), kann der Host 200 einen Multi-Warteschlangen-Auslesebefehl CMD_ro an den eMMC-Controller 310 (S555) senden und als Reaktion zu diesem einzelnen (Multi-Warteschlangen) Datenauslesebefehl CMD_ro, kann der eMMC-Controller 310 eine Antwort R1 an den Host (S560) zurückgeben und anschließend alle Daten kommunizieren die in dem Warteschlangen-Datenpuffer (S565) entsprechend einer Multi-Warteschlangen-Leseoperation gespeichert sind.
  • 8, inklusive 8A und 8B, zeigt einen Satz von Operationsdiagrammen, die eine Nennleseoperation, die durch eine eMMC ausgeführt werden kann, mit einer Multi-Warteschlangen-Leseoperation vergleicht, die durch eine eMMC gemäß Ausführungsformen des erfinderischen Konzepts ausgeführt werden kann. 8A stellt eine Nenn- oder herkömmliche ausgeführte Leseoperation dar und 8B stellt eine Multi-Warteschlangen-Leseoperation gemäß einer Ausführungsform des erfinderischen Konzepts dar.
  • Bei der in 8A dargestellten Nennleseoperation kann, wenn ein aktueller Zustand ein Datenübermittlungszustand ist, d. h. während Daten durch einen Datenbus (610) übermittelt werden, ein Host nicht einen Befehl zum Lesen oder Schreiben von Daten zu einem Flashspeicher mit Ausnahme eines besonderen Befehls, z. B. eines Stoppbefehls oder eines Abbruchbefehls zum Stoppen eines vorangegangenen Befehls, senden. Erst nachdem die Datenübermittlung 610 abgeschlossen ist, kann der Host einen normalen Lesebefehl 620 an die eMMC senden. Die eMMC liest Daten aus dem Flashspeicher als Reaktion auf die normalen Datenlesebefehle 621 und 623 (tR oder 625) und übermittelt die Daten an den Host (627). Während die eMMC die Daten aus dem Flashspeicher (625) liest und die Daten an den Host (627) überträgt, kann der Host nicht einen nachfolgenden Lesebefehl senden. Dadurch muss der Host darauf warten, dass die Daten vollständig empfangen sind bevor der Lesebefehl gesendet wird.
  • Allerdings sendet der Host 200 mit Bezug auf 8B einen Multi-Warteschlangen-Lesebefehlssatz 720 an die eMMC 300 selbst während der Übermittlung von Daten 710. Im Einzelnen sendet der Host 200 einen Größenbefehl CMD57 oder 721 an die eMMC 300 und die eMMC 300 sendet an den Host 200 eine Antwort R1 oder 722 zu dem Größenbefehl CMD57 oder 721. Als Nächstes sendet der Host 200 einen Adressbefehl CMD58 oder 723 an die eMMC 300 und die eMMC 300 sendet an den Host 200 eine Antwort R1 oder 724 zu dem Adressenspezifizierungsbefehl CMD58 oder 723. Hier entspricht der Größenbefehl CMD57 oder 721 dem in 4B dargestellten Größenbefehl 430 und der Adressbefehl CMD58 oder 723 entspricht dem in 4C dargestellten Adressbefehl 440.
  • Der Host 200 kann einen Multi-Wartschlangen-Lesebefehlssatz, der die Befehle CMD57 und CMD58 enthält, an die eMMC 300 n mal senden. Die eMMC 300 liest Daten aus dem Flashspeicher 370 als Reaktion auf den Multi-Warteschlangen-Lesebefehlssatz 720 und speichert die Daten in den Warteschlangen-Datenpuffer 345. Unterdessen werden die übermittelten Daten 710 in dem normalen Puffer 341 gespeichert.
  • Wenn die Übermittlung der vorangegangenen Daten 710 abgeschlossen ist, sendet der Host 200 einen Datenauslesebefehl CMD59 oder 726 an die eMMC 300, um Daten 731 bis 733 aus dem Warteschlangen-Datenpuffer 345 auszulesen. Die eMMC 300 sendet eine Antwort R1 oder 726 an den Host 200 als Reaktion auf den Datenauslesebefehl CMD59 oder 726 und überträgt die Daten 731 bis 733, die in dem Warteschlangen-Datenpuffer 345 gespeichert sind, an den Host 200 über den Datenbus 103.
  • 9 zeigt ein Operationsdiagramm, das eine Multi-Warteschlangen-Schreiboperation gemäß bestimmter Ausführungsformen des erfinderischen Konzepts darstellt. Bezugnehmend auf 2, 3 und 9 überträgt der Host 200 einen Größenbefehl CMD_ds, der die Größe der zu schreibenden Daten spezifiziert, an die eMMC 300 mit dem eMMC-Controller 310 (S610). Der eMMC-Controller sendet eine entsprechende Antwort R1 an den Host 200 (S615) und speichert einen Datengrößenwert entsprechend dem Größenbefehl CMD_ds in das Befehlsregister 325.
  • Der Host 200 sendet beim Empfang der Antwort R1 zu dem Größenbefehl CMD_ds einen Adressbefehl CMD_sa an den eMMC-Controller 310 (S620) und der eMMC-Controller 310 sendet eine entsprechende Antwort R1 an den Host 200 (S625) und speichert den Startadressenwert entsprechend dem Adressbefehl CMD_sa in das Befehlsregister 325.
  • Wie zuvor können Operationen S610, S615, S620 und S625 so oft wiederholt werden wie die maximale Multi-Warteschlangentiefe N es zulässt, und können ausgeführt werden, selbst während Daten, die durch eine aktuelle Operation angezeigt werden, über den Datenbus 103 kommuniziert werden. Und Operationen S610, S615, S620 und S625 können ausgeführt werden, selbst während der eMMC-Controller 310 den Befehl, der die aktuelle Operation spezifiziert, zu dem Flashspeicher 370 (S630) sendet und/oder während der Flashspeicher 370 die mit dem aktuellen Schreibbefehl (S640) verbundenen Daten programmiert. Somit können die mit einer aktuellen Adresse verbundenen Schreibdaten übermittelt werden und/oder in dem Flashspeicher 370 mit dem normalen Puffer 341 programmiert werden.
  • Sobald die Übermittlung der aktuellen Schreibdaten abgeschlossen ist (S650 = JA), kann der Host 200 einen Multi-Warteschlangen-Dateneinschreibebefehl CMD_wr an den eMMC-Controller 310 (S655) senden. Als Reaktion auf den Multi-Warteschlangen-Dateneinschreibebefehl CMD_wr sendet der eMMC-Controller 310 eine entsprechende Antwort R1 (S660) und anschließend kann der Host 200 alle mit der Multi-Warteschlangen-Schreiboperation verbundenen Schreibdaten zu dem eMMC-Controller 310 (S665) kommunizieren.
  • Der eMMC-Controller 310 wird alle Schreibdaten in den Warteschlangen-Datenpuffer 345 (S670) speichern. Der eMMC-Controller 310 kann anschließend einen Programmbefehl zu dem Flashspeicher 370 kommunizieren, der die in dem Warteschlangen-Datenpuffer 345 (S675) gespeicherten Schreibdaten programmieren wird und anschließend die Schreibdaten zu dem Flashspeicher (S680) programmiert.
  • 10, inklusive 10A und 10B, zeigt einen Satz von Operationsdiagrammen, die eine Nennleseoperation, die durch eine eMMC ausgeführt werden kann, mit einer Multi-Warteschlangen-Operation vergleichen, die durch eine eMMC gemäß Ausführungsformen des erfinderischen Konzepts ausgeführt werden kann. 10A stellt eine Nenn- oder herkömmliche Schreiboperation dar und 10B zeigt eine Multi-Warteschlangen-Schreiboperation.
  • Bei der in 10A dargestellten Nennschreiboperation sendet ein Host nach Abschluss der Übermittlung der vorangegangenen Daten 811 an eine eMMC einen Schreibbefehl CMD oder 821 und Daten DAT-a oder 812 entsprechen dem Schreibbefehl CMD oder 821. Die eMMC programmiert die Daten DAT-a oder 812 in den Flashspeicher (tPRG1). Erst wenn die Daten DAT-a oder 812 vollständig programmiert sind, ist die Übermittlung der Daten DAT-a oder 812 abgeschlossen. Dementsprechend steht der Host bereit bis das Programmieren der Daten DAT-a abgeschlossen ist und sendet erst dann einen weiteren Schreibbefehl CMD oder 822 und die Daten DAT-b oder 813 entsprechend dem Schreibbefehl 822 zu der eMMC.
  • Allerdings sendet der Host 200 mit Bezug auf 10B Multi-Warteschlangen-Schreibbefehlssätze 841 bis 844 zu der eMMC 300, selbst während der Übermittlung der vorangegangenen Daten 831. Die Multi-Warteschlangen-Schreibbefehlssätze 841 bis 844 können einen Größenspezifizierungsbefehl und einen Adressenspezifizierungsbefehl, wie in 4A bis 4C dargestellt, enthalten.
  • Die eMMC 300 speichert die Multi-Warteschlangen-Schreibbefehlssätze 841 bis 844 in dem Befehlsregister 325. Wenn die Übermittlung und die Programmierung (tPROG) der vorangegangenen Daten 831 abgeschlossen ist, sendet der Host 200 an die eMMC 300 einen Dateneinschreibebefehl CMD oder 845 und die Daten DAT-a, DAT-b, DAT-c und DAT-d entsprechend dem Dateneinschreibebefehl 845. Die eMMC 300 speichert die Daten DAT-a, DAT-b, DAT-c und DAT-d in dem Warteschlangen-Datenpuffer 345 und programmiert die Daten DAT-a, DAT-b, DAT-c und DAT-d, die in dem Warteschlangen-Datenpuffer 345 gespeichert sind, in den Flashspeicher 370.
  • Wie vorstehend beschrieben, kann gemäß Ausführungsformen des erfinderischen Konzepts ein Host einen nächsten Lese-/Schreibbefehl senden, selbst während mit einem aktuellen Befehl verbundene Daten übermittelt werden, wodurch es einer eMMC ermöglicht wird, Vorbereitungen für die Ausführungen eines nächsten Lese-/Schreibbefehls durchzuführen. Dadurch wird die Lese-/Schreibperformance der eMMC verbessert.
  • Während das erfinderische Konzept insbesondere mit Bezug auf beispielhafte Ausführungsformen davon gezeigt und beschrieben wurde, wird von den Fachleuten verstanden werden, dass verschiedene Veränderungen in den Ausprägungen und Einzelheiten darin durchgeführt werden können ohne vom Umfang des erfinderischen Konzepts, wie es durch die nachfolgenden Ansprüche definiert ist, abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • http://www.jedec.org [0023]

Claims (20)

  1. Embedded Multimedia Card (eMMC), aufweisend: einen Flashspeicher; und einen eMMC-Controller, der eine Operation des Flashspeichers steuert und aufweist: ein Befehlsregister, das aus einem Host einen Befehlssatz empfängt, der eine Operation definiert, die zweite Daten simultan mit einer Übermittlung von durch eine aktuelle Operation spezifizierten ersten Daten spezifiziert; einen ersten Speicher, der die ersten Daten speichert; und einen zweiten Speicher, der die zweiten Daten speichert.
  2. eMMC nach Anspruch 1, wobei der Befehlssatz über eine Befehlsleitung empfangen wird, gleichzeitig mit der Übermittlung der ersten Daten über einen Datenbus.
  3. eMMC nach Anspruch 2, wobei das Befehlsregister eine Multi-Warteschlangentiefe der maximalen Größe N aufweist und derart konfiguriert ist, dass es den Befehlssatz empfingt, der eine Anzahl von Befehlssatzeinträgen bis zu der maximalen Größe N enthält.
  4. eMMC nach Anspruch 3, wobei jeder Befehlsregistereintrag in der Anzahl der Befehlsregistereinträge aufweist: einen eine Größe von Daten spezifizierenden Größenbefehl; und eine Startadresse für die Daten spezifizierenden Adressbefehl.
  5. eMMC nach Anspruch 4, wobei die nächste Operation eine Multi-Warteschlangen-Leseoperation ist, wobei der Größenbefehl eine Größe der von dem Flashspeicher abgerufenen Lesedaten spezifiziert und der Adressbefehl eine Startadresse für die Lesedaten in dem Flashspeicher spezifiziert.
  6. eMMC nach Anspruch 4, wobei die nächste Operation eine Multi-Warteschlangen-Schreiboperation ist, wobei der Größenbefehl eine Größe von in den Flashspeicher zu schreibenden Schreibdaten spezifiziert und der Adressbefehl eine Startadresse für die Schreibdaten in dem Flashspeicher spezifiziert.
  7. eMMC nach Anspruch 3, wobei der Flashspeicher ein Extended Card Specific Data(CSD)-Register enthält, das Informationen speichert, die dem Host die Multi-Warteschlangentiefe anzeigt.
  8. eMMC nach Anspruch 3, wobei der Flashspeicher ein Extended Card Specific Data(CSD)-Register enthält und der eMMC-Controller zusätzlich ein Hoststeuerregister separat von dem CDS-Register enthält, das Informationen speichert, die dem Host die Multi-Warteschlangentiefe anzeigt.
  9. eMMC nach Anspruch 1, wobei der erste Speicher und der zweite Speicher separat durch separate Speichervorrichtungen vorgesehen sind.
  10. Verfahren zum Betreiben einer einen Flashspeicher enthaltenden embedded Multimedia Card (eMMC), wobei die eMMC mit einem Host über eine Befehlsleitung und einen Datenbus verbunden ist, wobei das Verfahren aufweist: Übertragen von in einem ersten Speicher der eMMC gespeicherten ersten Daten an den Host über den Datenbus als Reaktion auf einen aktuellen Befehl; und gleichzeitig mit der Übermittlung der ersten Daten, Kommunizieren eines Befehlssatzes, der eine nächste Operation definiert, die zweite Daten spezifiziert, von dem Host an die eMMC über die Befehlsleitung und Speichern des Befehlssatzes in einem Befehlsregister in der eMMC.
  11. Verfahren nach Anspruch 10, wobei die nächste Operation eine Multi-Warteschlangen-Leseoperation ist und die zweiten Daten Lesedaten sind, die temporär in einem zweiten Speicher der eMMC gespeichert werden, der von dem ersten Speicher separat bestimmt wird.
  12. Verfahren nach Anspruch 11, ferner aufweisend: Kommunizieren eines Datenauslesebefehls aus dem Host an die eMMC über die Befehlsleitung; und als Reaktion auf den Datenauslesebefehl und bei der nachfolgenden Übermittlung der ersten Daten werden alle der in dem zweiten Speicher gespeicherten zweiten Daten an den Host übermittelt.
  13. Verfahren nach Anspruch 10, wobei das Befehlsregister eine Multi-Warteschlangentiefe von einer maximalen Größe N ist und derart konfiguriert ist, dass es den Befehlssatz empfängt, der eine Anzahl von Befehlssatzeinträgen bis zu der maximalen Größe von N enthält.
  14. Verfahren nach Anspruch 13, wobei jeder Befehlsregistereintrag der Anzahl der Befehlsregistereinträge aufweist: einen eine Größe von Dateien spezifizierenden Größenbefehl; und einen eine Startadresse für die Daten spezifizierenden Adressbefehl.
  15. Verfahren nach Anspruch 14, wobei die nächste Operation eine Multi-Warteschlangen-Leseoperation ist, wobei der Größenbefehl eine Größe von aus dem Flashspeicher abzurufenden Lesedaten spezifiziert und der Adressbefehl eine Startadresse für die Lesedaten in dem Speicher spezifiziert.
  16. Verfahren nach Anspruch 10, wobei der Flashspeicher ein Extended Card Specific Data(CSD)-Register enthält, das Informationen speichert, die dem Host die Multi-Warteschlangentiefe anzeigen, und das Verfahren ferner aufweist: Empfangen eines SEND_EXT_CSD-Befehls von dem Host in der eMMC; und Übermitteln von Daten in einem Extended Card Specific Data(CSD)-Register an den Host als Reaktion auf den SEND_EXT_CSD-Befehl.
  17. Verfahren zum Betreiben einer einen Flashspeicher enthaltenden embedded Multimedia Card (eMMC), wobei die eMMC mit einem Host über eine Befehlsleitung und einen Datenbus verbunden ist, wobei das Verfahren aufweist: Verwenden von zwei normalen Lese-/Schreiboperationen, um sequentiell eine erste Lese-/Schreiboperation und anschließend eine zweite Lese-/Schreiboperation der Reihe nach auszuführen, wobei jede normale Lese-/Schreiboperation eine Übermittlung von wie in dem Flashspeicher gespeicherten Daten verursacht; andernfalls Verwenden einer einzelnen Multi-Warteschlangen-Lese-/Schreiboperation, um die erste Lese-/Schreiboperation gleichzeitig mit der zweiten Lese-/Schreiboperation auszuführen, wobei die Multi-Warteschlangen-Lese-/Schreiboperation eine Übermittlung von wie in dem Flashspeicher gespeicherten Daten verursacht.
  18. Verfahren nach Anspruch 17, ferner aufweisend: Übermitteln von in einem ersten Speicher der eMMC gespeicherten ersten Daten an den Host über den Datenbus als Reaktion auf einen ersten Befehl; und gleichzeitig mit der Übermittlung der ersten Daten, Kommunizieren eines Befehlssatzes, der eine zweite Operation definiert, die zweite Daten spezifiziert, von dem Host an die eMMC über die Befehlsleitung und Speichern des Befehlssatzes in einem Befehlsregister in der eMMC.
  19. Verfahren nach Anspruch 18, wobei das Befehlsregister eine Multi-Warteschlangentiefe von einer maximalen Größe N aufweist und derart konfiguriert ist, dass es den Befehlssatz empfängt, der eine Anzahl von Befehlssatzeinträgen bis zu der maximalen Größe N enthält.
  20. Verfahren nach Anspruch 19, wobei jeder Befehlsregistereintrag der Anzahl der Befehlsregistereinträge aufweist: einen eine Größe von Daten spezifizierenden Größenbefehl; und einen eine Startadresse für die Daten spezifizierenden Adressbefehl.
DE102013016993.3A 2012-09-14 2013-10-14 Embedded Multimedia Card (eMMC), einen Host steuernde eMMC und Verfahren zum Betreiben eines eMMC-Systems Active DE102013016993B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2012-0102483 2012-09-14
KR1020120102483A KR101919903B1 (ko) 2012-09-14 2012-09-14 임베디드 멀티미디어 카드, 이를 제어하는 호스트, 및 이들의 동작 방법

Publications (2)

Publication Number Publication Date
DE102013016993A1 true DE102013016993A1 (de) 2014-04-17
DE102013016993B4 DE102013016993B4 (de) 2021-10-28

Family

ID=50181886

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102013110086.4A Withdrawn DE102013110086A1 (de) 2012-09-14 2013-09-13 Embedded Multimedia Card (eMMC), einen Host steuernde eMMC und Verfahren zum Betreiben eineseMMC-Systems
DE102013016993.3A Active DE102013016993B4 (de) 2012-09-14 2013-10-14 Embedded Multimedia Card (eMMC), einen Host steuernde eMMC und Verfahren zum Betreiben eines eMMC-Systems

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE102013110086.4A Withdrawn DE102013110086A1 (de) 2012-09-14 2013-09-13 Embedded Multimedia Card (eMMC), einen Host steuernde eMMC und Verfahren zum Betreiben eineseMMC-Systems

Country Status (5)

Country Link
US (1) US9792072B2 (de)
JP (1) JP6622446B2 (de)
KR (1) KR101919903B1 (de)
CN (1) CN103677665B (de)
DE (2) DE102013110086A1 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102111741B1 (ko) * 2014-01-10 2020-05-15 삼성전자주식회사 임베디드 멀티미디어 카드 및 이의 동작 방법
CN104461754B (zh) * 2014-12-10 2018-06-19 福州瑞芯微电子股份有限公司 一种监控eMMC的方法和装置
CN104409099B (zh) * 2014-12-15 2017-12-29 成都傅立叶电子科技有限公司 基于FPGA的高速eMMC阵列控制器
US10067688B2 (en) * 2015-01-23 2018-09-04 Qualcomm Incorporated Storage resource management in virtualized environments
CN106155580B (zh) * 2015-04-27 2019-04-12 华为技术有限公司 一种基于嵌入式多媒体卡eMMC的存储方法及***
US10318193B2 (en) 2015-09-14 2019-06-11 Sandisk Technologies Llc Systems and methods of command authorization
US9880772B2 (en) * 2015-09-21 2018-01-30 Micron Technology, Inc. Systems and methods for providing file information in a memory system protocol
KR102641107B1 (ko) * 2016-07-29 2024-02-27 삼성전자주식회사 스토리지 장치, 이를 포함하는 시스템 및 그 동작 방법
TWI661352B (zh) * 2016-09-22 2019-06-01 慧榮科技股份有限公司 資料儲存裝置及其資料寫入方法
US10585624B2 (en) * 2016-12-01 2020-03-10 Micron Technology, Inc. Memory protocol
CN108228405A (zh) * 2016-12-15 2018-06-29 北京兆易创新科技股份有限公司 一种数据传输方法及装置
CN107729140B (zh) * 2017-09-22 2020-07-28 华南理工大学 一种并行实现多个eMMC主机接口命令排队功能的装置及方法
CN109977041B (zh) * 2017-12-27 2024-05-24 恩智浦有限公司 与嵌入式多媒体卡装置通信的主机装置
US10318179B1 (en) * 2017-12-27 2019-06-11 Nxp B.V. Host device to embedded multi-media card device communication
US10817363B2 (en) 2018-03-19 2020-10-27 Micron Technology, Inc. Health characteristics of a memory device
CN108958950A (zh) * 2018-05-29 2018-12-07 联发科技(新加坡)私人有限公司 电子存储设备的任务管理方法、主机和存储装置
CN111176566B (zh) * 2019-12-25 2023-09-19 山东方寸微电子科技有限公司 一种支持queue命令的eMMC读写控制方法及存储介质
US11029958B1 (en) * 2019-12-28 2021-06-08 Intel Corporation Apparatuses, methods, and systems for configurable operand size operations in an operation configurable spatial accelerator
JP2022010951A (ja) 2020-06-29 2022-01-17 キオクシア株式会社 半導体記憶装置

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0797319B2 (ja) * 1986-03-11 1995-10-18 日本電気株式会社 マイクロコンピュータシステム
US6081860A (en) * 1997-11-20 2000-06-27 International Business Machines Corporation Address pipelining for data transfers
US6323867B1 (en) * 1999-04-26 2001-11-27 Mediaq Inc. Parsing graphics data structure into command and data queues
US6496192B1 (en) * 1999-08-05 2002-12-17 Matsushita Electric Industrial Co., Ltd. Modular architecture for image transposition memory using synchronous DRAM
US8296467B2 (en) 2000-01-06 2012-10-23 Super Talent Electronics Inc. Single-chip flash device with boot code transfer capability
JP2002082830A (ja) * 2000-02-14 2002-03-22 Mitsubishi Electric Corp インターフェイス回路
US6785793B2 (en) 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
JP2003122702A (ja) 2001-10-10 2003-04-25 Hitachi Communication Technologies Ltd 記憶装置
KR20040051608A (ko) * 2001-10-16 2004-06-18 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 컴퓨터 시스템 및 컴퓨터 시스템의 작동 방법
KR100450080B1 (ko) * 2001-11-13 2004-10-06 (주)지에스텔레텍 유에스비기반의 이동형 저장장치 및 그 제어방법
JP4082913B2 (ja) * 2002-02-07 2008-04-30 株式会社ルネサステクノロジ メモリシステム
JP4460867B2 (ja) * 2003-09-26 2010-05-12 東芝ストレージデバイス株式会社 インターフェース装置及びパケット転送方法
KR100626371B1 (ko) * 2004-03-30 2006-09-20 삼성전자주식회사 캐쉬 읽기 동작을 수행하는 비휘발성 메모리 장치, 그것을포함한 메모리 시스템, 그리고 캐쉬 읽기 방법
US7366865B2 (en) * 2004-09-08 2008-04-29 Intel Corporation Enqueueing entries in a packet queue referencing packets
KR100626391B1 (ko) * 2005-04-01 2006-09-20 삼성전자주식회사 원낸드 플래시 메모리 및 그것을 포함한 데이터 처리시스템
JP2007026041A (ja) 2005-07-15 2007-02-01 Renesas Technology Corp 情報処理装置
KR100875978B1 (ko) 2007-02-06 2008-12-26 삼성전자주식회사 메모리 카드 및 그것을 포함한 메모리 시스템
US20090094678A1 (en) 2007-10-05 2009-04-09 Nokia Corporation Mulimode device
KR20110010770A (ko) 2008-05-13 2011-02-07 램버스 인코포레이티드 메모리 디바이스를 위한 단편화 프로그램 명령
KR101541344B1 (ko) 2008-12-05 2015-08-03 삼성전자주식회사 메모리 장치 및 메모리 장치의 제어 방법
KR101505005B1 (ko) 2008-12-05 2015-03-24 삼성전자주식회사 메모리 장치 및 메모리 장치의 관리 방법
WO2010077414A1 (en) * 2008-12-09 2010-07-08 Rambus Inc. Non-volatile memory device for concurrent and pipelined memory operations
US8341338B2 (en) 2009-05-06 2012-12-25 Samsung Electronics Co., Ltd. Data storage device and related method of operation
TWI454906B (zh) 2009-09-24 2014-10-01 Phison Electronics Corp 資料讀取方法、快閃記憶體控制器與儲存系統
TW201111986A (en) 2009-09-29 2011-04-01 Silicon Motion Inc Memory apparatus and data access method for memories
US20110296131A1 (en) 2010-05-31 2011-12-01 Samsung Electronics Co., Ltd Nonvolatile memory system and the operation method thereof
CN103119573A (zh) * 2010-09-21 2013-05-22 三菱电机株式会社 Dma控制器以及数据读出装置
JP4966404B2 (ja) 2010-10-21 2012-07-04 株式会社東芝 メモリ制御装置、記憶装置、及びメモリ制御方法
US20120124272A1 (en) * 2010-11-12 2012-05-17 Ememory Technology Inc. Flash memory apparatus
JP2012128644A (ja) 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
CN102082798B (zh) 2011-01-21 2013-04-17 华南理工大学 基于sdio接口的多媒体信息协处理设备及其通信方法
KR101887688B1 (ko) 2011-02-25 2018-08-10 가부시끼 가이샤 구보다 짚 배출 세단 장치, 및 탈곡 장치
US20130019053A1 (en) 2011-07-14 2013-01-17 Vinay Ashok Somanache Flash controller hardware architecture for flash devices
CN102663471B (zh) * 2012-04-17 2015-09-23 惠州Tcl移动通信有限公司 基于emmc芯片的移动终端安全信息存储方法及***
CN102883471B (zh) 2012-08-30 2016-06-29 锐迪科科技有限公司 单芯片多卡多待手机及其冲突解决方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
http://www.jedec.org

Also Published As

Publication number Publication date
US9792072B2 (en) 2017-10-17
KR101919903B1 (ko) 2018-11-19
DE102013016993B4 (de) 2021-10-28
KR20140035774A (ko) 2014-03-24
DE102013110086A1 (de) 2014-03-20
DE102013110086A8 (de) 2014-05-15
CN103677665B (zh) 2018-05-18
JP2014059872A (ja) 2014-04-03
US20140082267A1 (en) 2014-03-20
JP6622446B2 (ja) 2019-12-18
CN103677665A (zh) 2014-03-26

Similar Documents

Publication Publication Date Title
DE102013016993B4 (de) Embedded Multimedia Card (eMMC), einen Host steuernde eMMC und Verfahren zum Betreiben eines eMMC-Systems
DE102013110085B4 (de) Nicht-flüchtige speichervorrichtung
DE112014006118B4 (de) Spekulatives Vorab-Holen von in einem Flash-Speicher gespeicherten Daten
DE102018105943A1 (de) Kontextbewusste dynamische Befehlsplanung für ein Datenspeichersystem
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE112015003397T5 (de) Vorrichtung, System und Verfahren zur Bestimmung von Vergleichsinformationen basierend auf Speicherdaten
DE112019005511T5 (de) Halten von schreibbefehlen in gezonten namensräumen
DE102013016609A1 (de) Vorrichtung und Verfahren für ein Storage Class Memory mit niedrigem Energieverbrauch, niedriger Latenz und hoher Kapazität
DE102011086098A1 (de) Parallele Speicherlese- und Speicherschreib-Operationen in einem Speicher mit serieller Schnittstelle
DE112015003540T5 (de) Zwischenspeichertechnologien unter Einsatz von Datenkomprimierung
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE102017120787A1 (de) Verfahren und Vorrichtung zum Entladen von Datenverarbeitung in Hybrid-Speichervorrichtungen
DE102020211544A1 (de) Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben
DE102008008196A1 (de) Speicherkarte, Speichersystem und Verfahren zum Betreiben eines Speichersystems
DE112017005782T5 (de) Warteschlange für Speichervorgänge
DE112010003762T5 (de) Flash-Speicher-Steuereinheit
DE112020003004T5 (de) Dma-scatter- und gather-operationen für nicht zusammenhängenden speicher
DE112020005395T5 (de) Kapazitätserweiterung für speicher-untersysteme
DE102020108086A1 (de) Nichtflüchtige Speichervorrichtung, Controller und Speichersystem
DE102020115970B3 (de) Befehlsoptimierung durch intelligente schwellwertdetektion
DE102017119065B4 (de) Aktualisieren eines Speichers
DE102018116544A1 (de) Speichervorrichtung, die eine interne operation vorübergehend aussetzt, um eine kurze lesereaktionszeit auf leseforderungen von einem host zu ermöglichen
DE102010006148A1 (de) Verfahren zum Reagieren auf einen Befehl zum Löschen einer Datei und Datenspeichervorrichtung
DE102017128938A1 (de) Überlappungs-Schreibsysteme für nichtflüchtige Kreuzpunktspeichervorrichtungen
DE102022101607A1 (de) Verwaltung der hostspeicherpufferzuweisung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R088 Exclusive licence registered