DE112016004148T5 - Systeme und Verfahren zur Befehlsautorisierung - Google Patents

Systeme und Verfahren zur Befehlsautorisierung Download PDF

Info

Publication number
DE112016004148T5
DE112016004148T5 DE112016004148.9T DE112016004148T DE112016004148T5 DE 112016004148 T5 DE112016004148 T5 DE 112016004148T5 DE 112016004148 T DE112016004148 T DE 112016004148T DE 112016004148 T5 DE112016004148 T5 DE 112016004148T5
Authority
DE
Germany
Prior art keywords
command
mode
instruction
memory
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112016004148.9T
Other languages
English (en)
Inventor
Ronen Haen
Shmuel Cohen
Alon Marcu
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.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
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 SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of DE112016004148T5 publication Critical patent/DE112016004148T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0661Format or protocol conversion 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Abstract

Eine Vorrichtung enthält einen nichtflüchtigen Speicher und eine mit dem nichtflüchtigen Speicher gekoppelte Steuereinrichtung. Die Vorrichtung kann entsprechend einem Modus konfiguriert sein, bei dem die Ausführung eines bestimmten Befehls autorisiert ist, während die Vorrichtung in dem Modus konfiguriert ist. Während sich die Vorrichtung in dem Modus befindet, kann sie die Ausführung des während des Modus auftretenden Befehls autorisieren.

Description

  • Gebiet der Offenbarung
  • Diese Offenbarung bezieht sich generell auf eine Befehlsautorisierung.
  • Hintergrund
  • Nichtflüchtige Datenspeichervorrichtungen, wie eingebettete Speichervorrichtungen und entfernbare Speichervorrichtungen (beispielsweise entfernbare USB-(universelle Serienbus-) -Flashspeichervorrichtungen und andere entfernbare Speicherkarten) sind für eine gesteigerte Transportierbarkeit von Daten- und Softwareanwendungen zugelassen worden. Anwender von nichtflüchtigen Datenspeichervorrichtungen stützen sich in zunehmendem Maße auf die nichtflüchtigen Speichervorrichtungen, um eine große Datenmenge zu speichern und für einen schnellen Zugriff darauf zu sorgen.
  • Viele Datenspeichervorrichtungen können in einer Mehrzahl von verschiedenen Moden arbeiten. Gewisse Datenspeichervorrichtungen können beispielsweise in einem Befehls-Schlangenmodul betreibbar sein, wenn eine Befehlsschlange freigegeben und nicht leer ist. Jedem Operationsmodus kann ein Satz von Operationen zugehörig sein, die autorisiert (beispielsweise zugelassen) werden, um durch die Datenspeichervorrichtung ausgeführt zu werden. Der Satz von autorisierten Befehlen kann sämtliche Befehle einschließen, die durch die Datenspeichervorrichtung erkannt werden. Dies bedeutet, dass einige Befehle zur Ausführung während des Betriebs in besonderen Moden nicht autorisiert sein können. Um imstande zu sein, einen nichtautorisierten Befehl auszuführen, muss die Datenspeichervorrichtung den Betriebsmodus verlassen. Während des Arbeitens im Befehlsschlangenmodus kann eine Datenspeichervorrichtung zur Ausführung eines Befehls, der für die Ausführung im Befehlsschlangenmodus nicht autorisiert ist, den Befehlsschlangenmodus verlassen müssen, beispielsweise durch Leeren der Befehlsschlange sämtlicher schwebender Befehle (ohne Ausführung der schwebenden Befehle) oder durch Ausführen jedes der schwebenden Befehle in der Befehlsschlange, um die Befehlsschlange zu leeren. Nachdem die Befehlsschlange geleert ist, kann die Vorrichtung imstande sein, Modi zu ändern und Befehle auszuführen, die in dem Befehlsschlangenmodus nicht autorisiert sind. Das Leeren der Befehlsschlange der schwebenden Befehle oder das Ausführen sämtlicher schwebender Befehle in der Befehlsschlange verzögert das Ausführen eines Befehls, der im Befehlsschlangenmodus nicht autorisiert ist.
  • Figurenliste
    • 1 ist ein Blockdiagramm eines besonderen veranschaulichenden Beispiels eines Systems, welches eine Datenspeichervorrichtung enthält, die zur Autorisierung der Ausführung eines nichtautorisierten Befehls betreibbar ist;
    • 2 ist ein besonderes veranschaulichendes Beispiel der Operation der Datenspeichervorrichtung von 1;
    • 3 ist ein Ablaufdiagramm eines besonderen veranschaulichenden Beispiels eines Verfahrens zur Autorisierung der Ausführung eines nichtautorisierten Befehls; und
    • 4 ist ein Ablaufdiagramm des besonderen veranschaulichenden Beispiels eines Verfahrens zum Senden einer Angabe, dass die Ausführung eines nichtautorisierten Befehls autorisiert ist.
  • Detaillierte Beschreibung
  • Besondere Aspekte der vorliegenden Offenbarung werden unten unter Bezugnahme auf die Zeichnungen beschrieben. In der Beschreibung sind gemeinsame Merkmale durch gemeinsame Bezugszeichen bezeichnet. Obwohl hier unter Bezugnahme auf eine Datenspeichervorrichtung gewisse Beispiele beschrieben werden, sollte ersichtlich sein, dass die hier beschriebenen Verfahren bzw. Techniken auf andere Realisierungen bzw. Implementierungen anwendbar sind. Ferner ist einzusehen, dass gewisse Ordnungsterme (beispielsweise „erste“ oder „zweite“) zur leichten Bezugnahme vorgesehen sein können und nicht notwendigerweise physikalische Charakteristiken oder eine Ordnung implizieren. Daher gibt ein Ordnungsbegriff, wie er hier verwendet wird, (beispielsweise „erste“, „zweite“, „dritte“, etc.), zur Modifizierung eines Elements, wie einer Struktur, einer Komponente, einer Operation bzw. eines Betriebs, etc. nicht notwendigerweise eine Priorität oder Rangordnung des Elements in Bezug auf ein anderes Element an, sondern unterscheidet vielmehr das Element von einem anderen Element, welches denselben Namen (aber für die Verwendung des Ordnungsbegriffs) aufweist. Außerdem können, wie hier verwendet, unbestimmte Artikel („ein“ und „eine“) „ein oder mehrere“ anstatt „ein“ bzw. „eine“ bezeichnen. Ferner kann eine Operation, die „auf der Grundlage“ von einem Zustand oder Ereignis ausgeführt wird, auch auf der Grundlage von einem oder mehreren anderen Zuständen bzw. Bedingungen oder Ereignissen ausgeführt sein, die nicht explizit angegeben sind. Wie hier verwendet, kann „beispielhaft“ ein Beispiel, eine Implementierung und/oder einen Aspekt bezeichnen und sollte nicht als beschränkend oder als ein Hinweis auf eine Präferenz oder ein bevorzugtes Beispiel, eine bevorzugte Implementierung und/oder einem bevorzugten Aspekt ausgelegt werden.
  • Die vorliegende Offenbarung beschreibt Systeme und Verfahren zum Autorisieren der Ausführung von besonderen Befehlen, während sich eine Datenspeichervorrichtung in einem ersten Modus befindet, wie in einem Befehlsschlangenmodus. Während des Arbeitens im ersten Modus (beispielsweise während eine Befehlsschlange freigegeben und belegt ist) kann die Datenspeichervorrichtung von einer Zugriffsvorrichtung, wie einer Hostvorrichtung einen Hinweis empfangen, um die Ausführung eines bestimmten bzw. besonderen Befehls zu autorisieren (beispielsweise zuzulassen), der während des Betriebs im ersten Modus nicht autorisiert ist (beispielsweise eines nicht autorisierten bzw. unautorisierten Befehls). Auf den Hinweis hin kann die Datenspeichervorrichtung die Ausführung des besonderen Befehls temporär autorisieren, während sie sich im ersten Modus befindet. Zur Veranschaulichung kann die Datenspeichervorrichtung eine Anordnung von Bits aufrechterhalten, wobei jedes Bit einem anderen Befehl entspricht. Der Wert eines bestimmten Bits kann angeben, ob ein bestimmter entsprechender Befehl während des Betriebs im ersten Modus als autorisiert oder nichtautorisiert kategorisiert ist. Um die Ausführung des bestimmten Befehls (temporär) zu autorisieren, kann die Datenspeichervorrichtung einen Bitwert entsprechend dem bestimmten Befehl von einem ersten Wert (z.B. einer logischen Null) in einen zweiten Wert (beispielsweise eine logische Eins) ändern. Nach Ausführen des bestimmten Befehls während des Arbeitens im ersten Modus kann die Datenspeichervorrichtung den Bitwert entsprechend dem bestimmten Befehl von dem zweiten Wert (beispielsweise der logischen Eins) in den ersten Wert (beispielsweise die logische Null) ändern, um den bestimmten Befehl als unautorisiert (das heißt verboten) zu kategorisieren. Somit ermöglicht die vorliegende Offenbarung einer im ersten Modus (beispielsweise dem Befehlsschlangenmodus) konfigurierten Vorrichtung, einen ansonsten nicht autorisierten Befehl zur Ausführung temporär zu autorisieren, ohne von dem ersten Modus in den zweiten Modus zu wechseln (beispielsweise durch Leeren der Befehlsschlange).
  • 1 stellt ein vereinfachendes Beispiel eines Systems 100 dar. Das System 100 enthält eine Datenspeichervorrichtung 102 und eine Zugriffsvorrichtung 170. Die Datenspeichervorrichtung 102 enthält eine Steuereinrichtung 130 und eine Speichervorrichtung 103, die mit der Steuereinrichtung 130 gekoppelt ist. Die Speichervorrichtung 103 kann ein oder mehrere Speicherchips enthalten.
  • Die Datenspeichervorrichtung 102 und die Zugriffsvorrichtung 170 können mittels einer Verbindung (beispielsweise einen Kommunikationspfad 180), wie einen Bus oder eine drahtlose Verbindung gekoppelt sein. Die Datenspeichervorrichtung 102 kann ein erstes Interface 110 (beispielsweise ein eMMC-(eingebettetes MultiMedia-Karten-)-lnterface) enthalten, welches eine Kommunikation über den Kommunikationspfad (180) zu der Datenspeichervorrichtung 102 und der Zugriffsvorrichtung 170 erlaubt.
  • Bei einigen Realisierungen kann die Datenspeichervorrichtung 102 an einer oder mehreren Zugriffsvorrichtungen angebracht oder in diesen eingebettet sein, wie innerhalb eines Gehäuses der Zugriffsvorrichtung 170. Die Datenspeichervorrichtung 102 kann beispielsweise in der Zugriffsvorrichtung 170 eingebettet sein, wie entsprechend einem Joint Electron Devices Engineering Council-Verbindungs-Ingenieurrat für elektronische Vorrichtungen (JEDEC) - Solid State Technology Association Universal Flash Storage - Festkörper-Technologievereinigung - Universal-Flashspeicher-(UFS)-Konfiguration. Die Datenspeichervorrichtung 102 kann als veranschaulichende Beispiele beispielsweise konfiguriert sein, um mit der Zugriffsvorrichtung 170 als eingebetteter Speicher gekoppelt oder eingebettet zu sein, wie als eMMC®-(Marke der JEDEC-Solid State Technology Association Arlington, Virginia) und eSD. Zur Veranschaulichung kann die Datenspeichervorrichtung 102 einer eMMC-Vorrichtung (eingebettete Multimediakarte) entsprechen. Als weiteres Beispiel kann die Datenspeichervorrichtung 102 einer Speicherkarte, wie einer sicheren digitalen (SD®)-Karte, einer Mikro-SD®-Karte, einer Mini-SD™-Karte (Marke von SD-3C LLC, Wilmington, Delaware), einer MultiMediaCard™ (MMC™)-Karte (Marke der JEDEC-Solid State Technology Association, Arlington, Virginia) oder einer CompactFlash®-(CF)-Karte (Marke von SanDisk Corporation, Milpitas, Kalifornien) entsprechen. Zur weiteren Veranschaulichung kann die Datenspeichervorrichtung 102 in einem Gerät integriert sein, wie einem Mobiltelefon, einem Computer, einem Laptop, einem Tablet oder einem Notebook-Computer), einem Musik-Abspielgerät, einem Video-Abspielgerät, einer Spielvorrichtung oder einer -konsole, einem elektronischen Buchlesegerät, einem persönlichen digitalen Assistenten (PDA), einem tragbaren Navigationsgerät, einem Fahrzeug-Elektroniksystem oder einer anderen Vorrichtung, die einen nichtflüchtigen Speicher verwendet.
  • Bei anderen Realisierungen kann die Datenspeichervorrichtung 102 in einer tragbaren Vorrichtung implementiert sein, die ausgelegt ist, um selektiv mit einer oder mehreren externen Zugriffsvorrichtungen gekoppelt zu werden. Die Datenspeichervorrichtung 102 kann beispielsweise von der Zugriffsvorrichtung 170 entfernbar sein (das heißt, dass sie mit der Zugriffsvorrichtung 170 „entfernbar“ gekoppelt ist). Als Beispiel kann die Datenspeichervorrichtung 102 mit der Zugriffsvorrichtung 170 entsprechend einer entfernbaren USB-(universellen Serienbus-)-Konfiguration gekoppelt sein. Bei noch anderen Realisierungen kann die Datenspeichervorrichtung 102 eine Komponente (beispielsweise ein Festkörper-Laufwerk (SSD)) eines in einem Netzwerk zugreifbaren Datenspeichersystems, wie eines Firmen-Datensystems; eines an einem Netzwerk angebrachten Speichersystems, eines Cloud-Datenspeichersystems, etc. sein.
  • Bei einigen Realisierungen kann die Datenspeichervorrichtung 102 ein Festkörper-Laufwerk (SSD) enthalten oder diesem entsprechen, das in der Zugriffsvorrichtung 170 enthalten oder von dieser verschieden (und darauf zugreifbar) ist. Die Datenspeichervorrichtung 102 kann als veranschaulichende, nicht beschränkende Beispiele beispielsweise ein Festkörperlaufwerk SSD enthalten oder diesem entsprechen, welches als eingebettetes Speicherlaufwerk (beispielsweise eines mobilen eingebetteten Speicherlaufwerks), eines Firmen-Speicherlaufwerks (ESD), einer Client-Speichervorrichtung oder einer Cloud-Speichervorrichtung verwendet sein kann. Bei einigen Realisierungen kann die Datenspeichervorrichtung 102 mit der Zugriffsvorrichtung 170 indirekt gekoppelt sein, beispielsweise mittels eines Netzwerks. Das Netzwerk kann beispielsweise ein Datencenter-Speichersystemnetzwerk, ein Firmen-Speichersystemnetzwerk, ein Speicherbereichsnetzwerk, ein Cloud-Speichernetzwerk, ein lokales Bereichsnetzwerk (LAN), ein Weitbereichs-Netzwerk (WAN), das Internet und/oder ein anderes Netzwerk enthalten. Bei einigen Realisierungen kann die Datenspeichervorrichtung 102 eine an einem Netzwerk angebrachte Speichervorrichtung (NAS) oder eine Komponente (beispielsweise eine Festkörper-Laufwerks-(SSD)-Vorrichtung eines Datencenter-Speichersystems, eines Firmen-Speichersystems oder eines Speicherbereichsnetzwerks sein.
  • Die Datenspeichervorrichtung 102 kann in Übereinstimmung mit einer JEDEC-Industriespezifikation arbeiten. Die Datenspeichervorrichtung 102 kann beispielsweise in Übereinstimmung mit einer JEDEC-eMMC-Spezifikation, einer JEDEC-Universal-Flashspeicher-(UFS)-Spezifikation, einer oder mehreren anderen Spezifikationen oder einer Kombination daraus arbeiten. Bei einigen Realisierungen können die Datenspeichervorrichtung 102 und die Zugriffsvorrichtung 170 als veranschaulichende, nicht beschränkende Beispiele ausgelegt sein, um unter Heranziehung eines oder mehrerer Protokolle zu kommunizieren, wie eines eMMC-Protokolls, eines universellen Flashspeicher (UFS)-Protokolls, eines universellen Serienbus (USB)-Protokolls, eines SATA-seriellen fortgeschrittenen Technologieanschluss-Protokolls und/oder eines anderen Protokolls, zu kommunizieren.
  • Die Zugriffsvorrichtung 170 kann ein drittes Interface 172 (ein eMMC-Interface) enthalten, und sie kann ausgelegt bzw. konfiguriert sein, um mit der Datenspeichervorrichtung 102 über das dritte Interface 172 zu kommunizieren, um Daten aus der Speichervorrichtung 103 der Datenspeichervorrichtung 102 zu lesen und in diese zu schreiben. Die Zugriffsvorrichtung 170 kann beispielsweise in Übereinstimmung mit einer JEDEC-Verbindungs-Ingenieurrat elektronischer Vorrichtungen - Industriespezifikation, wie einer UFS-universellen Flashspeicher-Zugriffs-Steuereinrichtungs-Interface-Spezifikation arbeiten. Als andere Beispiele kann die Zugriffsvorrichtung 170 in Übereinstimmung mit einer oder mehreren anderen Spezifikationen arbeiten, wie einer sicheren digitalen-(SD)-Zugriffs-Steuereinrichtungsspezifikation, als ein veranschaulichendes, nicht beschränkendes Beispiel.
  • Die Zugriffsvorrichtung 170 kann mit der Speichervorrichtung 103 entsprechend irgendeinem anderen geeigneten Kommunikationsprotokoll kommunizieren.
  • Die Zugriffsvorrichtung 170 kann einen Prozessor 174 und einen Speicher 176 enthalten. Der Speicher 176 kann konfiguriert sein, um Daten und/oder Befehle zu speichern, die durch den Prozessor 174 ausführbar sind. Der Speicher 176 kann ein einzelner Speicher sein oder er kann eine Mehrzahl von Speichern enthalten, wie einen oder mehrere nicht flüchtige Speicher, einen oder mehrere flüchtige Speicher oder eine Kombination daraus. Die Zugriffsvorrichtung 170 kann an die Datenspeichervorrichtung 102 einen oder mehrere Befehle abgeben, wie eine oder mehrere Anforderungen zum Löschen von Daten, zum Lesen von Daten aus der oder zum Schreiben von Daten in die Speichervorrichtung 103 der Datenspeichervorrichtung 102. Die Zugriffsvorrichtung 170 kann beispielsweise so konfiguriert sein, um Daten, wie Nutzerdaten 160 bereitzustellen, um in der Speichervorrichtung 103 gespeichert zu werden, oder um Daten anzufordern, die aus der Datenspeichervorrichtung 103 zu lesen sind. Die Zugriffsvorrichtung 170 kann als veranschaulichende, nicht beschränkende Beispiele einem Mobiltelefon, einem Computer, (beispielsweise einem Laptop-, einem Tablet- oder einem Notebookcomputer), einem Musik-Abspielgerät, einem Videoabspielgerät, einer Spielvorrichtung oder -konsole, einem elektronischen Buchlesegerät, einem persönlichen digitalen Assistenten (PDA), einer tragbaren Navigationsvorrichtung, einem Computer, wie einem Laptop-Computer oder Notebookcomputer, einem Netzwerkcomputer, einem Server, einem Verkehrs-Elektroniksystem oder irgendeiner anderen elektronischen Vorrichtung oder einer Kombination daraus entsprechen.
  • Die Speichervorrichtung 103 der Datenspeichervorrichtung 102 kann ein oder mehrere Speicherchips (beispielsweise ein Speicherchip, zwei Speicherchips, acht Speicherchips oder irgendeine andere Anzahl von Speicherchips) enthalten. Die Speichervorrichtung 103 enthält einen Speicher 104, wie einen nicht flüchtigen Speicher aus Speicherelementen, die in einem Speicherchip enthalten sind. Der Speicher 104 kann als veranschaulichendes, nicht beschränkendes Beispiel beispielsweise einen Flashspeicher, wie einen NAND-Flashspeicher enthalten. Der Speicher 104 kann eine dreidimensionale (3D)-Speicherkonfiguration aufweisen. Als Beispiel kann der Speicher 104 eine vertikale 3D-Bitleitungs-(VBL)-Konfiguration aufweisen. Bei einer besonderen Realisierung enthält der Speicher 104 einen nicht flüchtigen Speicher mit einer 3D-Speicherkonfiguration, die in einer oder mehreren physikalischen Ebenen von Reihen von Speicherelementen (z.B. Speicherzellen) monolithisch gebildet ist, welche einen oberhalb eines Siliziumsubstrats angeordneten aktiven Bereich aufweisen. Alternativ kann der Speicher 104 eine andere Konfiguration aufweisen, wie eine zweidimensionale (2D)-Speicherkonfiguration, oder eine nicht monolithische 3D-Speicherkonfiguration (z.B. eine gestapelte Chip-3D-Speicherkonfiguration).
  • Die Speichervorrichtung 103 (und/oder der Speicher 104) kann bzw. können eine der Operation der Speicherelemente des Speichers 104 zugehörige Schaltungsanordnung enthalten. Die Speichervorrichtung 103 (und/oder der Speicher 104) können beispielsweise eine Unterstützungs-Schaltungsanordnung, wie eine Lese-/Schreib-Schaltungsanordnung 113 enthalten, um den Betrieb von einem oder mehreren Speicherchips der Speichervorrichtung 103 zu unterstützen. Obwohl die Lese-/Schreib-Schaltungsanordnung 113 als einzelne Komponente dargestellt ist, kann sie in gesonderte Komponenten der Speichervorrichtung 103 aufgeteilt sein, wie als Lese-Schaltungsanordnung und Schreib-Schaltungsanordnung. Die Lese-/Schreib-Schaltungsanordnung bzw. -schaltung 113 kann außerhalb des einen oder der mehreren Speicherchips der Speichervorrichtung 103 vorgesehen sein. Alternativ können ein oder mehrere individuelle Speicherchips der Speichervorrichtung 103 die Lese-/Schreibschaltung enthalten, die betreibbar ist, um Daten aus den und/oder Daten in die Speicherelemente(n) innerhalb des individuellen Speicherchips unabhängig von irgendwelchen anderen Lese- und/oder Schreiboperationen in irgendwelche anderen Speicherchips zu lesen und/oder zu schreiben.
  • Der Speicher 104 kann eine Mehrzahl von Gruppen von Speicherelementen enthalten. Der Speicher 104 kann beispielsweise eine repräsentative Gruppe von Speicherelementen 106 (beispielsweise eine Gruppe von Speicherzellen) enthalten. Die Gruppe der Speicherelemente 106 kann als veranschaulichendes, nicht beschränkendes Beispiel ein repräsentatives Speicherelement 108 (beispielsweise eine Speicherzelle) enthalten. Das Speicherelement 108 kann konfiguriert sein, um als Einzelebenen-Zelle (SLC), als Multiebene-Zelle (MLC) oder als Dreiebenen-Zelle (TLC) zu funktionieren. Jede der Gruppen von Speicherelementen, wie die Gruppe der Speicherelemente 106 des Speichers 104 kann einer oder mehreren Wortleitungen, Blöcken, Ebenen oder einer anderen definierbaren Gruppe von Speicherelementen entsprechen.
  • Die Steuereinrichtung 130 ist über einen Bus 121, ein Speicher-Interface (z.B. eine Interfaceschaltung, wie ein zweites Interface 132), einer anderen Struktur oder einer Kombination daraus mit der Speichervorrichtung 103 gekoppelt. Der Bus 121 kann beispielsweise einen oder mehrere Kanäle enthalten, um der Steuereinrichtung 130 zu ermöglichen, mit einem einzelnen Speicherchip der Speichervorrichtung 103 zu kommunizieren. Als weiteres Beispiel kann der Bus 121 eine Mehrzahl von individuellen Kanälen enthalten, um der Steuereinrichtung 130 zu ermöglichen, mit jedem Speicherchip der Speichervorrichtung 103 parallel und unabhängig von der Kommunikation mit anderen Speicherchips der Speichervorrichtung 103 zu kommunizieren.
  • Die Steuereinrichtung 130 ist konfiguriert, um Daten und Befehle von der Zugriffsvorrichtung 170 aufzunehmen und um Daten an die Zugriffsvorrichtung 170 zu senden. Die Steuereinrichtung 130 kann beispielsweise Daten über das erste Interface 110 an die Zugriffsvorrichtung 170 senden, und die Steuereinrichtung 130 kann Daten von der Zugriffsvorrichtung 170 über das erste Interface 110 empfangen. Die Steuereinrichtung 130 ist so konfiguriert, um Daten und Befehle an den Speicher 104 zu senden und um Daten aus dem Speicher 104 zu empfangen. Die Steuereinrichtung 130 ist beispielsweise so ausgelegt, um Daten und einen Schreibbefehl zu senden, damit der Speicher 104 veranlasst wird, Daten in Speicherelementen entsprechend einer spezifizierten Adresse des Speichers 104 zu speichern. Der Schreibbefehl kann eine physikalische Adresse eines Teiles des Speichers 104 spezifizieren (beispielsweise eine physikalische Adresse einer Wortleitung des Speichers 104), der die Daten zu speichern hat. Die Steuereinrichtung 130 kann als veranschaulichendes, nicht beschränkendes Beispiel außerdem so konfiguriert sein, um Daten und Befehle an den Speicher 104 in Zuordnung zu Hintergrund-Abtastoperationen, Abfall-Sammeloperationen und/oder Abnutzungs-Ausgleichoperationen, etc. zu senden. Die Steuereinrichtung 130 ist so ausgelegt, um einen Lesebefehl an den Speicher 104 für einen Zugriff auf Daten aus Speicherelementen entsprechend einer spezifizierten Adresse des Speichers 104 zu senden. Der Lesebefehl kann die physikalische Adresse eines Teiles des Speichers 104 spezifizieren (beispielsweise eine physikalische Adresse einer Wortleitung des Speichers 104).
  • Die Steuereinrichtung 130 enthält einen Satz von Registern 133, ein Befehlsmodul 138 und einen Speicher 150. Der Satz der Register 133 kann ein Feld bzw. eine Anordnung von Bits 136 enthalten. Für jeden Befehl einer Vielzahl von Befehlen, welche durch die Datenspeichervorrichtung 102 ausführbar sind, kann die Anordnung bzw. das Feld der Bits 136 ein entsprechendes Bit enthalten. Ein erstes Bit der Anordnung der Bits 136 kann beispielsweise einem ersten Befehl (CMD1) entsprechen; ein zweites Bit der Anordnung der Bits 136 kann einem zweiten Befehl (CMD2) entsprechen, ein drittes Bit der Anordnung der Bits 136 kann einem dritten Befehl (CMD3) entsprechen, ein viertes Bit der Anordnung der Bits 136 kann einem vierten Befehl (CMD4) entsprechen, und ein fünftes Bit der Anordnung der Bits 136 kann einem fünften Befehl (CMD5) entsprechen. Obwohl die Anordnung der Bits 136 als fünf Bits enthaltend beschrieben ist, kann die Anordnung der Bits 136 bei anderen Realsierungen mehr oder weniger als fünf Bits enthalten.
  • Jeder Befehl aus der Vielzahl von Befehlen kann kategorisiert (oder markiert) sein, und zwar kann er auf der Grundlage eines entsprechenden Bitwerts der Anordnung der Bits 136 als für eine Ausführung autorisiert oder als für eine Ausführung nicht autorisiert kategorisiert (oder markiert) sein. So kann als veranschaulichendes, nicht beschränkendes Beispiel ein Bitwert von „0“ angeben, dass ein bestimmter Befehl als unautorisiert kategorisiert ist, und ein Bitwert von „1“ kann angeben, dass ein bestimmter Befehl als autorisiert kategorisiert ist. Zur Veranschaulichung gibt, wie in 1 dargestellt, die Anordnung der Bits 136 an, dass der dritte Befehl (CMD3) autorisiert ist, um ausgeführt zu werden, und dass der fünfte Befehl (CMD5) nicht autorisiert ist, um ausgeführt zu werden.
  • Der Speicher 150 kann ein erstes Autorisierungsschema bzw. -system 152 enthalten. Das erste Autorisierungsschema 152 kann Daten enthalten, die Befehle (aus der Vielzahl der Befehle, welche durch die Datenspeichervorrichtung 102 ausführbar sind) als autorisiert oder nicht autorisiert kategorisiert sind, um für einen bestimmten Modus, wie den ersten Modus ausgeführt zu werden. Zur Veranschaulichung kann der erste Modus einem Befehlsschlangenmodus entsprechen, bei dem eine Befehlsschlange 134 freigegeben und belegt ist (beispielsweise einen oder mehrere autorisierte Befehle enthält, die eine Ausführung erwarten). Das erste Autorisierungsschema 152 kann Daten enthalten oder diesen zugehörig sein, die einen Satz von autorisierten Befehlen 146 und einen Satz von nicht autorisierten Befehlen für den bestimmten Modus kategorisieren (oder markieren). Das erste Autorisierungsschema 152 kann beispielsweise eine Anordnung der Bits 136 (beispielsweise eine Bit-Abbildung) enthalten oder dieser zugehörig sein, welche auf die Steuereinrichtung 130 hin (beispielsweise das Befehlsmodul 138) in die Register 133 geladen werden, welche in dem bestimmten Modus konfiguriert sind. Bei diesem Beispiel kann jedes Bit der Anordnung der Bits 136 einem Befehl entsprechen, der durch das Befehlsmodul 138 erkannt wird. Somit entspricht die Anordnung der Bits 136 zusammen einem Satz von erkannten Befehlen. Ferner entspricht bei diesem Beispiel ein erster Satz von Bits der Anordnung von Bits 136, die einen ersten Wert aufweisen, Befehlen, welche für die Ausführung in dem bestimmten Modus (beispielsweise dem Satz der autorisierten Befehle 146) autorisiert sind, und ein zweiter Satz von Bits der Anordnung der Bits 136, die einen zweiten Wert aufweisen, entspricht Befehlen, die für eine Ausführung in dem bestimmten Modus nicht autorisiert sind (z.B. der Satz von nicht autorisierten Befehlen 148). Bei anderen Realisierungen kann das erste Autorisierungsschema 152 eine Liste/Listen von autorisierten/oder nicht autorisierten Befehlen enthalten oder dieser bzw. diesen zugehörig sein.
  • Beispiele von erkannten Befehlen sind in der eMMC-Spezifikation festgelegt. Die Tabelle 1 unten listet verschiedene Beispiele von erkannten Befehlen und jedem zugehörigen Befehlsindices auf. Die Tabelle 1 ist nicht dazu vorgesehen, sämtliche Befehle aufzulisten, welche die Steuereinrichtung 130 erkennen kann. Die eMMC-Spezifikation listet außerdem beispielsweise verschiedene reservierte Befehlsindices auf, die nicht in der Tabelle 1 aufgelistet sind. Tabelle 1
    CMD-Index Abkürzung kurze Befehlsbeschreibung
    CMD0 GO_IDLE_STATE Rücksetzen eines EMMC-Chips in Leerlaufzustand
    CMD1 SEND_OP_COND Anforderungen von Operationsbedingungen, Registerinhalte
    CMD2 ALL_SEND_ClD Anfordern von CID-Nummer auf CMD-Leitung
    CMD3 SET_RELATlVE_ADDR Zuordnen einer relativen Adresse
    CMD6 SWITCH Umschalten des Operationsmodus oder Modifizieren der EXT CSD Register
    CMD7 SELECT/DESELCT_CARD Auswählen einer Vorrichtung durch ihre relative Adresse
    CMD8 SEND_EXT_CSD Anfordern des EXT_CSD-Registers als einen Block von Daten
    CMD9 SEND_CSD Anfordern von kartenspezifischen Daten (CSD)
    CMD10 SEND_CID Anfordern der Kartenidentifikation (CID)
    CMD12 STOP_TRANSMISSION Zwingen eines EMMC-Chips, die Übertragung zu stoppen
    CMD13 SEND_STATUS Anfordern des Statusregisters
    CMD14 BUSTEST_R Lesen des umgekehrten Bus-Test-datenmusters aus einem EMMC-Chip
    CMD15 GO_INACTlVE_STATE Setzen eines EMMC-Chips in einen inaktiven Zustand
    CMD16 SET_BLOCKLEN Setzen einer Blocklänge (in Bytes) für eine Länge auf Blockbefehle folgend (z.B. Lesen und Schreiben)
    CMD17 READ_SINGLE_BLOCK Lesen eines Blocks einer Größe, die durch den SET_BLOCKLEN-Befehl ausgewählt ist
    CMD18 READ_MULTIPLE_BLOCK Lesen einer Mehrzahl von Blöcken
    CMD19 BUSTEST_W Ein Host sendet ein Bustestdatenmuster an ein EMMC-Chip
    CMD23 SET_BLOCK_COUNT Legt eine Anzahl von Blöcken fest, die in einem unmittelbar nachfolgenden Mehrfachblock-Lese- oder Schreibbefehl zu übertragen sind
    CMD24 WRITE_BLOCK Schreiben einen Block einer Größe, die durch den SET_BLOCKLEN-Befehl ausgewählt ist
    CMD25 WRITE_MULTIPLE_BLOCK Setzt das Schreiben von Blöcken von Daten fort, bis eine STOP_TRANSMISSION folgt oder eine angeforderte Blockanzahl empfangen ist
    CMD27 PROGRAM _CSD Programmiert programmierbare Bits der CSD
    CMD28 SET_WRlTE_PROT Setzt ein Schreibschutzbit einer adressierten Gruppe
    CMD29 CLR_WRlTE_PROT Löscht ein Schreibschutzbit einer adressierten Gruppe
    CMD30 SEND_WRITE_PROT Anfordern eines Status von Schreibschutzbits
    CMD35 ERASE_GROUP_START Festlegen einer Adresse einer Anfangs-Löschgruppe innerhalb eines zum Löschen auszuwählenden Bereichs
    CDMD36 ERASE_GROUP_END Festlegen einer Adresse einer letzten Löschgruppe innerhalb eines zum Löschen auszuwählenden und unterbrochenen Bereichs
    CMD38 ERASE Löscht sämtliche zuvor ausgewählten Schreibblöcke
    CMD39 FAST_IO Schreibt und liest 8-Bit-(Register)-Datenfelder
    CMD40 GO_IRQ_STATE Legt ein System im Unterbrechungsmodus fest
    CMD42 LOCK_UNLOCK Zum Festlegen/Zurücksetzen eines Passwortes oder zum Verriegeln/Entriegeln eines EMMC-Chips
  • Das Befehlsmodul 138 kann eine Ausführungseinheit 135, die Befehlsschlange 134, ein Parser- bzw. Analysiermodul 140 und eine Modus-Anzeigeeinrichtung 142 enthalten. Bei einigen Realisierungen ist die Ausführungseinheit 135 eine Komponente der Steuereinrichtung 130, und das Befehlsmodul 138 wird durch die Ausführungseinheit 135 ausgeführt oder durch diese realisiert. Die Ausführungseinheit 135 kann beispielsweise einen Prozessor, eine anwendungsspezifische integrierte Schaltung (ASIC) oder irgendeine andere Schaltung enthalten oder dieser entsprechen, welche eine Logik enthält, die eine Ausführung eines Software- oder Firmwarecodes ermöglicht. Bei diesem Beispiel kann das Befehlsmodul 138 einen Software- oder Firmwarecode enthalten oder diesem entsprechen, der durch die Ausführungseinheit 135 ausgeführt wird. Die Ausführungseinheit 135 kann außerdem Befehle, die erkannt und autorisiert sind (beispielsweise Befehle des Satzes der autorisierten Befehle 146) ausführen oder realisieren.
  • Die Modus-Anzeigeeinrichtung 142 kann anzeigen, ob die Steuereinrichtung 130 (beispielsweise das Befehlsmodul 138) für einen Betrieb bzw. eine Operation in einem ersten Modus konfiguriert ist oder ob sie für einen Betrieb bzw. eine Operation in einem anderen Modus (beispielsweise in einem zweiten Modus) konfiguriert ist. Bei einigen Realisierungen kann das erste Autorisierungsschema 152 im ersten Modus entsprechen. Zur Veranschaulichung kann der erste Modus einen Befehlsschlangenmodus enthalten, und der zweite Modus kann einen Nicht-Befehlsschlangenmodus, wie einen Transfermodus, enthalten. Die Modus-Anzeigeeinrichtung 142 kann einen ersten Wert aufweisen, wenn die Steuereinrichtung 130 für einen Betrieb in dem ersten Modus konfiguriert bzw. ausgelegt ist (beispielsweise dann, wenn die Befehlsschlange 134 freigegeben und belegt ist), und sie kann einen zweiten Wert aufweisen, wenn die Steuereinrichtung 130 für einen Betrieb in dem zweiten Modus ausgelegt ist (beispielsweise dann, wenn die Befehlsschlange 134 nicht freigegeben und nicht belegt ist). Der erste Modus (beispielsweise der Befehlsschlangenmodus) und der zweite Modus (beispielsweise der Nicht-Befehlsschlangenmodus) können einem eMMC-Protokoll zugehörig sein.
  • Wenn die Modus-Anzeigeeinrichtung 142 angibt, dass die Steuereinrichtung 130 für einen Betrieb in dem ersten Modus ausgelegt ist, kann die Steuereinrichtung 130 konfiguriert sein, um irgendeinen Befehl aus einem ersten Satz von Befehlen (beispielsweise einen oder mehrere Befehle des Satzes der autorisierten Befehle 146) auszuführen, falls ein derartiger Befehl empfangen oder in der Befehlsschlange 134 untergebracht ist. Wenn die Modus-Anzeigeeinrichtung 142 angibt, dass die Steuereinrichtung 130 für einen Betrieb in dem ersten Modus ausgelegt ist, kann die Steuereinrichtung 130 ferner ausgelegt sein, um zweite Befehle jeglicher Befehle eines zweiten Satz von Befehlen, wie des Satzes der nicht autorisierten Befehle (beispielsweise ein oder mehrere Befehle des Satzes der nicht autorisierten Befehle 148) auszuscheiden, zu ignorieren oder in anderer Weise nicht auszuführen, falls ein derartiger Befehl empfangen wird oder in der Befehlsschlange 134 untergebracht ist. Wenn die Modus-Anzeigeeinrichtung 142 angibt, dass die Steuereinrichtung 130 für einen Betrieb in dem zweiten Modus ausgelegt ist, kann die Steuereinrichtung 130 ausgelegt sein, um einen unterschiedlichen Satz von Befehlen auszuführen, um unterschiedliche Befehle oder beide auszuscheiden, zu ignorieren oder in anderer Weise nicht auszuführen. Bei einigen Realisierungen können dann, wenn die Modus-Anzeigeeinrichtung 142 angibt, dass die Steuereinrichtung 130 für einen Betrieb in dem zweiten Modus ausgelegt ist, sämtliche Befehle des Satzes der erkannten Befehle für eine Ausführung durch die Steuereinrichtung 130 autorisiert sein, und kein erkannter Befehl kann für eine Ausführung nicht autorisiert sein.
  • Befehle, wie ein Befehl 162, der von der Zugriffsvorrichtung 170 empfangen wird, können in der Befehlsschlange 134 für eine nachfolgende Ausführung (beispielsweise durch die Ausführungseinheit 135) eingereiht sein. Obwohl die Befehlsschlange 134 als einzige Schlange beschrieben ist, kann die Befehlsschlange 134 bei anderen Realisierungen als veranschaulichendes, nicht beschränkendes Beispiel eine Mehrzahl von Schlangen enthalten, wie gesonderte Schlangen für Leseoperationen und Schreiboperationen.
  • Das Analysiermodul 140 kann ausgelegt sein, um einen oder mehrere Befehle, wie den Befehl 162 von der Zugriffsvorrichtung 170 zu empfangen. Auf den Empfang des Befehls 162 hin kann das Analysiermodul 140 den Befehl 162 analysieren, um einen Befehlsindexwert 166 (z.B. CMD2) des Befehls 162 zu identifizieren. Auf der Grundlage des Befehlsindexwertes 166 des Befehls 162 kann das Befehlsmodul 138 bestimmen, ob der Befehl 162 (z.B. CMD2) autorisiert ist, um ausgeführt zu werden, oder nicht autorisiert ist, um ausgeführt zu werden. Zur Veranschaulichung kann das Befehlsmodul 138 einen Bitwert der Anordnung der Bits 136 bestimmen, der dem Befehlsindexwert 166 entspricht. Falls der Bitwert angibt, dass der Befehl 162 als für eine Ausführung nicht autorisiert kategorisiert ist, kann das Befehlsmodul 138 den Befehl 162 ausscheiden, ignorieren oder in sonstiger Weise nicht ausführen. Falls alternativ der Bitwert angibt, dass der Befehl 162 als für eine Ausführung autorisiert kategorisiert ist, kann das Befehlsmodul 138 den Befehl 162 (beispielsweise den Befehlsindexwert 166) für die Befehlsschlange 134 bereitstellen.
  • Zusätzlich oder alternativ kann das Analysiermodul 140 den Befehl analysieren, um zu bestimmen, ob der Befehl 162 eine Angabe 164 zur Änderung einer Autorisierung/Autorisierung eines bestimmten Befehls enthält. Bei einigen Realisierungen kann die Angabe 164 in reservierten Bits eines Arguments des Befehls 162 enthalten sein. Der Befehl 162 kann beispielsweise ein Argument enthalten, welches angibt, dass ein einem unterschiedlichen Befehlsindex (z.B. CMD4) zugehöriger Befehl für eine Ausführung zu autorisieren ist. Auf die Angabe 164 hin kann das Befehlsmodul 138 konfiguriert sein, um die Ausführung des vierten Befehls (CMD4) zu autorisieren. Um das Befehlsmodul 138 zur Autorisierung der Ausführung des vierten Befehls (CMD4) zu konfigurieren, kann das Analysiermodul 140 Daten 168 an die Register 133 senden, um einen Bitwert entsprechend dem vierten Befehl (CMD4) zur Kategorisierung des vierten Befehls (CMD4) als autorisiert zu modifizieren. Zur Veranschaulichung kann das Analysiermodul 140 Daten 168 an die Register 133 senden, um den Bitwert entsprechend dem vierten Befehl (CMD4) von einem 0-Wert (der angibt, dass die Ausführung des vierten Befehls (CMD4) nicht autorisiert ist) in einen 1-Wert (der angibt, dass die Ausführung des vierten Befehls (CMD4) autorisiert ist), zu ändern. Falls die Zugriffsvorrichtung 170 wünscht, einen Befehl auszuführen, der nicht normalerweise für eine Ausführung autorisiert ist, während im ersten Modus gearbeitet wird, kann die Zugriffsvorrichtung 170 somit die Angabe 164 senden, um temporär zu veranlassen, den Befehl zu autorisieren, ohne den ersten Modus zu verlassen.
  • Während die Modus-Anzeigevorrichtung 142 angibt, dass die Steuereinrichtung 130 für einen Betrieb im ersten Modus konfiguriert ist, kann die Steuereinrichtung 130 zur Veranschaulichung einen bestimmten Befehl ausführen, der zu einer Ausnahme führt. Um einen Grund der Ausnahme zu bestimmen, könnte die Zugriffsvorrichtung 170 einen dem Befehlsindex CMD8 (z.B. einem Befehl zur Anforderung des Inhalts eines bzw. von kartenspezifischen Datenregistern) zugehörigen Befehl abgeben. Während des Betriebs in einem Befehlsschlangenmodus (beispielsweise dem ersten Modus) kann der CMD8 nicht autorisiert sein. Gemäß einer bestimmten Realisierung kann die Zugriffsvorrichtung 170 einen dem Befehlsindex CMD13 (beispielsweise zur Anforderung des Status von Registern) zugehörigen Befehl abgeben, der für eine Ausführung im ersten Modus autorisiert ist. Ein Argument (oder reservierte Bits) des CMD13-Befehls kann angeben, dass der CMD8 für eine Ausführung zu autorisieren ist. Auf der Grundlage des Arguments (oder der reservierten Bits kann ein Wert eines Bits der Anordnung der Bits 136 geändert werden, um den CMD8-Befehl als autorisiert zu kategorisieren. Somit kann ein Befehl, der für eine Ausführung im ersten Modus autorisiert ist, (beispielsweise CMD13) dazu herangezogen werden, einen nicht autorisierten Befehl (z.B. CMD8) durch Ändern eines Wertes eines Bits in der Anordnung der Bits 136 zu veranlassen, autorisiert zu werden. Nach Veranlassung dazu, den CMD8-Befehl zu autorisieren und auszuführen, kann die Zugriffsvorrichtung 170 einen anderen bzw. weiteren Befehl abgeben, um zu bewirken, dass der Wert des Bits der Anordnung der Bits 136 wieder geändert wird, um den CMD8-Befehl wieder als nicht autorisiert zu kategorisieren.
  • Bei einigen Realisierungen kann die Modus-Anzeigeeinrichtung 142 einen Modus aus einer Vielzahl von Modi angeben. Die Modusanzeigeeinrichtung 142 kann beispielsweise festgelegt sein, um eine Operation im ersten Modus (beispielsweise einem Befehlsschlangenmodus) oder im zweiten Modus (beispielsweise in einem Nicht-Befehlsschlangenmodus) anzugeben. Wie oben beschrieben, kann der erste Modus dem ersten Autorisierungsschema 152 entsprechen, welches den Satz von autorisierten Befehlen 146 und den Satz von nicht autorisierten Befehlen 148 enthält. Zusätzlich oder alternativ kann der erste Modus einem zweiten Satz von nicht autorisierten Befehlen entsprechen. Wenn der erste Modus sowohl dem ersten Autorisierungsschema 152 als auch dem zweiten Autorisierungsschema entspricht, kann das erste Autorisierungsschema 152 dazu herangezogen werden, Werte der Anordnung der Bits 136 festzulegen, wenn die Befehlsschlange 134 nicht leer ist, und das zweite Autorisierungsschema kann dazu herangezogen werden, die Werte der Anordnung der Bits 136 festzulegen, wenn die Befehlsschlange 134 leer ist. Bei einigen Realisierungen kann das erste Autorisierungsschema 152 restriktiver sein als das zweite Autorisierungsschema, so dass unter dem ersten Autorisierungsschema 152 weniger Befehle für eine Ausführung autorisiert werden im Vergleich zu dem zweiten Autorisierungsschema. Zusätzlich kann der zweite Modus (beispielsweise der Nicht-Befehlsschlangenmodus) einem dritten Autorisierungsschema entsprechen. Bei einigen Realisierungen kann das dritte Autorisierungsschema weniger restriktiv sein als das erste Autorisierungsschema 152, das zweite Autorisierungsschema oder beide.
  • Nachdem die Datenspeichervorrichtung 102 sich einschaltet bzw. eingeschaltet wird oder eine Standby-Zeitspanne verlässt, kann das Befehlsmodul 138 bei einigen Realisierungen die Modusangabe 142 dazu festlegen, eine Operation im zweiten Modus (beispielsweise im Nicht-Befehlsschlangenmodus) anzugeben. Die Zugriffsvorrichtung 170 kann einen Eintritts-Befehlsschlangenmodus-Befehl senden, um das Befehlsmodul zu veranlassen, die Modusangabe 142 vom zweiten Modus (beispielsweise dem Nicht-Befehlsschlangenmodus) in den ersten Modus (beispielsweise den Befehlsschlangenmodus) zu ändern. Während die Modus-Anzeigeeinrichtung 142 im ersten Modus festgelegt ist, kann die Zugriffsvorrichtung 170 einen oder mehrere erste Befehle (die in dem Satz von autorisierten Befehlen 146 enthalten sind) an die Datenspeichervorrichtung 102 zur Ausführung senden.
  • Bei einem veranschaulichenden, nicht beschränkenden Beispiel können die Zugriffsvorrichtung 170 und die Datenspeichervorrichtung 102 unter Heranziehung eines eMMC-Protokolls kommunizieren. Um die Angabe 164 an die Datenspeichervorrichtung 102 zu senden, kann die Zugriffsvorrichtung 170 die Angabe 164 in einem bestimmten Befehl, wie dem Befehl 13 (CMD13) enthalten, der von dem eMMC-Protokoll verwendet wird. Die Zugriffsvorrichtung 170 kann beispielsweise die Angabe 164 in einem Argument oder in reservierten Bits des Befehls 13 (CMD13) enthalten. Zur Veranschaulichung kann ein Argument des Befehls 13 (CMD13) des eMMC-Protokolls 32 Bits enthalten, wie die Bits [31:0]. Ein Format des Befehls 13 (CMD13) kann angeben, dass Bits [31:16] eine relative Kartenadresse (RCA) angeben, dass das Bit [15] einen Sendeschlangenstatus (SQS) angibt, dass Bits [14:1] reservierte Bits (beispielsweise Stopfbits, wie sämtliche Nullen oder sämtliche Einsen) sind, und dass das Bit [0] eine Unterbrechungsanzeige hoher Priorität (HPI) ist. Die Zugriffsvorrichtung 170 kann die Angabe 164 in reservierten Bits [14:1] enthalten.
  • Als veranschaulichendes, nicht beschränkendes Beispiel kann die Angabe 164 ein Bit, welches beim Bit [7] des Arguments einen Befehls-Autorisierungs-/-Nichtautorisierungs-Angabe ist, und bei Bits [6:1] des Arguments einen Befehlsindexwert (z.B. einen Operationscode eines Befehls) enthalten. Ein Wert der Befehls-Autorisierungs-/Nicht-Autorisierungsangabe beim Bit [7] kann angeben, ob die Ausführung eines Befehls entsprechend dem Befehlsindexwert bei den Bits [6:1] zu autorisieren oder nicht zu autorisieren ist. Falls beispielsweise das Bit [7] beispielsweise einen 1-Wert aufweist, ist der dem Befehlsindexwert entsprechende Befehl für eine Ausführung zu autorisieren. Zur Veranschaulichung kann der Befehlsindexwert dem Befehl 16 (CMD6) oder dem Befehl 8 (CMD8) des eMMC-Protokolls entsprechen. Falls das Bit [7] ein 0-Wert ist, ist der dem Befehlsindexwert entsprechende Befehl alternativ zur Ausführung nicht zu autorisieren. Als weiteres veranschaulichendes, nicht beschränkendes Beispiel kann die Angabe 164 ein Bit enthalten, welches eine Befehlsautorisierungs-/-Nicht-Autorisierungsanzeige beim Bit [14], ein Befehlsindexwert (z.B. ein Operationscode eines Befehls) bei Bits [13:7] ist, und Bits [6:1] können eine Häufigkeit angeben, um die Ausführung des Befehls zu ermöglichen. Nachdem der Befehl in der durch die Bits [6:1] angegebenen Häufigkeit ausgeführt worden ist, kann der Befehl als nicht autorisiert für die Ausführung kategorisiert werden. Als zusätzliches veranschaulichendes, nicht beschränkendes Beispiel kann die Angabe 164 in den reservierten Bits [14:1] ein Bit enthalten, welches eine Befehlsautorisierungs-/-Nicht-Autorisierungsanzeige beim Bit [14], ein erster Befehlsindexwert (z.B. ein Operationscode eines Befehls) bei Bits [13:7] und ein zweiter Befehlsindexwert (z.B. ein Operationscode eines weiteren Befehls) bei Bits [6:1] ist. Durch Einschließen zweier Befehlsindexwerte kann die Angabe 164 die Ausführung von zwei verschiedenen Befehlen autorisieren/nicht autorisieren.
  • Bei einigen Realisierungen kann das Befehlsmodul 138 konfiguriert sein, um die Ausführung eines bestimmten Befehls, wie des vierten Befehls (CMD4) auf die Angabe 164 hin temporär zu autorisieren. Nach einer einzigen Ausführung oder einer Mehrzahl von Ausführungen des bestimmten Befehls kann die Ausführung des bestimmten Befehls durch das Befehlsmodul 138 automatisch nicht autorisiert werden (beispielsweise können die den bestimmten Befehl zugehörigen Daten modifiziert werden, um anzugeben, dass der bestimmte Befehl als nicht autorisiert kategorisiert ist). Zusätzlich oder alternativ kann das Befehlsmodul 138 die Ausführung des bestimmten Befehls auf eine zweite Angabe hin sperren, die von dem Zugriffsmodul 170 empfangen wird und die angibt, den bestimmten Befehl nicht zu autorisieren. Bei einigen Realisierungen kann das Befehlsmodul 138 den bestimmten Befehl nach der Ausführung des bestimmten Befehls nicht autorisieren. Bei anderen Realisierungen kann das Befehlsmodul 138 den bestimmten Befehl nicht autorisieren, nachdem der bestimmte Befehl für die Befehlsschlange 134 bereitgestellt ist. Ist der bestimmte Befehl in der Befehlsschlange 134 enthalten, so kann der bestimmte Befehl bei derartigen Realisierungen unabhängig von der Anordnung der Bits 136 ausgeführt werden.
  • Bei einigen Realisierungen kann die Datenspeichervorrichtung 102 eine (nicht dargestellte) (ECC)-Maschine enthalten. Die ECC-Maschine kann konfiguriert sein, um Daten, wie die Daten 160, aufzunehmen und um ein oder mehrere ECC-Codewörter (beispielsweise enthaltend einen Datenteil und einen Paritätsteil) auf der Grundlage der Daten zu erzeugen. Die ECC-Maschine kann beispielsweise die Daten 160 empfangen und ein Codewort erzeugen. Zur Veranschaulichung kann die ECC-Maschine einen Codierer enthalten, der konfiguriert ist, um Daten unter Heranziehung eines ECC-Codierungsverfahrens zu codieren. Die ECC-Maschine kann als veranschaulichendes, nicht beschränkendes Beispiel einen Reed-Solomon-Codierer, einen Bose-Chaudhuri-Hocquenghem-(BCH)-Codierer, einen Paritätsprüf-Codierer (LDPC) geringer Dichte, einen Turbo-Codierer, einen zum Codieren der Daten entsprechend einem oder mehreren anderen ECC-Verfahren konfigurierten Codierer oder eine Kombination daraus enthalten.
  • Die ECC-Maschine kann einen Decoder enthalten, der konfiguriert ist, um aus dem Speicher 104 gelesene Daten zu decodieren und Bitfehler zu detektieren und zu korrigieren, die in den Daten vorhanden sein können. Die ECC-Maschine kann beispielsweise eine Anzahl von Bitfehlern bis zu einer Fehlerkorrekturfähigkeit eines ECC-Verfahrens korrigieren, welches von der ECC-Maschine genutzt wird. Bei einigen Realisierungen kann die ECC-Maschine konfiguriert sein, um eine fehlgeschlagene Bitzählung (FBC), eine Bitfehlerrate oder beides entsprechend den durch die ECC-Maschine decodierten Daten zu bestimmen und/oder zu verfolgen.
  • Bei einigen Realisierungen können die Befehlsschlange 134, die Modusangabe 142 und/oder das erste Autorisierungsschema 152 in dem Speicher 104 gespeichert sein. Bei anderen Realisierungen kann die Steuereinrichtung 130 einen bestimmten Speicher (beispielsweise den Speicher 150), wie einen Speicher mit wahlfreiem Zugriff, (RAM), der zur Speicherung der Befehlsschlange 134, der Modusangabe und/oder des ersten Autorisierungsschemas 152 ausgelegt ist, enthalten oder mit diesem gekoppelt sein. Ein Teil des Speichers 150 kann beispielsweise ausgelegt sein, um als Befehlsschlange 134 verwendet zu werden. Alternativ oder zusätzlich kann die Steuereinrichtung 130 einen weiteren (nicht dargestellten) Speicher enthalten oder mit diesem gekoppelt sein, wie mit einem nicht flüchtigen Speicher, einem RAM-Speicher oder einem Festwert- bzw. Lesespeicher (ROM). Der andere Speicher kann eine einzelne Speicherkomponente, eine Mehrzahl von verschiedenen Speicherkomponenten sein und/oder eine Mehrzahl verschiedener Arten bzw. Typen (z.B. flüchtigen und/oder nicht flüchtigen Speichern) von Speicherkomponenten enthalten. Bei einigen Realisierungen kann der andere Speicher in der Zugriffsvorrichtung 170 enthalten sein.
  • Obwohl in Bezug auf die Steuereinrichtung 130 eine oder mehrere Komponenten der Datenspeichervorrichtung 102 beschrieben worden sind, können bei anderen Realisierungen gewisse Komponenten in der Speichervorrichtung 103 (beispielsweise im Speicher 104) enthalten sein. Ein oder mehrere der Register 133, das Befehlsmodul 138 und/oder der Speicher 150 können beispielsweise in der Speichervorrichtung 103 enthalten sein. Alternativ oder zusätzlich können eine oder mehrere Funktionen, wie oben unter Bezugnahme auf die Steuereinrichtung 130 beschrieben, bei oder durch die Speichervorrichtung 103 ausgeführt sein.
  • Eine oder mehrere Funktionen der Register 133, des Befehlsmoduls 138 und/oder des Speichers 150 können beispielsweise durch Komponenten und/oder eine Schaltungsanordnung ausgeführt sein, die in der Speichervorrichtung 103 enthalten sind bzw. ist. Alternativ oder zusätzlich können eine oder mehrere Komponenten der Datenspeichervorrichtung 102 in der Zugriffsvorrichtung 170 enthalten sein. Alternativ oder zusätzlich können eine oder mehrere der oben unter Bezugnahme auf die Steuereinrichtung 130 beschriebenen Funktionen bei bzw. in der oder durch die Zugriffsvorrichtung 170 ausgeführt sein.
  • Durch Konfigurieren des Befehlsmoduls 138 zur Autorisierung der Ausführung eines bestimmten Befehls (beispielsweise eines nicht autorisierten Befehls), während im ersten Modus verblieben wird, kann der bestimmte Befehl empfangen und ausgeführt werden, während das Befehlsmodul 138 sich im ersten Modus befindet. Der bestimmte Befehl kann beispielsweise ohne Leeren der Befehlsschlange 134 ausgeführt werden.
  • Bezugnehmend auf 2 ist ein besonderes veranschaulichendes Beispiel von Stufen des Betriebs einer Datenspeichervorrichtung dargestellt. Die Datenspeichervorrichtung kann beispielsweise die Datenspeichervorrichtung 102 von 1 enthalten oder dieser entsprechen. Jede Stufe des in 2 dargestellten Betriebs zeigt einen entsprechenden Zustand der Befehlsschlange 134, der Modusangabe 142 und der Anordnung von Bits 136, nachdem eine oder mehrere Funktionen/Operationen ausgeführt worden sind.
  • Eine erste Stufe des Betriebs der Datenspeichervorrichtung ist veranschaulicht und generell mit 200 bezeichnet. Wie in der ersten Stufe des Betriebs bzw. der Operation 200 dargestellt, ist die Modusangabe 142 in einem ersten Befehlsschlangenmodus 202 festgelegt (beispielsweise einem Befehlsschlangenmodus, wenn die Befehlsschlange 134 leer ist), und die Anordnung der Bits 136 ist in einer ersten Autorisierungs-Bitfolge eingestellt, welche dem ersten Befehlsschlangenmodus 202 entspricht.
  • Eine zweite Stufe des Betriebs der Datenspeichervorrichtung ist dargestellt und generell mit 210 bezeichnet. Wie bei der zweiten Stufe des Betriebs 210 dargestellt, ist der zweite Befehl (CMD2) 212 auf die Bestimmung hin, dass der zweite Befehl (CMD2) 212 für eine Ausführung autorisiert ist, empfangen und der Befehlsschlange 134 hinzugefügt worden. Der zweite Befehl (CMD2) 212 kann beispielsweise bestimmt worden sein, um zur Ausführung entsprechend der Anordnung der Bits 136 autorisiert zu werden, wie dies in der ersten Stufe des Betriebs 200 dargestellt ist. Daraufhin, dass der zweite Befehl (CMD2) 212 der Befehlsschlange 134 hinzugefügt worden ist, kann die Modusangabe 142 in einen zweiten Befehlsschlangenmodus 214 aktualisiert werden (beispielsweise in einen Befehlsschlangenmodus, wenn die Befehlsschlange 134 einen oder mehrere Befehle enthält). Die Anordnung der Bits 136 kann auf eine zweite Autorisierungsbitfolge festgelegt sein, die dem zweiten Befehlsschlangenmodus 214 entspricht. Die zweite Autorisierungsbitfolge kann von der ersten Autorisierungsbitfolge verschieden sein. Der vierte Befehl (CMD4) kann beispielsweise für die Ausführung entsprechend der ersten Autorisierungsbitfolge autorisiert sein, und er kann für die Ausführung entsprechend der zweiten Autorisierungsbitfolge nicht autorisiert sein.
  • Eine dritte Stufe des Betriebs der Datenspeichervorrichtung ist dargestellt und generell mit 220 bezeichnet. Wie bei der dritten Stufe des Betriebs 220 dargestellt, ist der dritte Befehl (CMD3) 224 auf eine Bestimmung hin, dass der dritte Befehl (CMD3) 224 für eine Ausführung autorisiert ist, empfangen und der Befehlsschlange 134 hinzugefügt worden. Der dritte Befehl (CMD3) 224 kann beispielsweise bestimmt worden sein, um für eine Ausführung entsprechend der Anordnung der Bits 136 autorisiert zu sein, wie dies in der zweiten Stufe des Betriebs 210 dargestellt ist. Der dritte Befehl (CMD3) 224 kann eine Angabe zur Autorisierung des vierten Befehls (CMD4) für eine Ausführung enthalten haben. Auf die Angabe hin kann ein Bitwert der Anordnung der Bits 136 entsprechend dem vierten Befehl (CMD4) (wie in der zweiten Stufe des Betriebs bzw. der Operation 210 dargestellt) von einem 0-Wert in einen 1-Wert modifiziert worden sein. Demgemäß kategorisiert die Anordnung der Bits 136, wie in der dritten Stufe des Betriebs 220 dargestellt, den vierten Befehl (CDM4) als für eine Ausführung autorisiert, während die Modusangabe 142 der zweite Befehlsschlangenmodus 214 ist (beispielsweise während die Befehlsschlange 134 zumindest einen Befehl enthält).
  • Eine vierte Stufe des Betriebs der Datenspeichervorrichtung ist dargestellt und generell mit 230 bezeichnet. Wie bei der vierten Stufe des Betriebs 230 dargestellt, ist der zweite Befehl (CMD2) 212 auf eine Bestimmung hin, dass der vierte Befehl (CMD4) 236 für eine Ausführung autorisiert ist, empfangen und der Befehlsschlange 134 hinzugefügt worden. Der vierte Befehl (CMD4) 236 kann beispielsweise bestimmt worden sein, um für eine Ausführung entsprechend der Anordnung der Bits 136 autorisiert zu sein, wie dies in der dritten Stufe des Betriebs 220 dargestellt ist.
  • Eine fünfte Stufe des Betriebs der Datenspeichervorrichtung ist dargestellt und generell mit 240 bezeichnet. Wie bei der fünften Stufe der Operation 240 dargestellt, ist der erste Befehl (CMD1) 242 auf eine Bestimmung hin, dass der erste Befehl (CMD1) 242 für eine Ausführung autorisiert ist, empfangen und der Befehlsschlange 134 hinzugefügt worden. Der erste Befehl (CMD1) 242 kann beispielsweise entsprechend der Anordnung der Bits 136 als für eine Ausführung autorisiert bestimmt worden sein, wie dies in der vierten Stufe des Betriebs 230 dargestellt ist. Zusätzlich sind der dritte Befehl (CMD3) 224 und der vierte Befehl (CMD4) 236 jeweils ausgeführt worden. Nach Ausführen des vierten Befehls (CMD4) kann der Bitwert der Anordnung der Bits 136 entsprechend dem vierten Befehl (CMD4) (wie in der vierten Stufe des Betriebs 230 dargestellt) von einem 1-Wert in einen 0-Wert modifiziert worden sein. Demgemäß kategorisiert die Anordnung der Bits 136, wie in der fünften Stufe des Betriebs 240 dargestellt, den vierten Befehl (CMD4) als für eine Ausführung nicht autorisiert, während die Modusangabe 142 sich in dem zweiten Befehlsschlangenmodus 214 befindet (beispielsweise die Befehlsschlange 134 zumindest einen Befehl enthält). Die Anordnung der Bits 136 kann, wie bei der fünften Stufe des Betriebs 240 dargestellt, beispielsweise der zweiten Autorisierungsbitfolge entsprechen.
  • Eine sechste Stufe des Betriebs der Datenspeichervorrichtung ist dargestellt und generell mit 250 bezeichnet. Wie bei der sechsten Stufe des Betriebs 250 dargestellt, ist der erste Befehl (CMD1) 424 ausgeführt worden. Nach Ausführen des ersten Befehls (CMD1) ist die Befehlsschlange 134 leer. Daraufhin, dass die Befehlsschlange 134 leer ist, kann die Modusangabe 142 in dem ersten Befehlsschlangenmodus 202 festgelegt werden, und die Anordnung der Bits 136 kann in die erste Autorisierungsbitfolge festgelegt sein.
  • Eine siebte Stufe des Betriebs der Datenspeichervorrichtung ist dargestellt und generell mit 260 bezeichnet. Wie bei der siebten Stufe des Betriebs 260 dargestellt, ist ein Modusänderungsbefehl empfangen worden, und die Modusangabe 142 ist vom ersten Befehlsschlangenmodus 202 in einen Nichtbefehlsschlangenmodus 254, wie einen Transfermodus geändert worden. Daraufhin, dass sich die Modusangabe 142 in Nichtbefehlsschlangenmodus 154 befindet, ist die Anordnung der Bits 136 auf eine dritte Autorisierungsbitfolge festgelegt worden, welche dem Nichtbefehlsschlangenmodus 254 entspricht. Die dritte Autorisierungsbitfolge kann von der ersten Autorisierungsbitfolge, der zweiten Autorisierungsbitfolge oder beiden verschieden sein.
  • Die unter Bezugnahme auf 2 beschriebenen Beispiele der verschiedenen Stufen des Betriebs veranschaulichen somit, wie die Anordnung der Bits 136 modifiziert werden kann, um temporär zu autorisieren, einen bestimmten Befehl während eines Befehlsschlangenmodus auszuführen, wie des ersten Befehlsschlangenmodus 202 oder des zweiten Befehlsschlangenmodus 214. Der bestimmte Befehl kann beispielsweise temporär autorisieren, ohne dass die Befehlsschlange 134 zu leeren ist und ohne sämtliche anhängenden Befehle in der Befehlsschlange 134 auszuführen.
  • Bezugnehmend auf 3 ist ein bestimmtes veranschaulichendes Beispiel eines Verfahrens zur Autorisierung der Ausführung eines nicht autorisierten Befehls dargestellt und generell mit 300 bezeichnet. Das Verfahren 300 kann in der Datenspeichervorrichtung 102, wie der Steuereinrichtung 130, und/oder der Zugriffsvorrichtung 170 von 1 oder in einer Kombination daraus als veranschaulichende, nicht beschränkende Beispiele ausgeführt werden.
  • Das Verfahren 300 schließt bei 302, währenddessen sich die Datenspeichervorrichtung in einem ersten Modus befindet, durch einen ersten Befehl den Empfang einer Angabe zur Autorisierung der Ausführung eines zweiten Befehls ein, der durch Daten, die für die Steuereinrichtung verfügbar sind, als nicht autorisierter Befehl kategorisiert ist. Die Angabe kann beispielsweise die Angabe 164 von 1 enthalten oder dieser entsprechen, welche in der Steuereinrichtung 130 durch den Befehl 162 aufgenommen ist. Um zu identifizieren, dass die Angabe empfangen worden ist, können Bits von empfangenen Befehlen analysiert werden, um zu bestimmen, ob irgendeiner der empfangenen Befehle die Angabe enthält. Die Angabe kann einen Befehlsindex und ein Freigabebit enthalten. Der Befehlsindex ist dem Befehl zugehörig. Zur Veranschaulichung kann der Befehlsindex einen Identifizierer des Befehls enthalten, wie einen Bitwert, der einem Operationscode des Befehls entspricht. Das Freigabebit kann einen Wert aufweisen, der angibt, ob der Befehl als autorisiert oder nicht autorisiert zu kategorisieren ist. Der erste Modus kann einen Befehlsschlangenmodus enthalten, wie einen Befehlsschlangenmodus eines (eMMC)-Protokolls.
  • Bei einigen Realisierungen kann die Angabe durch eine Datenspeichervorrichtung, wie die Datenspeichervorrichtung 102 von 1 empfangen sein. Die Angabe kann beispielsweise in einer Steuereinrichtung, wie der Steuereinrichtung 130 von 1 der Datenspeichervorrichtung über ein Interface, wie ein eMMC-Interface der Datenspeichervorrichtung empfangen werden. Die Steuereinrichtung kann ausgelegt sein, um entsprechend einem ersten Modus zu arbeiten, wenn die Angabe empfangen wird. Während die Vorrichtung sich im ersten Modus befindet, kann die Steuereinrichtung konfiguriert sein, um erste Befehle von einem oder mehreren autorisierten Befehlen auszuführen und um zweite Befehle des einen oder der mehreren nicht autorisierten Befehle auszuscheiden (oder in anderer Weise nicht auszuführen).
  • Das Verfahren 300 schließt außerdem auf die Angabe hin bei 304 ein Modifizieren der Daten zur Autorisierung der Ausführung des zweiten Befehls ein, während sich die Steuereinrichtung im ersten Modus befindet. Die Daten, auf die für die Steuereinrichtung zugreifbar ist, können beispielsweise die Anordnung von Bits 136 von 1 und 2 enthalten. Bei diesem Beispiel kann das Modifizieren der Daten zur Autorisierung der Ausführung des zweiten Befehls ein Ändern eines Wertes von einem oder mehreren der Bits der Anordnung von Bits 136 einschließen.
  • Bei einigen Realisierungen kann der Befehl empfangen sein, und der zweite Befehl kann die Angabe enthalten. Falls die Angabe in dem zweiten Befehl enthalten ist, kann der zweite Befehl ausgeführt werden, nachdem die Daten zur Kategorisierung des zweiten Befehls als autorisiert modifiziert sind. Bei anderen Realisierungen kann ein zweiter Befehl empfangen sein, der die Angabe enthält. Die Angabe kann beispielsweise in reservierten Bits des zweiten Befehls enthalten sein.
  • Bei einigen Realisierungen kann das Verfahren 300 nach Modifizieren der Daten zur Kategorisierung des zweiten Befehls als autorisiert den Empfang des zweiten Befehls und die Ausführung des zweiten Befehls einschließen. Zur Veranschaulichung kann die Datenspeichervorrichtung den zweiten Befehl empfangen, währenddessen die Datenspeichervorrichtung (beispielsweise die Steuereinrichtung) im ersten Modus konfiguriert ist. Ein Befehlsindexwert des zweiten Befehls kann identifiziert werden, und auf der Grundlage des Befehlsindexwertes hin kann ein Bit einer Anordnung von Bits identifiziert werden. Jedes Bit der Anordnung von Bits entspricht einem anderen Befehlsindexwert. Die Anordnung der Bits kann beispielsweise die Anordnung der Bits 136 enthalten oder dieser entsprechen. Das identifizierte Bit der Anordnung der Bits kann dem Befehlsindexwert (z.B. dem Befehl) entsprechen, und ein Wert des Bits kann angeben, ob die Ausführung des zweiten Befehls autorisiert (zugelassen) oder nicht autorisiert (gesperrt) ist. Auf die Bestimmung hin, dass die Ausführung des zweiten Befehls auf der Grundlage des Wertes des Bits hin autorisiert ist, kann der zweite Befehl für eine Befehlsschlange bereitgestellt werden.
  • Nach Ausführung des zweiten Befehls (oder nachdem der zweite Befehl für die Befehlsschlange bereitgestellt ist) kann das Befehlsmodul konfiguriert werden bzw. sein, um den zweiten Befehl zurückzuweisen (beispielsweise auszuscheiden), währenddessen sich die Vorrichtung im ersten Modus befindet. Nach Ausführen des zweiten Befehls (oder nachdem der zweite Befehl für die Befehlsschlange bereitgestellt ist), kann das Steuermodul beispielsweise die Daten automatisch modifizieren, um den zweiten Befehl als für die Ausführung im ersten Modus nicht autorisiert zu kategorisieren. Als weiteres Beispiel kann nach der Ausführung des zweiten Befehls (oder nachdem der zweite Befehl für die Befehlsschlange bereitgestellt ist) eine zweite Angabe des zweiten Befehls empfangen werden (beispielsweise durch einen dritten Befehl), und das Befehlsmodul kann die Daten zur Kategorisierung des zweiten Befehls auf der Grundlage der zweiten Angabe als für die Ausführung im ersten Modus nicht autorisiert kategorisieren.
  • Durch Freigeben des Befehlsmoduls zum Autorisieren der Ausführung des zweiten Befehls, währenddessen im ersten Modus verblieben wird, kann der zweite Befehl empfangen und ausgeführt werden, während das Befehlsmodul sich im ersten Modus befindet, ohne dass die Befehlsschlange 134 geleert wird,
  • Bezugnehmend auf 4 ist ein bestimmtes veranschaulichendes Beispiel eines Verfahrens zum Senden einer Angabe wonach die Ausführung eines nicht autorisierten Befehls autorisiert ist, dargestellt und generell mit 400 bezeichnet, dass. Das Verfahren 400 kann als veranschaulichende, nicht beschränkende Beispiele in der Datenspeichervorrichtung 102, wie der Steuereinrichtung 130, und/oder der Zugriffsvorrichtung 170 von 1 oder in einer Kombination daraus ausgeführt werden.
  • Das Verfahren 400 schließt bei 402 ein Bestimmen ein, dass eine Vorrichtung in einem ersten Modus konfiguriert ist. Das Verfahren 400 schließt außerdem bei 404 das Senden einer Angabe, dass die Ausführung eines im ersten Modus zugehörigen nicht autorisierten Befehls autorisiert ist, währenddessen sich die Vorrichtung im ersten Modus befindet, an die Vorrichtung ein, währenddessen die Vorrichtung sich im ersten Modus befindet. Die Angabe kann als veranschaulichendes, nicht beschränkendes Beispiel beispielsweise die Angabe 164 von 1 enthalten oder dieser entsprechen. Die Angabe kann über ein Interface, wie das dritte Interface 172, gesendet werden, welches konfiguriert ist, um die Angabe an die Vorrichtung zu senden. Das Interface kann ein eMMC-Interface enthalten.
  • Bei einigen Realisierungen kann das Verfahren 400 das Senden des nicht autorisierten Befehls an die Vorrichtung enthalten. Die Angabe kann in dem nicht autorisierten Befehl enthalten sein. Alternativ kann die Angabe in einem anderen Befehl enthalten sein, der an die Vorrichtung gesendet wird, bevor der nicht autorisierte Befehl an die Vorrichtung gesendet wird. Der andere Befehl kann ein autorisierter Befehl oder ein weiterer nicht autorisierter Befehl sein.
  • Bei einigen Realisierungen kann ein Befehl (beispielsweise der nicht autorisierte Befehl oder ein weiterer Befehl) erzeugt werden, der die Angabe enthält. Ein Prozessor, wie der Prozessor 174, kann beispielsweise konfiguriert sein, um die Angabe zu erzeugen, die als Teil des Befehls eingeschlossen ist. Die Angabe kann beispielsweise in einem Satz von reservierten Bits des Befehls enthalten sein. Zusätzlich zur Angabe der Autorisierung für die Ausführung des nicht autorisierten Befehls kann die Angabe außerdem angeben, dass die Ausführung eines dem ersten Modus zugehörigen zweiten nicht autorisierten Befehls autorisiert ist, währenddessen sich die Vorrichtung im ersten Modus befindet. Zur Veranschaulichung kann die Angabe einen dem nicht autorisierten Befehl zugehörigen ersten Befehlsindex (der beispielsweise den nicht autorisierten Befehl identifiziert) und einen dem zweiten nicht autorisierten Befehl zugehörigen zweiten Befehlsindex (der beispielsweise den zweiten nicht autorisierten Befehl identifiziert) enthalten.
  • Durch Erzeugen der Angabe kann die Zugangsvorrichtung die Vorrichtung zum temporären Autorisieren der Ausführung eines nicht autorisierten Befehls instruieren, währenddessen sich die Vorrichtung im ersten Modus befindet. Nachdem autorisiert ist, kann der Befehl beispielsweise ausgeführt werden, währenddessen sich die Vorrichtung im ersten Modus befindet, ohne dass eine Befehlsschlange der Vorrichtung aufzulösen ist und ohne dass sämtliche schwebenden Befehle in der Befehlsschlange auszuführen sind. Durch Senden der Angabe an die Vorrichtung braucht die Zugriffsvorrichtung demgemäß nicht darauf zu warten, dass die Befehlsschlange aufgelöst wird, oder auf sämtliche schwebenden Befehle in der Befehlsschlange zu warten, um vor der Ausführung des nicht autorisierten Befehls ausgeführt zu werden.
  • Das Verfahren 300 von 3 und/oder das Verfahren 400 von 4 kann durch eine anwendungsspezifische integrierte Schaltung (ASIC), eine Verarbeitungseinheit, wie eine Zentraleinheit bzw. zentrale Verarbeitungseinheit (CPU), eine Steuereinrichtung, eine andere Handwarevorrichtung, eine Firmwarevorrichtung, eine im Feld programmierbare Gatearray-(FPGA)-Vorrichtung oder irgendeine Kombination daraus initiiert oder gesteuert werden. Als Beispiel kann bzw. können das Verfahren 300 von 3 und/oder das Verfahren 400 von 4 durch einen oder mehrere Prozessoren, wie einen oder mehrere Prozessoren, die in einer Steuereinrichtung enthalten oder mit dieser gekoppelt sind, oder einen Speicher der Datenspeichervorrichtung 102 oder der Zugriffsvorrichtung 170 von 1 initiiert oder gesteuert werden. Eine Steuereinrichtung, die konfiguriert ist, um das Verfahren 300 von 3 und/oder das Verfahren 400 von 4 auszuführen, kann imstande sein, die Ausführung eines nicht autorisierten Befehls zu autorisieren. Als Beispiel kann bzw. können ein oder mehrere der Verfahren von 3-4 individuell oder in Kombination durch die Steuereinrichtung 130 von 1 ausgeführt werden. Zur Veranschaulichung kann ein Teil eines der Verfahren von 3-4 mit einem zweiten Teil eines der Verfahren von 3-4 kombiniert werden. Zusätzlich kann bzw. können eine oder mehrere Operationen, die in Bezug auf 3-4 beschrieben worden sind, optional sein, und sie können zumindest teilweise gleichzeitig ausgeführt werden und/oder sie können in einer anderen Reihenfolge als dargestellt oder beschrieben ausgeführt werden.
  • Obwohl verschiedene Komponenten der Datenspeichervorrichtung 102, wie die Steuereinrichtung 130 oder die Zugriffsvorrichtung 170 von 1 hier als Blockkomponenten dargestellt und in generellen Begriffen beschrieben sind, können derartige Komponenten eine oder mehrere physikalische Komponenten, wie Hardware-Steuereinrichtungen, einen oder mehrere Mikroprozessoren, Zustandsmaschinen, Logikschaltungen, eine oder mehrere andere Strukturen oder Schaltungen oder eine Kombination daraus enthalten, die konfiguriert sind bzw. ist, um den verschiedenen Komponenten zu ermöglichen, hier beschriebene Operationen auszuführen.
  • Hier beschriebene Komponenten können unter Heranziehung von einem oder mehreren Knoten, einem oder mehreren Bussen bzw. Busleitungen (beispielsweise Datenbussen und/oder Steuerungsbussen), einem oder mehreren anderen Strukturen oder einer Kombination daraus arbeitsmäßig miteinander gekoppelt sein. Ein oder mehrere Aspekte der verschiedenen Komponenten können unter Verwendung eines Mikroprozessors oder Microcontrollers implementiert sein, der zur Ausführung hier beschriebener Operationen programmiert ist, wie einer oder mehrerer Operationen des Verfahrens 300 von 3 und/oder des Verfahrens 400 von 4.
  • Alternativ oder zusätzlich können ein oder mehrere Aspekte der Datenspeichervorrichtung 102, wie der Steuereinrichtung 130 oder der Zugriffsvorrichtung 170 von 1 unter Verwendung des Mikroprozessors oder Microcontrollers implementiert sein, der programmiert ist (beispielsweise durch Ausführen von Befehlen), um hier beschriebene Operationen auszuführen, wie eine oder mehrere Operationen des Verfahrens 300 von 3 und/oder eine oder mehrere Operationen des Verfahrens 400 von 4, wie hier weiter beschrieben. Als veranschaulichendes, nicht beschränkendes Beispiel enthält die Datenspeichervorrichtung 102 einen Prozessor, der Befehle (beispielsweise Firmware) ausführt, die aus dem Speicher 104 abgeholt sind. Alternativ oder zusätzlich können Befehle, die durch den Prozessor ausgeführt werden, aus einer gesonderten Speicherstelle abgeholt werden, die nicht Teil des Speichers 104 ist, wie eines Festwert- bzw. Lesespeichers (ROM).
  • Bei einigen Realisierungen können die Steuereinrichtung 130, die Speichervorrichtung 103 und/oder die Zugriffsvorrichtung 170 von 1 jeweils einen Prozessor zum Ausführen von Befehlen enthalten, die in einem Speicher, wie einem nicht flüchtigen Speicher der Datenspeichervorrichtung 102 oder der Zugriffsvorrichtung 170 von 1 gespeichert sind. Alternativ oder zusätzlich können ausführbare Befehle, die durch den Prozessor ausgeführt werden, an einer gesonderten Speicherstelle gespeichert sein, die nicht Teil des nicht flüchtigen Speichers, wie eines Festwert- bzw. Lesespeichers ROM) der Datenspeichervorrichtung 102 oder der Zugriffsvorrichtung 170 von 1 ist.
  • Der Speicher 104 kann einen Widerstands-Speicher mit wahlfreiem Zugriff (ReRAM), einen dreidimensionalen (3D)-Speicher, einen Flashspeicher (beispielsweise einen NAND-Speicher, einen NOR-Speicher, einen Einzelebenenzellen-(SLC)-Flashspeicher, einen Mehrebenenzellen-(MLC)-Flashspeicher, einen NOR-(DINOR)-Speicher mit unterteilter Bitleitung, einen UND-Speicher, eine (HiCR)-Vorrichtung mit hochkapazitivem Kopplungsverhältnis, eine asymmetrische taktlose Transistor-(ACT)-Vorrichtung oder einen anderen Flashspeicher, einen löschbaren programmierbaren Festwert- bzw. Lesespeicher (EPROM), einen elektrisch löschbaren programmierbaren Festwert- bzw. Lesespeicher (EEPROM), einen Festwert- bzw. Lesespeicher (ROM), einen einmal programmierbaren Speicher (OTP) oder eine Kombination daraus enthalten. Alternativ oder zusätzlich kann der Speicher 104 irgendeinen anderen Speichertyp enthalten. Der Speicher 104 kann eine Halbleiterspeichervorrichtung enthalten.
  • Halbleiterspeichervorrichtungen enthalten flüchtige Speichervorrichtungen, wie dynamische Schreib-Lesespeicher-(„DRAM“)-Vorrichtungen mit wahlfreiem Zugriff oder statische Schreib-Lesespeicher („SRAM“)-Vorrichtungen mit wahlfreiem Zugriff, nichtflüchtige Speichervorrichtungen, wie magnetoresitive Speicher mit wahlfreiem Zugriff („MRAM“), Widerstands-Speicher mit wahlfreiem Zugriff („ReRAM“), elektrisch löschbare programmierbare Festwertspeicher („EEPROM“), Flashspeicher, (die auch als Untersatz von EEPROM betrachtet werden können), ferroelektrische Schreib-Lesespeicher („FRAM“) mit wahlfreiem Zugriff und andere Halbleiterelemente, die imstande sind, Informationen zu speichern. Jeder Typ von Speichervorrichtung kann verschiedene Konfigurationen aufweisen. Flashspeichervorrichtungen können beispielsweise in einer NAND- oder NOR-Konfiguration ausgelegt sein.
  • Die Speichervorrichtungen können aus passiven und/oder aktiven Elementen in irgendwelchen Kombinationen gebildet sein. Durch nicht beschränkendes Beispiel enthalten passive Halbleiterspeicherelemente ReRAM-Vorrichtungselemente, die bei einigen Realisierungen ein Widerstands-Schaltspeicherelement enthalten, wie eine Antisicherung, ein Phasenänderungsmaterial, etc. und optional ein Steuerungselement, wie eine Diode, etc. Durch nicht beschränkendes Beispiel enthalten aktive Halbleiterspeicherelemente ferner EEPROM- und Flashspeichervorrichtungselemente, die bei einigen Implementierungen Elemente enthalten, welche einen Ladungsspeicherbereich, wie ein schwebendes Gate, leitende Nanopartikel oder ein dielektrisches Ladungsspeichermaterial enthalten.
  • Eine Mehrzahl von Speicherelementen kann so konfiguriert sein, dass sie in Reihe oder so verbunden sind, dass auf jedes Element individuell zugreifbar ist. Durch nicht beschränkendes Beispiel enthalten die Flashspeichervorrichtungen in einer NAND-Konfiguration (NAND-Speicher) in typischer Weise in Reihe geschaltete Speicherelemente. Ein NAND-Speicherarray kann so konfiguriert sein, dass das betreffende Array aus einer Mehrzahl von Speicherketten aufgebaut ist, in denen eine Kette aus einer Mehrzahl von Speicherelementen besteht, die eine einzige Bitleitung gemeinsam nutzen und auf die als Gruppe zugegriffen wird. Alternativ können Speicherelemente so konfiguriert sein, dass auf jedes Element individuell zugreifbar ist, z.B. ein NOR-Speicherarray. NAND- und NOR-Speicherkonfigurationen sind beispielhaft und Speicherelemente können in anderer Weise ausgelegt bzw. konfiguriert sein.
  • Die in und/oder über einem Substrat sich befindenden Halbleiterspeicherelemente können in zwei oder drei Dimensionen angeordnet sein, wie als eine zweidimensionale Speicherstruktur oder als eine dreidimensionale Speicherstruktur. Bei einer zweidimensionalen Speicherstruktur sind die Halbleiterspeicherelemente in einer einzigen Ebene oder in einer einzigen Speichervorrichtungsebene angeordnet. In typischer Weise sind Speicherelemente bei einer zweidimensionalen Speicherstruktur in einer Ebene angeordnet (beispielsweise in einer Ebene der x-z-Richtung), die sich im wesentliche parallel zu einer Hauptfläche eines Substrats erstreckt, welches die Speicherelemente trägt. Das Substrat kann ein Wafer sein, über dem oder in dem die Schicht der Speicherelemente gebildet ist, oder es kann ein Trägersubstrat sein, welches an den Speicherelementen angebracht ist, nachdem sie gebildet sind. Als nicht beschränkendes Beispiel kann das Substrat einen Halbleiter, wie Silizium enthalten.
  • Die Speicherelemente können in einer geordneten Reihe in einer einzigen Speichervorrichtungsebene angeordnet sein, wie in einer Vielzahl von Zeilen und/oder Spalten. Die Speicherelemente können jedoch in nicht regelmäßigen oder nicht orthogonalen Konfigurationen angeordnet sein. Die Speicherelemente können jeweils zwei oder mehr Elektroden oder Kontaktleitungen, wie Bitleitungen und Wortleitungen aufweisen.
  • Ein dreidimensionales Speicherarray ist so angeordnet, dass Speicherelemente eine Mehrzahl von Ebenen oder eine Mehrzahl von Speichervorrichtungsebenen einnehmen, wodurch eine Struktur in drei Dimensionen gebildet ist (das heißt in den Richtungen x, y und z, wobei die y-Richtung im wesentlichen rechtwinklig und die x- und z-Richtungen im wesentlichen parallel zur Hauptfläche des Substrats verlaufen). Als nicht beschränkendes Beispiel kann eine dreidimensionale Speicherstruktur vertikal als ein Stapel aus einer Mehrzahl von zweidimensionalen Speichervorrichtungsebenen angeordnet sein. Als weiteres nicht beschränkendes Beispiel kann ein dreidimensionales Speicherarray als Mehrzahl von vertikalen Spalten angeordnet sein (beispielsweise als Spalten, die im Wesentlichen rechtwinklig zur Hauptfläche des Substrats, das heißt in der y-Richtung verlaufen), wobei jede Spalte eine Mehrzahl von Speicherelementen in jeder Spalte aufweist. Die Spalten können in einer zweidimensionalen Konfiguration angeordnet sein, beispielsweise in einer x-z-Ebene, was zu einer dreidimensionalen Anordnung aus Speicherelementen führt, bei denen die Elemente sich in einer Mehrzahl von vertikal gestapelten Speicherebenen befinden. Andere Konfigurationen von Speicherelementen in drei Dimensionen können ebenfalls ein dreidimensionales Speicherarray bilden.
  • Durch ein nicht beschränkendes Beispiel in einem dreidimensionalen NAND-Speicherarray können die Speicherelemente zur Bildung einer NAND-Kette innerhalb einer einzigen horizontalen (z.B. x-z)-Speichervorrichtungsebene miteinander gekoppelt sein. Alternativ können die Speicherelemente zur Bildung einer vertikalen NAND-Kette miteinander gekoppelt sein, die über eine Mehrzahl von horizontalen Speichervorrichtungsebenen verläuft. Andere dreidimensionale Konfigurationen können in Betracht gezogen werden, bei denen einige NAND-Ketten Speicherelemente in einer einzigen Speicherebene enthalten, während andere Ketten Speicherelemente enthalten, die sich über eine Mehrzahl von Speicherebenen erstrecken. Dreidimensionale Speicherarrays können außerdem in einer NOR-Konfiguration und in einer ReRAM-Konfiguration ausgelegt sein.
  • In typischer Weise sind in einem monolithischen dreidimensionalen Speicherarray eine oder mehrere Speichervorrichtungsebenen oberhalb eines einzigen Substrats gebildet. Optional kann das monolithische dreidimensionale Speicherarray auch eine oder mehrere Speicherebenen zumindest teilweise innerhalb des einzigen Substrats aufweisen. Als nicht beschränkendes Beispiel kann das Substrat ein Halbleitermaterial, wie Silizium enthalten. In einem monolithischen dreidimensionalen Array sind die die jeweilige Speichervorrichtungsebene des Arrays bildenden Schichten in typischer Weise auf den Schichten der darunterliegenden Speichervorrichtungsebenen des Arrays gebildet. Die Schichten von benachbarten Speichervorrichtungsebenen eines monolithischen dreidimensionalen Speicherarrays können jedoch zwischen den Speichervorrichtungsebenen eingefügte Schichten gemeinsam nutzen oder solche aufweisen.
  • Alternativ können zweidimensionale Arrays separat gebildet und dann zusammengepackt sein, um eine nichtmonolithische Speichervorrichtung zu bilden, die eine Mehrzahl von Speicherschichten aufweist. Nicht monolithische gestapelte Speicher können beispielsweise dadurch aufgebaut sein, dass Speicherebenen auf gesonderten Substraten gebildet werden und dass dann die Speicherebenen übereinander gestapelt werden. Die Substrate können vor dem Stapeln aus den Speichervorrichtungsebenen ausgedünnt oder entfernt sein, wobei jedoch die Speichervorrichtungsebenen zunächst über gesonderten Substraten gebildet sind; die resultierenden Speicherarrays sind keine monolithischen dreidimensionalen Speicherarrays. Ferner kann eine Mehrzahl von zweidimensionalen Speicherarrays oder dreidimensionalen Speicherarrays (monolithisch oder nicht monolithisch) auf gesonderten Chips gebildet und dann zur Bildung einer auf einem Chip gestapelten Speichervorrichtung zusammengepackt sein.
  • Eine zugehörige Schaltungsanordnung wird in typischer Weise für den Betrieb der Speicherelemente und für eine Kommunikation mit den Speicherelementen verwendet. Als nicht beschränkende Beispiele können Speichervorrichtungen eine Schaltungsanordnung aufweisen, die zur Steuerung und zur Ansteuerung von Speicherelementen verwendet wird, um Funktionen, wie ein Programmieren und Lesen auszuführen. Diese zugehörige Schaltungsanordnung kann auf demselben Substrat wie die Speicherelemente und/oder auf einem gesonderten Substrat sein. Eine Steuereinrichtung für Speicher-Lese-Schreiboperationen kann sich beispielsweise auf einem gesonderten Steuereinrichtungschip und/oder auf demselben Substrat wie die Speicherelemente befinden.
  • Ein Durchschnittsfachmann wird erkennen, dass diese Offenbarung nicht auf die beschriebenen zweidimensionalen und dreidimensionalen veranschaulichenden Strukturen beschränkt ist, sondern sämtliche relevanten Speicherstrukturen innerhalb des Schutzumfangs der Offenbarung, wie hier beschrieben und von einem Durchschnittsfachmann verstanden wird, abdeckt. Die Veranschaulichungen der hier beschriebenen Beispiele dienen dem Zweck, für ein generelles Verständnis der verschiedenen Aspekte der Offenbarung zu sorgen. Andere Realisierungen können angewandt und aus der Offenbarung abgeleitet werden, so dass strukturelle und logische Substitutionen und Änderungen ohne Abweichung vom Schutzumfang der Offenbarung vorgenommen werden können. Diese Offenbarung dient dem Zweck, jegliche und sämtliche nachfolgenden Adaptionen oder Abänderungen von verschiedenen Realisierungen abzudecken. Durchschnittsfachleute werden erkennen, dass derartige Modifikationen innerhalb des Schutzumfangs der vorliegenden Offenbarung liegen.
  • Der oben offenbarte Gegenstand ist als veranschaulichend und nicht beschränkend zu betrachten, und die angefügten Ansprüche dienen dem Zweck, sämtliche derartige Modifikationen, Verbesserungen und anderen Realisierungen abzudecken, die in den Schutzumfang der vorliegenden Offenbarung fallen. Im durch Gesetz zugelassenen maximalen Ausmaß ist somit der Schutzumfang der vorliegenden Offenbarung durch die breitest zulässige Interpretation der folgenden Ansprüche und deren Äquivalente zu bestimmen und sollte nicht durch die vorstehende detaillierte Beschreibung eingeschränkt oder beschränkt sein.

Claims (27)

  1. Was beansprucht wird, ist:
  2. Eine Vorrichtung, umfassend: einen Speicher und eine mit dem Speicher gekoppelte Steuereinrichtung, worin bzw. wobei die Steuereinrichtung, währenddessen sie sich in einem ersten Modus befindet, konfiguriert ist, um durch einen ersten Befehl eine Angabe zur Autorisierung der Ausführung eines zweiten Befehls zu empfangen, der durch für die Steuereinrichtung verfügbare Daten als nicht autorisierter Befehl klassifiziert ist, und wobei die Steuereinrichtung ferner konfiguriert ist, um auf die Angabe hin die Daten zur Autorisierung der Ausführung des zweiten Befehls zu modifizieren, während sich die Steuereinrichtung in dem ersten Modus befindet.
  3. Die Vorrichtung von Anspruch 1, worin bzw. wobei der erste Modus einen Befehlsschlangenmodus umfasst.
  4. Die Vorrichtung von Anspruch 1, worin bzw. wobei die Steuereinrichtung, währenddessen sich die Vorrichtung im ersten Modus befindet, konfiguriert ist, um auf der Grundlage der Daten einen oder mehrere autorisierte Befehle auszuführen und einen oder mehrere nicht autorisierte Befehle auszuscheiden.
  5. Die Vorrichtung von Anspruch 1, worin bzw. wobei die Angabe einen Befehlsindex und ein Freigabebit enthält, wobei der Befehlsindex dem Befehl zugehörig ist und wobei das Freigabebit angibt, die Ausführung des zweiten Befehls zu autorisieren.
  6. Die Vorrichtung von Anspruch 1, ferner umfassend einen Satz von Registern, die eine Anordnung von Bits enthalten, wobei die Anordnung der Bits für jeden Befehl einer Vielzahl von Befehlen ein entsprechendes Bit der Daten enthält und wobei jeder Befehl der Vielzahl von Befehlen auf der Grundlage eines Bitwertes des entsprechenden Bits als autorisiert oder nicht autorisiert klassifiziert ist.
  7. Die Vorrichtung von Anspruch 5, worin bzw. wobei ein bestimmtes Bit der Anordnung von Bits dem zweiten Befehl entspricht und wobei die Steuereinrichtung konfiguriert ist, um einen Wert des bestimmten Bits von einem ersten Wert in einen zweiten Wert zu ändern, um die Daten zur Autorisierung der Ausführung des zweiten Befehls zu modifizieren.
  8. Die Vorrichtung von Anspruch 6, worin bzw. wobei die Steuereinrichtung konfiguriert ist, um den Wert des bestimmten Bits von dem zweiten Wert in den ersten Wert zu ändern, um die Ausführung des zweiten Befehls zu sperren, währenddessen die Vorrichtung sich im ersten Modus befindet.
  9. Die Vorrichtung von Anspruch 1, worin bzw. wobei der Speicher einen nicht flüchtigen Speicher umfasst, der eine dreidimensionale (3D)-Speicherkonfiguration enthält, die in einer oder mehreren physikalischen Ebenen von Arrays aus Speicherelementen monolithisch gebildet ist, welche einen oberhalb eines Siliziumsubstrats angeordneten aktiven Bereich aufweisen, und ferner umfassend eine der Operation der Speicherelemente zugehörige Schaltungsanordnung.
  10. Ein Verfahren umfassend: in einer Datenspeichervorrichtung, die einen Speicher und eine Steuereinrichtung enthält, werden ausgeführt: während des Arbeitens in einem ersten Modus wird ein erster Befehl empfangen, der eine Angabe darüber enthält, um die Ausführung eines zweiten Befehls zu autorisieren, während der zweite Befehl durch für die Steuereinrichtung verfügbare Daten als ein nicht autorisierter Befehl in dem ersten Modus klassifiziert wird, und Modifizieren der Daten auf die Angabe hin, um die Ausführung des zweiten Befehls zu autorisieren, währenddessen sich die Steuereinrichtung in dem ersten Modus befindet.
  11. Das Verfahren von Anspruch 9, ferner umfassend Parsing- bzw. Analysierbits von empfangenen Befehlen zur Bestimmung ob irgendeiner der empfangenen Befehle die Angabe enthält.
  12. Das Verfahren von Anspruch 9, worin bzw. wobei die Angabe in reservierten Bits des ersten Befehls enthalten ist.
  13. Das Verfahren von Anspruch 9, worin bzw. wobei der erste Befehl durch die Daten als ein autorisierter Befehl in dem ersten Modus klassifiziert wird.
  14. Das Verfahren von Anspruch 9, ferner umfassend ein Empfangen des zweiten Befehls nach Modifizieren der Daten und ein Ausführen des zweiten Befehls während des ersten Modus.
  15. Das Verfahren von Anspruch 9, ferner umfassend ein Empfangen des zweiten Befehls nach Modifizieren der Daten, ein Ausführen des zweiten Befehls während des ersten Modus und ein Modifizieren der Daten nach Ausführen des zweiten Befehls, um den zweiten Befehl als für die Ausführung in dem ersten Modus nicht autorisiert zu klassifizieren.
  16. Das Verfahren von Anspruch 14, worin bzw. wobei die Daten modifiziert werden, um den zweiten Befehl für eine Ausführung in dem ersten Modus automatisch nach dem Ausführen des zweiten Befehls als nicht autorisiert zu klassifizieren.
  17. Das Verfahren nach Anspruch 14, worin bzw. wobei die Daten modifiziert werden, um den zweiten Befehl für eine Ausführung in dem ersten Modus auf den Empfang eines dritten Befehls hin als nicht autorisiert zu klassifizieren.
  18. Das Verfahren von Anspruch 9, ferner umfassend ein Empfangen des zweiten Befehls, währenddessen die Datenspeichervorrichtung in dem ersten Modus konfiguriert ist, Identifizieren eines Befehlsindexwertes des zweiten Befehls, Identifizieren eines Bits einer Anordnung von Bits auf der Grundlage des Befehlsindexwertes, wobei ein Wert des Bits angibt, ob eine Ausführung des zweiten Befehls autorisiert oder nicht autorisiert ist, und Bereitstellen des zweiten Befehls für eine Befehlsschlange auf eine Bestimmung hin, dass die Ausführung des zweiten Befehls auf der Grundlage des Wertes des Bits autorisiert ist.
  19. Das Verfahren von Anspruch 17, worin bzw. wobei jedes Bit der Anordnung von Bits einem anderen Befehlsindexwert entspricht.
  20. Eine Zugriffsvorrichtung, umfassend: einen Speicher, der zur Speicherung von Befehlen konfiguriert ist, und einen mit dem Speicher gekoppelten Prozessor, wobei der Prozessor konfiguriert ist, um die Befehle zur Veranlassung des Prozessors auszuführen, um zu bestimmen, dass eine Vorrichtung in einem ersten Modus konfiguriert ist, und um der Vorrichtung, währenddessen sich die Vorrichtung in dem ersten Modus befindet, eine Angabe darüber zu senden, dass die Ausführung eines dem ersten Modus zugehörigen nicht autorisierten Befehls autorisiert ist, währenddessen sich die Vorrichtung im ersten Modus befindet.
  21. Die Zugriffsvorrichtung nach Anspruch 19, ferner umfassend ein Interface zum Senden der Angabe an die Vorrichtung.
  22. Die Zugriffsvorrichtung nach Anspruch 19, worin bzw. wobei der Prozessor konfiguriert ist, um die Angabe zu erzeugen.
  23. Ein Verfahren, umfassend: in einer mit einer Datenspeichervorrichtung gekoppelten Zugriffsvorrichtung werden ausgeführt: Bestimmen, dass die Datenspeichervorrichtung in einem ersten Modus konfiguriert ist, und Senden einer Angabe an die Datenspeichervorrichtung, währenddessen die Datenspeichervorrichtung sich in einem ersten Modus befindet, dass die Ausführung eines dem ersten Modus zugehörigen nicht autorisierten Befehls autorisiert ist, währenddessen sich die Datenspeichervorrichtung in dem ersten Modus befindet.
  24. Das Verfahren nach Anspruch 22, ferner umfassend ein Erzeugen eines Befehls, der eine Angabe enthält, wobei der Befehl ein dem ersten Modus zugehöriger autorisierter Befehl ist.
  25. Das Verfahren von Anspruch 22, worin bzw. wobei die Angabe in einem Satz von reservierten Bits des Befehls enthalten ist.
  26. Das Verfahren von Anspruch 22, worin bzw. wobei die Angabe ferner angibt, dass eine Ausführung eines dem ersten Modus zugehörigen zweiten nicht autorisierten Befehls autorisiert ist, währenddessen sich die Datenspeichervorrichtung in dem ersten Modus befindet, und worin bzw. wobei die Angabe einen dem nicht autorisierten Befehl zugehörigen ersten Befehlsindex und einen dem zweiten nicht autorisierten Befehl zugehörigen zweiten Befehlsindex enthält.
  27. Das Verfahren von Anspruch 22, ferner umfassend ein Senden des nicht autorisierten Befehls an die Datenspeichervorrichtung.
DE112016004148.9T 2015-09-14 2016-06-10 Systeme und Verfahren zur Befehlsautorisierung Pending DE112016004148T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/853,759 US10318193B2 (en) 2015-09-14 2015-09-14 Systems and methods of command authorization
US14/853,759 2015-09-14
PCT/US2016/037042 WO2017048338A1 (en) 2015-09-14 2016-06-10 Systems and methods of command authorization

Publications (1)

Publication Number Publication Date
DE112016004148T5 true DE112016004148T5 (de) 2018-07-19

Family

ID=56236116

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016004148.9T Pending DE112016004148T5 (de) 2015-09-14 2016-06-10 Systeme und Verfahren zur Befehlsautorisierung

Country Status (4)

Country Link
US (1) US10318193B2 (de)
CN (1) CN107787486B (de)
DE (1) DE112016004148T5 (de)
WO (1) WO2017048338A1 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547480B (zh) * 2015-09-17 2019-04-12 慧荣科技股份有限公司 数据储存装置及其数据读取方法
US10877673B2 (en) * 2017-12-15 2020-12-29 Microchip Technology Incorporated Transparently attached flash memory security
KR102426107B1 (ko) * 2017-12-20 2022-07-28 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10514865B2 (en) * 2018-04-24 2019-12-24 EMC IP Holding Company LLC Managing concurrent I/O operations
US11392320B2 (en) * 2018-07-03 2022-07-19 Western Digital Technologies, Inc. Quality of service based arbitrations optimized for enterprise solid state drives
US10732897B2 (en) 2018-07-03 2020-08-04 Western Digital Technologies, Inc. Quality of service based arbitrations optimized for enterprise solid state drives
US10969973B2 (en) * 2018-09-20 2021-04-06 Microsoft Technology Licensing, Llc Software filtered memory devices in computing systems
KR20200076244A (ko) * 2018-12-19 2020-06-29 삼성전자주식회사 데이터 스토리지 장치를 포함하는 시스템 및 데이터 스토리지 장치의 디스카드 동작 제어 방법
CN109947664A (zh) * 2019-02-22 2019-06-28 珠海妙存科技有限公司 一种通过系统两端交互提高emmc的垃圾回收执行效果的方法
TWI734220B (zh) * 2019-07-10 2021-07-21 慧榮科技股份有限公司 主機輸出入命令的執行裝置及方法及電腦程式產品
US11556665B2 (en) 2019-12-08 2023-01-17 Western Digital Technologies, Inc. Unlocking a data storage device
US11366933B2 (en) 2019-12-08 2022-06-21 Western Digital Technologies, Inc. Multi-device unlocking of a data storage device
US11831752B2 (en) 2020-01-09 2023-11-28 Western Digital Technologies, Inc. Initializing a data storage device with a manager device
US11469885B2 (en) 2020-01-09 2022-10-11 Western Digital Technologies, Inc. Remote grant of access to locked data storage device
US11265152B2 (en) * 2020-01-09 2022-03-01 Western Digital Technologies, Inc. Enrolment of pre-authorized device
US11606206B2 (en) 2020-01-09 2023-03-14 Western Digital Technologies, Inc. Recovery key for unlocking a data storage device
US11334677B2 (en) 2020-01-09 2022-05-17 Western Digital Technologies, Inc. Multi-role unlocking of a data storage device

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5131082A (en) * 1989-06-09 1992-07-14 International Business Machines Corporation Command delivery for a computing system for transfers between a host and subsystem including providing direct commands or indirect commands indicating the address of the subsystem control block
US5509134A (en) * 1993-06-30 1996-04-16 Intel Corporation Method and apparatus for execution of operations in a flash memory array
FR2711831B1 (fr) * 1993-10-26 1997-09-26 Intel Corp Procédé et circuit de mémorisation et de hiérarchisation d'ordres d'effacement dans un dispositif de mémoire.
JP2001056848A (ja) * 1999-08-19 2001-02-27 Nec Corp Icコードのコマンド実行制御方法、icカード、icカードプログラムを記録した記録媒体
CN1368685A (zh) * 2001-02-10 2002-09-11 深圳市中兴集成电路设计有限责任公司 带指令缓冲的总线接口装置及其访问外部存储器的方法
JP3641230B2 (ja) 2001-10-22 2005-04-20 株式会社東芝 メモリカードを制御するための装置および方法
US8255615B1 (en) * 2009-01-08 2012-08-28 Marvell International Ltd. Flexible sequence design architecture for solid state memory controller
US8850103B2 (en) * 2009-08-28 2014-09-30 Microsoft Corporation Interruptible NAND flash memory
US8972627B2 (en) * 2009-09-09 2015-03-03 Fusion-Io, Inc. Apparatus, system, and method for managing operations for data storage media
US8966176B2 (en) 2010-05-27 2015-02-24 Sandisk Il Ltd. Memory management storage to a host device
US9021178B2 (en) * 2011-05-02 2015-04-28 Western Digital Technologies, Inc. High performance path for command processing
US9141296B2 (en) 2012-05-31 2015-09-22 Sandisk Technologies Inc. Method and host device for packing and dispatching read and write commands
KR101919903B1 (ko) 2012-09-14 2018-11-19 삼성전자 주식회사 임베디드 멀티미디어 카드, 이를 제어하는 호스트, 및 이들의 동작 방법
KR101988260B1 (ko) 2012-09-14 2019-06-12 삼성전자주식회사 임베디드 멀티미디어 카드, 및 이의 동작 방법
TWI479359B (zh) 2013-08-01 2015-04-01 Phison Electronics Corp 指令執行方法、記憶體控制器與記憶體儲存裝置
US9519440B2 (en) 2013-09-10 2016-12-13 Qualcomm Incorporated Providing command queuing in embedded memories
US8935465B1 (en) 2014-06-16 2015-01-13 Sandisk Technologies Inc. System and method of communicating command data in a master-slave environment
KR20160118836A (ko) * 2015-04-03 2016-10-12 에스케이하이닉스 주식회사 호스트 커맨드 큐를 포함하는 메모리 컨트롤러 및 그것의 동작 방법

Also Published As

Publication number Publication date
CN107787486B (zh) 2021-01-05
WO2017048338A1 (en) 2017-03-23
CN107787486A (zh) 2018-03-09
US10318193B2 (en) 2019-06-11
US20170075824A1 (en) 2017-03-16

Similar Documents

Publication Publication Date Title
DE112016004148T5 (de) Systeme und Verfahren zur Befehlsautorisierung
DE102017128939A1 (de) System und Verfahren zum dynamischen und adaptiven Zusammenführen von Interrupts
DE112018000228T5 (de) System und Verfahren zur Verarbeitung und Arbitrierung von Übermittlungs- und Beendigungswarteschlangen
DE112018000834T5 (de) System und verfahren zur adaptiven befehlsabruf-aggregation
DE112018000180T5 (de) System und verfahren zum adaptiven senden frühzeitiger beendigung unter verwendung eines steuerungsspeicherpuffers
DE112018000181T5 (de) System und verfahren für die schnelle ausführung von kapselinternen befehlen
DE112018000233T5 (de) System und Verfahren zur Verarbeitung und Arbitrierung von Übermittlungs- und Beendigungswarteschlangen
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
DE112017000206T5 (de) Kompensation von Temperaturschwankungen eines Arbeitsspeichers
DE112016000696B4 (de) Ablaufplanungsschema(ta) für eine Mehrchip-Speichervorrichtung
DE102019116213A1 (de) Qualität von für Enterprise-Halbleiterlaufwerke optimierten dienstbasierten Arbitrierungen
DE102017120960A1 (de) Mehrkanal-Speicheroperationen auf der Grundlage von Bitfehlerraten
DE112016004760T5 (de) System und Verfahren für direktes Schreiben auf einen MLC-Speicher
DE112015004536T5 (de) Hardware-Automatisierung für Speicherverwaltung
DE112017005887T5 (de) Speichersystem und Verfahren zur thermischen Drosselung über eine Befehlsarbitrierung
DE102015117066A1 (de) Verfahren zum Betreiben einer Datenspeichervorrichtung, mobile Rechenvorrichtung mit derselben und Verfahren der mobilen Rechenvorrichtung
DE112016002631B4 (de) Speicherfunktionszustandsüberwachung
DE112018000839T5 (de) Datenspeichervorrichtung, die eingerichtet ist, um Vorgänge unter Verwendung einer drahtlosen Schnittstelle durchzuführen
US20180060232A1 (en) Flush command consolidation
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE102018214010A1 (de) Verfahren und Vorrichtung zur Reduzierung von unbemerkten Datenfehlern in nichtflüchtigen Speichersystemen
DE112015003147T5 (de) Selektive Leseverstärkeraktivierung
DE102018105871A1 (de) Speichersystem und Verfahren zur Vermeidung von Befehlskollisionen in nicht flüchtigen Datenspeichern mit expliziter Kachelgruppierung
DE112015005102T5 (de) Systeme und verfahren zum erzeugen von einem hostbefehl zugeordneten hinweisinformationen
DE102018114266A1 (de) Nichtflüchtige speichervorrichtung mit sicherem lesen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE