DE102012103577A1 - Datenspeichervorrichtung, Kodierungseinheit, Systeme selbige umfassend und Verfahren zum Auslesen von Daten - Google Patents

Datenspeichervorrichtung, Kodierungseinheit, Systeme selbige umfassend und Verfahren zum Auslesen von Daten Download PDF

Info

Publication number
DE102012103577A1
DE102012103577A1 DE102012103577A DE102012103577A DE102012103577A1 DE 102012103577 A1 DE102012103577 A1 DE 102012103577A1 DE 102012103577 A DE102012103577 A DE 102012103577A DE 102012103577 A DE102012103577 A DE 102012103577A DE 102012103577 A1 DE102012103577 A1 DE 102012103577A1
Authority
DE
Germany
Prior art keywords
data
coding
storage device
encoding
data storage
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
DE102012103577A
Other languages
English (en)
Inventor
Dong-Ku Kang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102012103577A1 publication Critical patent/DE102012103577A1/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/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/402Encrypted data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2111Location-sensitive, e.g. geographical location, GPS

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Storage Device Security (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

In einer Ausführungsform weist die Datenspeichervorrichtung eine Steuereinheit auf, die so gestaltet ist, dass sie mindestens einen Eingangsbefehl decodiert, und die so gestaltet ist, dass sie ein Lesesignal und/oder ein Startsignal als Antwort auf den Eingangsbefehl erzeugt. Das Startsignal zeigt an, dass ein interner Modusbestimmungsprozess gestartet werden soll. Die Datenspeichervorrichtung weist auch eine Speichereinheit, die so gestaltet ist, dass sie Daten als Antwort auf das Lesesignal ausgibt, und eine Codierungseinheit auf, die so gestaltet ist, dass sie den internen Modusbestimmungsprozess als Antwort auf das Startsignal startet und durchführt. Der interne Modusbestimmungsprozess beinhaltet ein autonomes Bestimmen des Codierungsmodus, und die Codierungseinheit ist so gestaltet, dass sie die Ausgangsdaten auf Basis des bestimmten Codierungsmodus codiert, um codierte Daten zu produzieren.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Die Anmeldung beansprucht die Priorität der koreanischen Patentanmeldungen Nr. 10-2011-046405 und 10-2011-0081308 , eingereicht am 17. Mai 2011 bzw. am 16. August 2001 beim Korean Intellectual Property Office, und sämtliche sich daraus ergebenden Vorteile gemäß 35 U.S.C. 119, wobei deren Inhalte durch Bezugnahme hierin aufgenommen sind.
  • HINTERGRUND
  • 1. Gebiet der Erfindung
  • Ausführungsformen betreffen eine Datenspeichervorrichtung und ein Datenspeichersystem für die Ausgabe von codierten Daten, und genauer eine Datenspeichervorrichtung und ein Datenspeichersystem zum Codieren von Daten, die ausgegeben werden sollen, und zur zufälligen Variation eines Codierungsmodus, der jeweils auf einzelne Datenfragmente angewendet wird, wodurch eine verbesserte Datensicherheit bereitgestellt wird.
  • 2. Beschreibung der verwandten Technik
  • Es werden verschiedene Datenspeichervorrichtungen zum Speichern von digitalen Daten bereitgestellt. Beispielsweise gibt es ein Festplattenlaufwerk, ein Festkörperlaufwerk (Solid State Drive, SSD) und verschiedene Speicherkarten. Um zu verhindern, dass eine nicht-berechtigte Person die digitalen Daten liest, die in der Datenspeichervorrichtung gespeichert sind, braucht die Datenspeichervorrichtung eine verbesserte Datensicherheitstechnik, um Daten, die in einer Sicherheitsregion gespeichert sind, so zu codieren und auszugeben, dass das Decodieren der Daten erschwert und vielleicht sogar unmöglich gemacht wird, auch wenn die Daten gelesen werden.
  • KURZFASSUNG
  • Mindestens ein Ausführungsbeispiel betrifft eine Datenspeichervorrichtung.
  • In einer Ausführungsform weist die Datenspeichervorrichtung eine Steuereinheit auf, die so gestaltet ist, dass sie mindestens einen Eingangsbefehl decodiert, und die so gestaltet ist, dass sie als Antwort auf den Eingangsbefehl ein Lese-Signal und/oder ein Startsignal erzeugt. Das Startsignal zeigt an, dass ein interner Modusbestimmungsprozess gestartet werden soll. Die Datenspeichervorrichtung weist auch eine Speichereinheit, die so gestaltet ist, dass sie als Antwort auf das Lese-Signal Daten ausgibt, und eine Codierungseinheit auf, die so gestaltet ist, dass sie den internen Modusbestimmungsprozess als Antwort auf das Startsignal startet und durchführt. Der interne Modusbestimmungsprozess beinhaltet ein autonomes Bestimmen eines Codierungsmodus, und die Codierungseinheit ist so gestaltet, dass sie die ausgegebenen Daten bzw. Ausgangsdaten auf Basis des bestimmten Codierungsmodus codiert, um codierte Daten zu erzeugen.
  • In einer anderen Ausführungsform weist die Datenspeichervorrichtung eine Steuereinheit auf, die so gestaltet ist, dass sie einen Eingangsbefehl decodiert, und die so gestaltet ist, dass sie als Antwort auf den Eingangsbefehl ein Lese-Signal und/oder ein Trigger-Signal erzeugt. Der Eingangsbefehl zeigt keinen Codierungsmodus an. Die Datenspeichervorrichtung weist auch eine Speichereinheit, die so gestaltet ist, dass sie als Antwort auf das Lese-Signal Daten ausgibt, und eine Codierungseinheit auf, die so gestaltet ist, dass sie als Antwort auf das Trigger-Signal Anzeigedaten erzeugt. Die Anzeigedaten zeigen einen Codierungsmodus an. Die Codierungseinheit ist so gestaltet, dass sie auf Basis der Anzeigedaten den Codierungsmodus aus einem Satz von Codierungsmodi auswählt, und ist so gestaltet, dass sie die Ausgangsdaten auf Basis des bestimmten Codierungsmodus codiert.
  • In einer weiteren Ausführungsform weist die Datenspeichervorrichtung eine Steuereinheit auf, die so gestaltet ist, dass sie einen Eingangsbefehl decodiert, und die so gestaltet ist, dass sie als Antwort auf den Eingangsbefehl ein Lese-Signal und/oder ein Trigger-Signal erzeugt. Die Datenspeichervorrichtung weist ferner eine Speichereinheit, die so gestaltet ist, dass sie als Antwort auf das Lese-Signal Daten ausgibt, und eine Codierungseinheit auf, die so gestaltet ist, dass sie als Antwort auf das Trigger-Signal erste Zufallsdaten erzeugt. Die Codierungseinheit ist so gestaltet, dass sie auf Basis der ersten Zufallsdaten autonom einen Codierungsmodus aus einem Satz von Codierungsmodi auswählt, und ist so gestaltet, dass sie die Ausgangsdaten auf Basis des bestimmten Codierungsmodus codiert.
  • Mindestens eine Ausführungsform betrifft eine Codierungseinheit.
  • In einer Ausführungsform weist die Codierungseinheit eine Codierungsbestimmungseinheit auf, die so gestaltet ist, dass sie Zufallsdaten mit einer gewünschten Verteilung erzeugt, und die so gestaltet ist, dass sie einen Codierungsmodus gemäß den Zufallsdaten bestimmt. Ein Codierer in der Codierungseinheit ist so gestaltet, dass er Daten auf Basis des bestimmten Codierungsmodus codiert.
  • Mindestens eine Ausführungsform betrifft auch ein System, das die Datenspeichervorrichtung und/oder die Codierungseinheit aufweist.
  • Mindestens eine Ausführungsform betrifft ein Verfahren zum Codieren von Daten.
  • In einer Ausführungsform beinhaltet das Verfahren, dass ein Codierungsverhältnis eines oder mehrerer Codierungsmodi auf Basis einer Anwendereingabe variiert wird, ein Codierungsmodus ausgewählt wird und Daten, die aus einer Speichereinheit ausgegeben werden, auf Basis des ausgewählten Codierungsmodus codiert werden, um codierte Daten zu produzieren. Mindestens einer der Codierungsmodi kann das korrekte Decodieren der codierten Daten in einer Einrichtung, die die codierten Daten empfängt, zulassen, und mindestens einer der codierten Modi kann ein korrektes Decodieren der codierten Daten in der Einrichtung, die die codierten Daten empfängt, nicht zulassen.
  • Der Auswahlschritt kann beinhalten, dass ein Zufallsgenerator auf Basis einer Codierungsregel konfiguriert wird, wobei die Codierungsregel eine Wahrscheinlichkeit anzeigt, mit der jeder einzelne aus einer Mehrzahl von Codierungsmodi ausgewählt wird, und dass ein Codierungsmodusindikator unter Verwendung des Zufallsgenerators nach dem Zufallsprinzip erzeugt wird, wobei der Codierungsmodusindikator einen der Codierungsmodi anzeigt.
  • In einer anderen Ausführungsform beinhaltet das Verfahren, dass ein Codierungsmodus aus der Mehrzahl von Codierungsmodi auf Basis einer Codierungsregel ausgewählt wird. Die Codierungsregel zeigt eine Wahrscheinlichkeit dafür an, dass jeder einzelne aus einer Mehrzahl von Codierungsmodi ausgewählt wird. Das Verfahren beinhaltet ferner das Codieren von Daten gemäß dem ausgewählten Codierungsmodus, um codierte Daten zu produzieren. Das Verfahren kann ferner beinhalten, dass die Schritte des Auswählens eines Codierungsmodus und des Codierens von Daten für eine Mehrzahl von Daten wiederholt durchgeführt werden. Das Verfahren kann ferner das Aufstellen der Codierungsregel auf Basis eines Eingangsbefehls beinhalten. Das Verfahren kann ferner das Aufstellen einer anderen Codierungsregel als Codierungsregel als Antwort auf einen Änderungsbefehl beinhalten. Das Verfahren kann ferner beinhalten, dass die Codierungsregel auf Basis eines Ortes, an dem sich die Daten in einer Speichereinheit befinden, aufgestellt wird. Das Verfahren kann ferner das Laden einer Liste von Codierungsregeln aus einer Codierungsregel-Speichereinheit und das Auswählen der Codierungsregel aus der Liste beinhalten. Die Codierungsmodi können einen ersten Codierungsmodus und einen zweiten Codierungsmodus beinhalten, und wenn durch das Auswählen eines Codierungsmodus der erste Codierungsmodus ausgewählt wird, können die codierten Daten korrekt decodiert werden, und wenn durch das Auswählen eines Codierungsmodus der zweite Codierungsmodus ausgewählt wird, können die codierten Daten nicht korrekt decodiert werden. Die Codierungsregel kann ein prozentuales Verhältnis anzeigen, in dem der erste Codierungsmodus auszuwählen ist. Das Auswählen eines Codierungsmodus kann das Konfigurieren eines Zufallsgenerators auf Basis der Codierungsregel und das zufällige Erzeugen eines Codierungsmodusindikators unter Verwendung des Zufallsgenerators beinhalten, wobei der Codierungsmodusindikator den ersten oder den zweiten Codierungsmodus anzeigt.
  • In einer weiteren Ausführungsform beinhaltet das Verfahren die Erzeugung einer Mehrzahl von Sätzen aus codierten Datenfragmenten. Jeder Satz stellt gleiche originale Daten dar, und jeder Satz weist ein Muster aus zumindest ersten codierten Datenfragmenten und zweiten codierten Datenfragmenten auf. Die ersten codierten Datenfragmente sind weniger codiert als die zweiten codierten Datenfragmente, und die Erzeugung erzeugt die Mehrzahl von Sätzen so, dass das Muster, das zu einem Satz gehört, sich von dem Muster, das zu einem anderen Satz gehört, unterscheiden kann. Die ersten codierten Datenfragmente können korrekt decodierbar sein, und die zweiten codierten Datenfragmente können nicht korrekt decodierbar sein. Jedes Muster kann mindestens ein erstes codiertes Datenfragment aufweisen. Jedes Muster kann nicht mehr als eine Höchstzahl an ersten codierten Datenfragmenten aufweisen. Mindestens zwei Sätze aus der Mehrzahl von codierten Datenfragmenten können eine gleiche Zahl von ersten codierten Datenfragmenten aufweisen. Das Verfahren kann ferner das Abrufen bzw. Übernehmen einer Codierungsregel, die eine Höchstzahl der ersten codierten Datenfragmente anzeigt, beinhalten, und wobei durch die Erzeugung die Mehrzahl von Sätzen aus codierten Datenfragmenten auf Basis der Codierungsregel erzeugt wird.
  • Mindestens eine Ausführungsform betrifft ein Verfahren zum Lesen von Daten.
  • In einer Ausführungsform beinhaltet dieses Verfahren das Erzeugen eines Lese-Signals und/oder eines Trigger-Signals als Antwort auf einen Eingangsbefehl, das Ausgeben von Daten aus einer Speichereinheit als Antwort auf das Lese-Signal, das Erzeugen erster Zufallsdaten als Antwort auf das Trigger-Signal, das autonome Auswählen eines Codierungsmodus aus einem Satz von Codierungsmodi auf Basis der ersten Zufallsdaten und das Codieren der ausgegebenen Daten auf Basis des bestimmten Codierungsmodus.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die oben beschriebenen sowie weitere Merkmale der vorliegenden Erfindung werden durch ausführliches Beschreiben von beispielhaften Ausführungsformen mit Bezug auf die beigefügten Zeichnungen deutlicher werden, wobei:
  • 1 eine Gestaltung eines Computersystems darstellt, das eine Host-Vorrichtung und eine Datenspeichervorrichtung gemäß einer Ausführungsform aufweist;
  • 2 eine Gestaltung eines Computersystems darstellt, das eine Host-Vorrichtung und eine Datenspeichervorrichtung gemäß einer Ausführungsform aufweist;
  • 3 ein Bockschema der Datenspeichervorrichtung, von Eingangsbefehlen und von Ausgangsdaten gemäß einer Ausführungsform darstellt;
  • 4 ein Konzeptdiagramm ist, das ein Beispiel darstellt, in dem die Datenspeichervorrichtung die Daten gemäß einer Ausführungsform codiert und ausgibt;
  • 5 ein Blockschema einer Codierungsbestimmungseinheit der Datenspeichervorrichtung gemäß einer Ausführungsform ist;
  • 6 eine Codierungsregelliste ist, die in der Datenspeichervorrichtung gemäß einer Ausführungsform verwendet wird;
  • 7 ein Gestaltungsbeispiel für eine Speicherregion einer Speichereinheit gemäß einer Ausführungsform erklärt;
  • 8 bis 13 Gestaltungsbeispiele für einen Codierer gemäß einer Ausführungsform erklären;
  • 14 ein Zeitschema ist, das eine Funktionsweise der Datenspeichervorrichtung gemäß einer Ausführungsform erklärt, die abwechselnd einen ersten Befehl READ und einen zweiten Befehl TR empfängt;
  • 15 ein detailliertes Zeitschema ist, das die Funktionsweise der Datenspeichervorrichtung gemäß einer Ausführungsform erklärt, die abwechselnd den ersten Befehl READ und den zweiten Befehl TR empfängt;
  • 16 ein detailliertes Zeitschema ist, das eine längste zulässige Dauer einer Umschaltoperation einer Codierungseinheit in der Datenspeichervorrichtung gemäß einer Ausführungsform erklärt, die abwechselnd den ersten READ-Befehl und den zweiten Befehl TR empfängt;
  • 17 ein Zeitschema ist, das die Funktionsweise der Datenspeichervorrichtung gemäß einer Ausführungsform erklärt, die abwechselnd den ersten Befehl READ zum Ausgeben von Fragmenten von Codierungszieldaten mit der gleichen Größe und den zweiten Befehl TR empfängt;
  • 18 ein Zeitschema ist, das die Funktionsweise der Datenspeichervorrichtung gemäß einer Ausführungsform erklärt, die abwechselnd den ersten Befehl READ zum Ausgeben von Fragmenten von Codierungszieldaten mit unterschiedlichen Größen und den zweiten Befehl TR empfängt;
  • 19 ein Zeitschema ist, das die Funktionsweise der Datenspeichervorrichtung gemäß einer Ausführungsform erklärt, die einen dritten Befehl AUTH_READ mehrmals nacheinander empfängt;
  • 20 ein Zeitschema ist, das die Funktionsweise der Datenspeichervorrichtung gemäß einer Ausführungsform erklärt, die den dritten Befehl AUTH_READ und Adressinformationen mehrmals nacheinander empfängt;
  • 21 ein Schema ist, das die Gestaltung und die Funktionsweise eines Datenspeichersystems erklärt, das einen Controller und eine Datenspeichervorrichtung gemäß einer Ausführungsform aufweist;
  • 22 ein Schema ist, das die Gestaltung und die Funktionsweise eines Datenspeichersystems erklärt, das einen Controller und eine Datenspeichervorrichtung gemäß einer anderen Ausführungsform aufweist;
  • 23 ein Schema ist, das die Gestaltung und die Funktionsweise eines Datenspeichersystems erklärt, das einen Controller und eine Datenspeichervorrichtung gemäß einer weiteren Ausführungsform aufweist.
  • AUSFÜHRLICHE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Als Beispiele dienende Ausführungsformen werden im Folgenden mit Bezug auf die begleitenden Zeichnungen, in denen die Ausführungsformen gezeigt sind, ausführlicher beschrieben. Die als Beispiele dienenden Ausführungsformen können jedoch in vielen verschiedenen Formen ausgeführt werden und sollten nicht als beschränkt auf die hierin beschriebenen aufgefasst werden. Diese Ausführungsformen werden vielmehr für eine gründliche und vollständige Offenbarung, und um einem Fachmann den gesamten Bereich der Erfindung zu vermitteln, bereitgestellt. In den Zeichnungen können die Größe und die relativen Größen von Schichten und Regionen um der Deutlichkeit Willen übertrieben dargestellt sein. Gleiche Nummern beziehen sich durchwegs auf gleiche Elemente.
  • Man beachte, dass ein Element, das als „verbunden” mit einem anderen Element bezeichnet wird, direkt mit dem anderen Element verbunden sein kann, oder dass andere Elemente dazwischen vorhanden sein können. Wenn ein Element dagegen als „direkt verbunden” mit einem anderen Element bezeichnet wird, sind keine Elemente dazwischen vorhanden. Wie hierin verwendet, beinhaltet der Ausdruck „und/oder” sämtliche Kombinationen aus einem oder mehreren der zugehörigen aufgerührten Gegenstände und kann als „/” abgekürzt sein.
  • Man beachte, dass zwar die Ausdrücke erster/erste/erstes, zweiter/zweite/zweites usw. hierin verwendet werden können, um verschiedene Elemente zu bezeichnen, dies jedoch nicht so aufzufassen ist, als wären die Elemente durch diese Ausdrücke beschränkt. Diese Ausdrücke werden nur verwendet, um ein Element vom anderen zu unterscheiden. Beispielsweise könnte ein erstes Signal als zweites Signal bezeichnet werden, und ebenso könnte ein zweites Signal als erstes Signal bezeichnet werden, ohne von den Lehren der Offenbarung abzuweichen.
  • Die hierin verwendete Terminologie dient nur dem Zweck der Beschreibung bestimmter Ausführungsformen und soll die Erfindung nicht beschränken. Wie hierin verwendet, sollen die Singularformen „ein/eine/ein” und „der/die/das” auch die Pluralformen einschließen, solange der Kontext nicht eindeutig etwas anderes angibt. Ferner sei darauf hingewiesen, dass die Ausdrücke „aufweist” und/oder „aufweisend” oder „beinhaltet” und/oder „beinhaltend”, wenn sie in dieser Spezifikation verwendet werden, das Vorhandensein von genannten Merkmalen, Regionen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten spezifizieren, aber das Vorhandensein oder die Hinzufügung von einem/einer oder mehreren anderen Merkmal(en), Region(en), ganzen Zahl(en), Schritt(en), Operation(en), Element(en), Komponente(n) und/oder Gruppe(n) nicht von vornherein ausschließen.
  • Solange nicht etwas anderes definiert ist, haben alle hierin verwendeten Begriffe (wozu auch technische und wissenschaftliche Fachausdrücke gehören) die Bedeutung, die ein Durchschnittsfachmann auf dem technischen Gebiet, zu dem diese Erfindung gehört, üblicherweise verstehen würde. Ferner sei darauf hingewiesen, dass Begriffe, beispielsweise solche, die in üblicherweise verwendeten Wörterbüchern definiert sind, ihrer Bedeutung nach so zu interpretieren sind, dass sie mit ihrer Bedeutung im Kontext der einschlägigen Technik und/oder der vorliegenden Anmeldung konsistent sind, und nicht in einem idealisierten oder übermäßig formalen Sinn interpretiert werden sollten, solange hierin nicht ausdrücklich etwas anderes definiert ist.
  • Der Ausdruck „Codieren”, wie hierin verwendet, bedeutet das Randomisieren (zufällige Anordnen) von originalen Daten, die in Rauschdaten umgewandelt werden sollen, oder das Verschlüsseln von Daten, so dass die verschlüsselten Daten später anhand eines bestimmten Entschlüsselungsverfahrens korrigiert werden können. Eine Datenspeichervorrichtung gemäß einer Ausführungsform kann als Antwort auf einen Befehl originale Daten randomisieren oder originale Daten verschlüsseln.
  • In einem Fall, wo die Datenspeichervorrichtung originale Daten in Rauschdaten umwandelt und die Rauschdaten ausgibt, beinhalten die originalen Daten vorzugsweise einen Fehlerkorrektur-Code, um die codierten Daten zu korrigieren. Ein bekannter Code wie der Viterbi-Code und der Turbo-Code können als der Fehlerkorrektur-Code verwendet werden.
  • Zunächst wird ein Rechensystem gemäß einer Ausführungsform mit Bezug auf 1 beschrieben. Ein Rechensystem 70 gemäß einer Ausführungsform weist eine Host-Vorrichtung 60 und eine Datenspeichervorrichtung 10 auf.
  • Die Host-Vorrichtung 60 dieser Ausführungsform kann eine Verarbeitungsvorrichtung sein, die eine Operatoreinheit, wie einen Prozessor, aufweist. Genauer kann das Rechensystem 70 (oder ein Rechensystem 80 in 2), das die Host-Vorrichtung 60 aufweist, ein Mobiltelefon, ein zweiseitig gerichtetes Kommunikationssystem, ein einseitig gerichteter Funkrufempfänger bzw. Pager, ein zweiseitig gerichteter Funkrufempfänger, ein persönliches Kommunikationssystem, ein tragbarer Computer, ein Personal Data Assistant (PDA), ein Audio- und/oder Video-Player, eine digitale und/oder Videokamera, ein Navigationssystem, ein globales Positionsbestimmungssystem (GPS) oder dergleichen sein.
  • Die Datenspeichervorrichtung 10 dieser Ausführungsform kann ein Chip oder ein Paket sein, der bzw. das als Speichereinheit einen nicht-flüchtigen Speicher, wie einen NAND-Flash-Speicher, einen NOR-Flash-Speicher, einen Phasenwechsel-Schreib-Lesespeicher (PRAM), einen magnetischen Schreib-Lesespeicher (MRAM), einen resistiven Schreib-Lesespeicher (RRAM) usw. aufweist. Im Folgenden wird ein Flash-Memory-Chip als Beispiel für die Datenspeichervorrichtung 10 beschrieben.
  • Wie in 1 dargestellt, kann die Datenspeichervorrichtung 10 direkt mit der Host-Vorrichtung 60 verbunden sein, die die Datenspeichervorrichtung 10 steuert. Wenn eine Leseoperation ausgeführt wird, um Codierungszieldaten 20 zu erhalten, kann die Host-Vorrichtung 60 dieser Ausführungsform einen Befehl erzeugen und den Befehl an die Speichervorrichtung 10 bereitstellen bzw. ausgeben, um die Leseoperation in Bezug auf die Codierungszieldaten 20 durchzuführen.
  • Der Befehl kann als ein erster Befehl zur Durchführung einer Datenleseoperation, als ein zweiter Befehl, der als Startsignal für die Bestimmung eines Codierungsmodus der Datenspeichervorrichtung 10 dient, oder als ein dritter Befehl zum gleichzeitigen Durchführen einer Datenleseoperation und Bestimmen eines Codierungsmodus oder dergleichen bezeichnet werden, je nach den Funktionen des Befehls.
  • Die Datenspeichervorrichtung 10 bestimmt autonom einen Codierungsmodus, der angewendet wird, wenn die Daten später als Antwort auf die Eingabe des zweiten Befehls oder des dritten Befehls ausgegeben werden. Demgemäß wird die Eingabe des zweiten oder des dritten Befehls nur als Startsignal für einen internen Codierungsmodus-Bestimmungsprozess verwendet, und ein Codierungsmodus wird nicht als durch den Befehl vorgegeben bestimmt.
  • Anders ausgedrückt wird der Codierungsmodus der Speichervorrichtung 10 durch den auf die Bestimmung des Codierungsmodus bezogenen Befehl, der in die Datenspeichervorrichtung 10 eingegeben wird, nicht direkt definiert oder angezeigt. Ferner ändert die Datenspeichervorrichtung 10 den Codierungsmodus nicht unbedingt jedes Mal, wenn der auf das Starten der Bestimmung des Codierungsmodus bezogene Befehl eingegeben wird. Wie oben beschrieben, bestimmt die Datenspeichervorrichtung 10 den Codierungsmodus autonom, und daher kann selbst dann, wenn die von der Datenspeichervorrichtung 10 ausgegebenen Daten durch Hacking abgerufen werden, nur schwer erkannt werden, ob die Daten korrigierbare Daten sind, was einen Sicherheitsvorteil bietet.
  • Der Codierungsmodus der Datenspeichervorrichtung 10 zeigt an, welcher Prozentanteil der aus dem Speicher ausgegebenen Daten codiert wird. Beispielsweise können als Codierungsmodus der Datenspeichervorrichtung 10 zwei Modi existieren, d. h. ein Codierungsmodus A, in dem 20% der Daten codiert werden, und ein Codierungsmodus B, in dem 70% der Daten codiert werden. Die Datenspeichervorrichtung 10 bestimmt autonom den Codierungsmodus A oder den Codierungsmodus B als ihren eigenen Codierungsmodus, wenn der zweite Befehl oder der dritte Befehl eingegeben wird.
  • In einer anderen Ausführungsform können ferner zwei Modi als Codierungsmodus existieren, d. h. ein Codierungsmodus C, in dem ein Umweg gebildet wird und keine Daten codiert werden, und ein Codierungsmodus D, in dem Daten codiert werden. Die Datenspeichervorrichtung 10 kann autonom den Codierungsmodus C oder den Codierungsmodus D als ihren eigenen Codierungsmodus bestimmen, wenn der zweite Befehl oder der dritte Befehl eingegeben wird.
  • In einer Ausführungsform kann der Codierungsmodus der Datenspeichervorrichtung 10 bestimmen, welches Modul unter einer Mehrzahl von Codierungsmodulen mit unterschiedlichen Datencodierungsverhältnissen verwendet wird. Genauer können die Codierungsmodi der Datenspeichervorrichtung 10 einen Codierungsmodus beinhalten, der ein Codierungsmodul verwendet, das Daten so codiert, dass die codierten Daten anhand eines Decodierungsverfahrens in einem Host korrigiert werden können, und einen Codierungsmodus beinhalten, der ein Codierungsmodul verwendet, das Daten so codiert, dass die codierten Daten anhand des Decodierungsverfahrens im Host nicht korrigiert werden können.
  • Während die Datenspeichervorrichtung 10 die Codierungszieldaten ausgibt, kann der zweite Befehl oder der dritte Befehl mehrmals in die Datenspeichervorrichtung 10 eingegeben werden, wodurch ein Codierungsmodus der Ausgangsdaten umgeschaltet wird. Mit den Codierungszieldaten 20 können alle Arten von digitalen Daten gemeint sein, z. B. Authentifizierungsinformationen wie Identifizierungsinformationen der Datenspeichervorrichtung 10, die verwendet werden, um die Datenspeichervorrichtung 10 zu authentifizieren.
  • Nun wird ein Verfahren beschrieben, in dem die Host-Vorrichtung 60 einen Befehl zum Codieren der Daten an die Datenspeichervorrichtung 10 ausgibt.
  • Zunächst wird ein Verfahren zum Teilen der Codierungszieldaten 20 in zwei oder mehr Fragmente und zum zufälligen Umschalten eines Codierungsmodus, der jedes Mal, wenn die Codierungszieldaten 20 ausgegeben werden, auf jedes einzelne Fragment angewendet wird, beschrieben.
  • Die Host-Vorrichtung 60 kann abwechselnd den ersten Befehl und den zweiten Befehl zum Ausgeben von Fragmenten der Codierungszieldaten 20 erzeugen.
  • Bei Empfang des ersten Befehls wird ein Teil der Codierungszieldaten 20 von der Datenspeichervorrichtung 10 gemäß dem Codierungsmodus, der als Antwort auf den zweiten Befehl bestimmt wird, codiert und ausgegeben. Als Antwort auf die Eingabe des zweiten Befehls erzeugt die Datenspeichervorrichtung 10 Modusbestimmungsdaten (zur Modusbestimmung) und bestimmt einen Codierungsmodus zum Codieren der Daten, die später ausgegeben werden sollen, auf Basis der Modusbestimmungsdaten. Die Datenspeichervorrichtung 10 kann Zufallsdaten als die Modusbestimmungsdaten erzeugen, und die Zufallsdaten können anhand eines Zufallsdatengenerators erzeugt werden, der in der Lage ist, eine Wahrscheinlichkeit für einen bestimmten Wert einzustellen.
  • Die Funktionsweise der Datenspeichervorrichtung 10, die den ersten Befehl und den zweiten Befehl empfangen hat, wird später mit Bezug auf 14 bis 18 beschrieben.
  • Dann kann die Host-Vorrichtung 60 den dritten Befehl zweimal oder öfter hintereinander erzeugen, um Fragmente der Codierungszieldaten 20 auszugeben. Als Antwort auf die Eingabe des dritten Befehls werden von der Datenspeichervorrichtung 10 Modusbestimmungsdaten erzeugt und wird ein Teil der Codierungszieldaten 20 gemäß dem Codierungsmodus, der auf Basis der Modusbestimmungsdaten bestimmt wird, codiert und ausgegeben. Die Menge der Daten, die ausgegeben wird, wenn der dritte Befehl einmal eingegeben wird, kann anhand einer Adresse bestimmt werden, die im dritten Befehl enthalten ist, oder kann durch eine Verbindung mit einem Host vorbestimmt werden. Die Funktionsweise der Datenspeichervorrichtung 10, die den dritten Befehl empfangen hat, wird ebenfalls später mit Bezug auf 19 und 20 beschrieben.
  • Die Fragmente der Codierungszieldaten 20, die aus der Datenspeichervorrichtung 10 ausgegeben werden, sobald der erste Befehl und der zweite Befehl empfangen werden oder sobald der dritte Befehl empfangen wird, können die gleichen Daten aufweisen. Anders ausgedrückt können die Codierungszieldaten 20 durch Verbinden einer Mehrzahl der gleichen Datenfragmente gebildet werden. Jedes der Datenfragmente kann von der Datenspeichervorrichtung 10, sobald diese den ersten Befehl und den zweiten Befehl empfängt oder sobald diese den dritten Befehl empfängt, eines nach dem anderen codiert und ausgegeben werden. In diesem Fall können die Datenfragmente, die jedes Mal ausgegeben werden, wenn der erste Befehl und der zweite Befehl eingegeben werden oder wenn der dritte Befehl eingegeben wird, je nach dem Codierungsmodus verschieden sein.
  • Nun wird ein Verfahren beschrieben, in dem die Datenspeichervorrichtung 10 die Codierungszieldaten 20 wiederholt ausgibt.
  • Die Datenspeichervorrichtung 10 gibt die Codierungszieldaten 20 als Antwort auf den ersten Befehl oder den dritten Befehl aus. Im Falle des Empfangs des ersten Befehls empfängt die Datenspeichervorrichtung 10 vorzugsweise den zweiten Befehl so, dass der Codierungsmodus nach dem Zufallsprinzip gewechselt werden kann, bevor die Codierungszieldaten 20 ausgegeben werden.
  • Die Datenspeichervorrichtung 10, die die Codierungszieldaten 20 wiederholt ausgibt, ist so gestaltet, dass sie jedes Mal, wenn Daten ausgegeben werden, unterschiedliche Daten ausgibt, obwohl sie Daten ausgibt, die an der gleichen Adresse gespeichert sind. Somit wird bewirkt, dass eine missbräuchliche Korrektur von Ausgangsdaten verhindert werden kann.
  • Solange nicht ausdrücklich etwas anderes angegeben ist, ist die Datenspeichervorrichtung 10 im Folgenden so gestaltet, dass sie die Codierungszieldaten 20 in Datenfragmente teilt und die Datenfragmente ausgibt.
  • Ein Rechensystem gemäß einer anderen Ausführungsform wird nun mit Bezug auf 2 beschrieben. Ein Rechensystem 80 dieser Ausführungsform kann die Host-Vorrichtung 60, einen Controller 40 und die Datenspeichervorrichtung 10 aufweisen. Die Datenspeichervorrichtung 10 dieser Ausführungsform kann elektrisch mit dem Controller 40 verbunden sein, der die Datenspeichervorrichtung 10 steuert. Ferner kann der Controller 40 mit der Host-Vorrichtung 10 verbunden sein. Das heißt, die Datenspeichervorrichtung 10 kann über den Controller 40 unter der Steuerung der Host-Vorrichtung 60 betrieben werden.
  • Wenn eine Leseoperation an den Codierungszieldaten ausgeführt wird, kann die Host-Vorrichtung 60 eine einzige Leseaufforderung an den Controller 40 ausgeben oder kann zwei oder mehr Aufforderungen zum Lesen von Fragmenten der Codierungszieldaten an den Controller 40 ausgeben.
  • In einem Fall, wo die Host-Vorrichtung 60 eine Mehrzahl von Aufforderungen zum Lesen von Datenfragmenten ausgibt, sendet der Controller 40 die Leseaufforderungen an die Datenspeichervorrichtung 10. Das heißt, der Controller 40 erzeugt den dritten Befehl als Antwort auf die Leseaufforderungen und gibt den dritten Befehl an die Datenspeichervorrichtung 10 aus. Als Antwort auf die Eingabe des dritten Befehls werden von der Datenspeichervorrichtung 10 die Modusbestimmungsdaten erzeugt und wird ein Teil der Codierungszieldaten 20 gemäß dem Codierungsmodus, der auf Basis der Modusbestimmungsdaten bestimmt wird, codiert und ausgegeben. Die Ausgangsdaten können der Host-Vorrichtung 60 über den Controller 40 bereitgestellt werden.
  • In einem Fall, wo die Host-Vorrichtung 60, wenn die Leseoperation ausgeführt wird, eine einzige Leseaufforderung an den Controller 40 ausgibt, kann der Controller 40, der die Leseaufforderung empfangen hat, den dritten Befehl zweimal oder öfter nacheinander erzeugen, um Fragmente der Codierungszieldaten 20 auszugeben, oder er kann abwechselnd den zweiten Befehl und den ersten Befehl erzeugen, um Fragmente der Codierungszieldaten 20 auszugeben. In diesem Fall werden von der Datenspeichervorrichtung 10 die Modusbestimmungsdaten als Antwort auf die Eingabe des dritten Befehls erzeugt und wird ein Teil der Codierungszieldaten 20 gemäß dem Codierungsmodus, der auf Basis der Modusbestimmungsdaten bestimmt wird, codiert und ausgegeben. Ferner wird von der Speichervorrichtung 10 bei Empfang des ersten Befehls ein Teil der Codierungszieldaten gemäß dem Codierungsmodus, der auf Basis der Modusbestimmungsdaten bestimmt wird, als Antwort auf den zweiten Befehl codiert und ausgegeben.
  • Die in 1 und 2 dargestellte Datenspeichervorrichtung 10 kann den ersten Befehl und den zweiten Befehl oder die dritten Befehle über Eingabe/Ausgabe(I/O)-Anschlüsse (Stifte oder Kugeln (nicht dargestellt)), die in der Datenspeichervorrichtung 10 vorgesehen sind, empfangen. Es können verschiedene Eingabe/Ausgabe-Anschlüsse je nach ihren Funktionen vorhanden sein, z. B. I/O-Anschlüsse, über die eingegebene/ausgegebene Daten gesendet und empfangen werden, ein Befehls-Latch- bzw. -Auffanganschluss und ein Adressen-Latch- bzw. -Auffanganschluss, um zu erkennen, ob die über die I/O-Anschlüsse eingegebenen Daten einen Befehl oder eine Adresse darstellen, und ein Read-Enable- bzw. Lesefreigabe-Anschluss und ein Write-Enable- bzw. Schreibfreigabe-Anschluss, um Zeiten für die Eingaben/Ausgaben durch die I/O-Anschlüsse zu bestimmen, und dergleichen.
  • Genauer werden über die I/O-Anschlüsse, die in der Datenspeichervorrichtung 10 bereitgestellt bzw. vorgesehen sind, Daten zum Identifizieren eines Befehls eingegeben. Um zu bestimmen, dass die Daten, die über die I/O-Anschlüsse eingegeben werden, einen Befehl darstellen, kann ein geeignetes Signal über den Befehls-Auffanganschluss und den Adressen-Auffanganschluss angelegt werden. Gleichzeitig kann über den Schreibfreigabe-Anschluss ein geeignetes Signal angelegt werden, um eine Zeit für die Eingabe durch die I/O-Anschlüsse zu bestimmen. Was dies betrifft, so wird später mit 16 eine ausführliche Beschreibung geliefert.
  • Der erste Befehl oder der dritte Befehl können adressenbezogene Informationen beinhalten. In diesem Fall kann die Datenspeichervorrichtung 10 die Daten gemäß der Adresse ausgeben, die im ersten Befehl oder im dritten Befehl enthalten ist.
  • Die Gestaltung und die Funktionsweise der Datenspeichervorrichtung 10 gemäß der Ausführungsform werden ausführlich mit Bezug auf 3 beschrieben. Wie in 3 dargestellt, kann die Datenspeichervorrichtung 10 eine Speichereinheit 12, eine Steuereinheit 14 und eine Codierungseinheit 16 aufweisen.
  • Die Steuereinheit 14 decodiert den Eingangsbefehl und gibt je nach den Decodierungsergebnissen ein internes Lesesignal 18 und/oder ein internes Trigger-Signal 19 aus. Die Steuereinheit 14 weist einen Befehlsdecoder 140 auf, um den Eingangsbefehl zu decodieren, und kann entweder nur das interne Lesesignal 18 ausgeben, sowohl das interne Lesesignal 18 als auch das interne Trigger-Signal 19 ausgeben oder nur das interne Trigger-Signal 19 ausgeben. Hierin wird ein Befehl zum Ausgeben nur des internen Lesesignals 18 als der erste Befehl bezeichnet, ein Befehl zum Ausgeben von nur dem internen Trigger-Signal wird als der zweite Befehl bezeichnet, und ein Befehl zum Ausgeben sowohl des internen Lesesignals 18 als auch des internen Trigger-Signals 19 wird als der dritte Befehl bezeichnet.
  • Als Antwort auf das interne Lesesignal 18 gibt die Speichereinheit 12 einen Teil der Codierungszieldaten 20 aus. Die Datenspeichervorrichtung 10 kann den Teil oder die Fragmente der Codierungszieldaten 20 zweimal oder öfter ausgeben und den Codierungsmodus der Codierungseinheit 16 einmal oder öfter umschalten, während sie die Datenfragmente ausgibt.
  • Die Speichereinheit 12 empfängt das interne Lesesignal 18 von der Steuereinheit 14 und gibt einen Teil der Codierungszieldaten 20 an die Codierungseinheit 16 aus.
  • Die Speichereinheit 12 kann als Zellenfeld bzw. -Array gestaltet sein, das Flash-Speicherzellen aufweist. Das Zellenfeld kann verschiedene Arten von Speicherzellen aufweisen. Beispielsweise kann das Zellenfeld NAND-Flash-Speicherzellen oder NOR-Flash-Speicherzellen aufweisen oder es kann sowohl NAND-Flash-Speicherzellen als auch NOR-Flash-Speicherzellen aufweisen.
  • Das Zellenfeld der Speichereinheit 12 kann zweidimensional oder dreidimensional ausgebildet sein.
  • Die Anzahl von Datenbits, die in jeder Speicherzelle der Speichereinheit 12 gespeichert werden, kann variiert werden. Beispielsweise kann die Speichereinheit 12 Einfachzustands- bzw. Single-Level-Flash-Speicherzellen (SLC), wo jede Zelle ein einziges Datenbit speichert, oder Mehrfachzustands- bzw. Multi-Level-Flash-Speicherzellen (MLC) aufweisen, wo jede Zelle eine Mehrzahl von Datenbits speichert. Ferner kann die Speichereinheit 12 sowohl die Einfachzustands-Flash-Speicherzellen als auch die Mehrfachzustands-Flash-Speicherzellen aufweisen.
  • Eine Sicherheitsregion 120 zum Speichern der Codierungszieldaten 20 kann in der Speichereinheit 12 angeordnet sein. Die Sicherheitsregion 120 kann einer spezifischen Adressenregion zugeordnet sein, und die Adressenregion kann einem spezifischen Block in dem Zellenfeld zugeordnet sein. Ein Beispiel für eine Zuordnung der Sicherheitsregion, in dem die Sicherheitsregion einem Block 0 bis einem Block 2 zugeordnet ist, ist in 7 dargestellt.
  • In einem Fall, wo Daten, die in einer anderen Region als der Sicherheitsregion 120 gespeichert sind, von der Speichereinheit 12 bereitgestellt werden, kann der Codierungsprozess 16 die Daten, die von der Speichereinheit 12 bereitgestellt werden, unter Umgehung der Codierungseinheit ausgeben, auch wenn der Codierungsmodus eingeschaltet ist. Auch wenn ein Befehl eingegeben wird, der die Codierung der Daten fordert, die in einer Region gespeichert sind, bei der es sich nicht um die Sicherheitsregion 120 handelt, muss die Codierungseinheit somit keine Datencodierung durchführen.
  • Die Sicherheitsregion 120, in der die Codierungszieldaten 20 gespeichert sind, kann aus Einfachzustandszellen (Single Level Cells, SLC) gebildet sein, und eine allgemeine Region, die die Sicherheitsregion 120 nicht enthält, kann aus Mehrfachzustandszellen (Multi Level Cells, MLC) gebildet sein.
  • Ferner kann die Sicherheitsregion 120 eine Mehrzahl von Abschnitten aufweisen. Unterschiedliche Codierungsregeln können auf die Daten angewendet werden, die in den jeweiligen Abschnitten gespeichert sind. Wie in 7 dargestellt, kann beispielsweise eine Codierungsregel 1 auf die Daten angewendet werden, die im Block 0 gespeichert sind, eine Codierungsregel 2 kann auf die Daten angewendet werden, die im Block 1 gespeichert sind, und eine Codierungsregel 3 kann auf die Daten angewendet werden, die im Block 2 gespeichert sind. Wenn der Befehl, der von der Steuereinheit 14 empfangen wird, keine Codierungsregeln anzeigt, kann die Codierungseinheit 14 demgemäß ein Codierungsregeländerungssignal an die Codierungseinheit 16 ausgeben, so dass die Codierungsregel angewendet wird, die dem Block entspricht, der die Codierungszieldaten 20 enthält. Wenn beispielsweise in der Gestaltung der Speichereinheit 12, die in 7 dargestellt ist, die Codierungszieldaten 20 in Block 2 gespeichert sind, kann die Steuereinheit 14 das Codierungsregeländerungssignal ausgeben, um die Codierungsregel 3 auf die Codierungseinheit 16 angewendet. Die Funktionsweise der Codierungseinheit 16, die das Codierungsregeländerungssignal empfangen hat, wird später ausführlich beschrieben.
  • Die Codierungsregel bestimmt ein Verhältnis, in dem ein spezifischer Codierungsmodus angewendet wird. In einem Fall, wo ein Codierungsmodus A ein Codierungsmodus ist, in dem codierte Daten im Host 60 oder im Controller nicht korrigiert werden können, und ein Codierungsmodus B ein Codierungsmodus ist, in dem codierte Daten im Host 60 oder im Controller 40 korrigiert werden können, bedeutet eine Codierungsregel, in der ein Verhältnis des Codierungsmodus B 70% ist, dass der Host oder der Controller im Allgemeinen sieben von zehn der codierten Daten korrigieren können, die von der Datenspeichervorrichtung 10 ausgegeben werden.
  • Die Daten, die von der Speichereinheit 12 bereitgestellt werden, werden von der Codierungseinheit 16 gemäß dem Codierungsmodus codiert und ausgegeben.
  • Der Codierungsmodus der Codierungseinheit 16 kann intern und autonom den Typ eines Moduls zum Codieren der Daten bestimmen. Beispielsweise kann in einem ersten Codierungsmodus ein Modul zum Codieren von 30% der eingegebenen Daten verwendet werden, und in einem zweiten Codierungsmodus kann ein Modul zum Codieren von 70% der eingegebenen Daten verwendet werden. Alternativ dazu kann im ersten Codierungsmodus ein Modul zum Codieren der eingegebenen Daten verwendet werden, und im zweiten Codierungsmodus kann ein Modul zum direkten Ausgeben der eingegebenen Daten ohne Codierung verwendet werden. Das heißt, der Codierungsmodus der Codierungseinheit 16 kann ein Codierungsverhältnis der eingegebenen Daten bedeuten.
  • Die Codierungseinheit 16 kann den Codierungsmodus autonom als Antwort auf das interne Trigger-Signal bestimmen. Das interne Trigger-Signal 19 zeigt den Codierungsmodus auch nicht an. Genauer erzeugt die Codierungseinheit 16, wenn sie das interne Trigger-Signal 19 empfängt, die Modusbestimmungsdaten unter Verwendung des Trigger-Signals 19 als Startsignal. Ferner bestimmt die Codierungseinheit 16 einen Codierungsmodus zum Codieren der Daten, die von der Speichereinheit bereitgestellt werden, auf Basis der Modusbestimmungsdaten. Wie oben beschrieben, wird das interne Trigger-Signal 19 nur als Startsignal für das Bestimmen des Codierungsmodus der Codierungseinheit 16 verwendet und wirkt sich nicht direkt auf die Bestimmung des Codierungsmodus der Codierungseinheit 16 aus.
  • Die Codierungseinheit 16 kann ihren eigenen Codierungsmodus autonom durch ein Zufallsdatenerzeugungsverfahren bestimmen. Das heißt, die Codierungseinheit 16 kann als Antwort auf das interne Trigger-Signal erste Zufallsdaten als die Modusbestimmungsdaten erzeugen. Da die Codierungsdaten jedoch so codiert werden sollten, dass sie einer bestimmten Codierungsregel folgen, kann die Codierungseinheit 16 die ersten Zufallsdaten mit einer gewünschten (oder alternativ mit einer vorbestimmten) Wahrscheinlichkeit erzeugen. Beispielsweise kann ein Zufallsdatengenerator so eingestellt sein, dass er nach dem Zufallsprinzip ,0', was den ersten Codierungsmodus anzeigt, oder ,1', was den zweiten Codierungsmodus anzeigt, so erzeugt, dass eine Wahrscheinlichkeit für die Erzeugung von ,0' bei 70% liegt. In einem Fall, wo die Modusbestimmungsdaten nach dem Zufallsprinzip erzeugt werden, während eine Wahrscheinlichkeit für die Erzeugung eines bestimmten Werts definiert ist, kann die Codierungsregel in Bezug auf ein Codierungsverhältnis der Daten befolgt werden, während ein Codierungsausgabemuster der Codierungszieldaten nach dem Zufallsprinzip variiert wird. Das heißt, da das Datenmuster der Modusbestimmungsdaten gemäß der Codierungsregel nach dem Zufallsprinzip variiert, tut dies auch das Codierungsausgabemuster.
  • Die Codierungseinheit 16 kann ferner zweite Zufallsdaten gemäß dem ausgewählten Codierungsmodus erzeugen. Die zweiten Zufallsdaten können verwendet werden, um die Daten zu codieren, die von der Speichereinheit 12 bereitgestellt werden. Beispielsweise führt die Codierungseinheit 16 eine logische Operation an den Daten aus der Speichereinheit 12 mit den zweiten Zufallsdaten zum Codieren der Daten durch und gibt die codierten Daten aus. Die logische Operation kann beispielsweise eine exklusive ODER-Operation, eine Kombination aus logischen Operationen oder dergleichen sein. Eine Mehrzahl von Datenfragmenten, die von der Codierungseinheit 16 als Antwort auf eine Mehrzahl der internen Lesesignale ausgegeben werden, kann codierte Daten 30 aus Codierungszieldaten 20 konstruieren.
  • Die Datenspeichervorrichtung 10 dieser Ausführungsform kann die Codierung der Ausgangsdaten gemäß der Codierungsregel variieren, indem sie den zweiten Befehl oder den dritten Befehl zweimal oder öfter eingibt. Dies wird ausführlich mit Bezug auf 4 beschrieben.
  • Es wird angenommen, dass die Codierungszieldaten 20 in zehn Fragmente unterteilt sind, die gelesen werden sollen, und dass der dritte Befehl zehnmal in unregelmäßigen Abständen in die Datenspeichervorrichtung 10 eingegeben wird. Es wird außerdem angenommen, dass ein Korrigierbarkeitsgrenzenverhältnis des Hosts 60 oder des Controllers 40 bei 40% der codierten Daten liegt. Mit Korrigierbarkeitsgrenzenverhältnis ist ein maximales Codierungsverhältnis gemeint, in dem die codierten Daten korrigiert werden können, beispielsweise mittels des Fehlerkorrekturcodes (ECC).
  • Es wird angenommen, dass ein Codierungsmodul zum Codieren von 20% der Daten im Codierungsmodus A verwendet wird, und ein Codierungsmodul zum Codieren von 80% der Daten im Codierungsmodus B verwendet wird. Das heißt, die Daten, die gemäß dem Codierungsmodus A codiert und ausgegeben werden, sind korrigierbare codierte Daten, und die Daten, die gemäß dem Codierungsmodus B codiert und ausgegeben werden, sind nicht-korrigierbare codierte Daten – im Wesentlichen Rauschdaten. Ferner wird angenommen, dass dann, wenn der dritte Befehl eingegeben wird, eine Wahrscheinlichkeit für die Auswahl des Codierungsmodus A gemäß der Codierungsregel bei 70% liegt.
  • Wie auf der rechten Seite in 4 zu sehen ist, sind in diesem Fall die Codierungsmuster in den jeweiligen Runden verschieden, aber eine Wahrscheinlichkeit für die Ausgabe der korrigierbaren codierten Daten wird bei 70% gehalten. Da die Bestimmung des Codierungsmodus von den ersten Zufallsdaten abhängt, die in der Codierungseinheit 16 erzeugt werden, kann es sein, dass eine Wahrscheinlichkeit für die Ausgabe von korrigierbaren codierten Daten unter den oben geschilderten Bedingungen etwas von 70% abweicht. Jedoch kann der Unterschied durch Durchführen einer Mehrzahl von Runden ausgeglichen werden. Ferner kann eine Zufallszahlenerzeugung so gestaltet sein, dass der korrigierbare Codierungsmodus mindestens einmal und nicht öfter als höchstmalig wiederholt wird. Das heißt, die Zahlenerzeugung erzeugt ein Datenmuster, dem das Codierungsmuster entspricht, so dass das Datenmuster den korrigierbaren Codierungsmodus mindestens einmal und nicht öfter als höchstmalig anzeigt. Die Höchstmaligkeit bzw. größte Häufigkeit kann der Codierungsregel entsprechen. Wenn beispielsweise die Codierungsregel 70% ist, dann codieren nicht mehr als 7 von 10 Fragmenten gemäß dem korrigierbaren Codierungsmodus. Anders ausgedrückt basiert das Datenmuster, das erzeugt wird, um die Codierungsmodi anzuzeigen, auf der Codierungsregel.
  • Die in 4 dargestellten Codierungszieldaten 20 können in zehn Fragmenten die gleichen Daten aufweisen. Das heißt, die Codierungszieldaten 20 können durch Verbinden von zwei oder mehr Fragmenten mit den gleichen Daten gebildet werden, und die Datenspeichervorrichtung 10 kann die Fragmente der Codierungszieldaten 20 ausgeben.
  • In einem Fall, wo die Codierungszieldaten 20 durch Verbinden einer Mehrzahl von Fragmenten mit den gleichen Daten gebildet werden, wird dasselbe Datenfragment mehrmals von der Datenspeichervorrichtung 10 codiert und ausgegeben. In diesem Fall werden die Codierungsregel und der Codierungsmodus bestimmt, bevor das entsprechende Fragment ausgegeben wird, und das Datenfragment wird gemäß dem bestimmten Codierungsmodus codiert und ausgegeben. Die Codierungsmuster der Datenfragmente können auch in jeder Runde verschieden sein, aber ein Verhältnis der korrigierbaren codierten Datenfragmente kann in jeder Runde als gleich bestimmt werden.
  • Alternativ dazu kann die Datenspeichervorrichtung 10 gemäß einer Ausführungsform Codierungszieldaten in der gleichen Region speichern, so dass sie über die gleiche Adresse zugänglich sind. In diesem Fall kann die Datenspeichervorrichtung 10 den dritten Befehl mehrmals empfangen. Die Codierungszieldaten werden gemäß dem ausgewählten Codierungsmodus auf Basis der Modusbestimmungsdaten codiert, die in der Codierungseinheit 16 erzeugt werden. Da der Codierungsmodus jedes Mal bestimmt wird, wenn die Codierungszieldaten ausgegeben werden, kann die Datenspeichervorrichtung 10 dieser Ausführungsform unterschiedliche codierte Daten gemäß dem Codierungsmodus ausgeben, obwohl Codierungsdaten ausgegeben werden, die in der gleichen Region gespeichert sind.
  • Wieder wiederum in 4 dargestellt ist, kann die Datenspeichervorrichtung 10, die die Codierungszieldaten 20 mehrmals ausgibt, die Befehle mit einer Häufigkeit empfangen, die der Häufigkeit der Ausgabe der Codierungszieldaten 20 entspricht. Wenn beispielsweise die Codierungszieldaten 20 zehnmal ausgegeben werden, kann die Datenspeichervorrichtung 10 sowohl den ersten Befehl als auch den zweiten Befehl zehnmal empfangen oder sie kann den dritten Befehl zehnmal empfangen.
  • Andererseits kann die Datenspeichervorrichtung 10 die Codierungszieldaten 20 auch dann mehrmals ausgeben, wenn der dritte Befehl nur einmal eingegeben wird. Für diese Operation kann die Steuereinheit 14, die den dritten Befehl empfangen hat, das interne Lesesignal 18 und das interne Trigger-Signal 19 jeweils mit einer Häufigkeit an die Speichereinheit 12 und die Codierungseinheit 16 ausgeben, die der Häufigkeit entspricht, mit der die Codierungszieldaten 20 ausgegeben werden, um sämtliche Codierungszieldaten 20 ausgeben zu können.
  • Wie oben beschrieben, wird in der Datenspeichervorrichtung 10 gemäß einer Ausführungsform ein Codierungsmuster jedes Mal nach dem Zufallsprinzip geändert, während eine Wahrscheinlichkeit für die Ausgabe der korrigierbaren codierten Daten aufrechterhalten wird. Somit können die Daten, die aus der Datenspeichervorrichtung 10 gelesen werden, aus den codierten Daten korrigiert werden, während die Sicherheit aufrechterhalten wird.
  • Die Codierungseinheit 16 kann zwei oder mehr Codierungsmodi aufweisen, wie oben erklärt. Um das Verständnis zu erleichtern, wird jedoch ein Fall, in dem die Codierungseinheit 16 zwei Codierungsmodi aufweist, als Beispiel beschrieben.
  • Wie in 3 dargestellt, kann die Codierungseinheit 16 einen Codierer 168, der die von der Speichereinheit 12 bereitgestellten Daten gemäß dem Codierungsmodus verarbeitet, und eine Codierungsbestimmungseinheit 160 aufweisen, die die Modusbestimmungsdaten als Antwort auf das interne Trigger-Signal 19 erzeugt, den Codierungsmodus auf Basis der Modusbestimmungsdaten bestimmt und ein Codierersteuersignal zur Betätigung des Codierers 168 in dem bestimmten Codierungsmodus an den Codierer 168 ausgibt.
  • Die Codierungsbestimmungseinheit 160 kann das Codierersteuersignal jedes Mal an den Codierer senden, wenn sie das interne Trigger-Signal 19 empfängt. Alternativ dazu kann die Codierungsbestimmungseinheit 160 das Codierersteuersignal zum Umschalten des Codierungsmodus an den Codierer 168 ausgeben, wenn der autonom bestimmte Codierungsmodus sich vom aktuellen Codierungsmodus des Codierers 168 unterscheidet. Das heißt, die Codierungsbestimmungseinheit 160 kann das Codierersteuersignal nur dann an den Codierer 168 senden, wenn es nötig ist, den Codierungsmodus des Codierers 168 umzuschalten. Da der Codierer 168 das Steuersignal mit einer Mindesthäufigkeit empfängt, kann somit die Operationseffizienz verbessert werden.
  • Die Gestaltung und die Funktionsweise der Codierungsbestimmungseinheit 160 werden ausführlich mit Bezug auf 5 beschrieben. Die Codierungsbestimmungseinheit 160 kann eine Codierungsregellisten-Ladeeinheit 164 aufweisen, die Daten in Bezug auf die Codierungsregel aus einer Codierungsregellisten-Speichereinheit 163 lädt, nachdem Leistung an die Datenspeichervorrichtung 10 angelegt wird. Die Codierungsbestimmungseinheit 160 weist auch einen Codierungsmodus-Bestimmungsteil 161 zum autonomen Bestimmen des Codierungsmodus, wenn das interne Trigger-Signal 19 eingegeben wird, und einen Codierersteuersignalgenerator 162 auf zum Erzeugen eines Codierersteuersignals zum Steuern des Codierers 168 in dem Codierungsmodus, der gemäß dem Codierungsmodus-Bestimmungsteil 161 bestimmt wird.
  • Die Codierungsregellisten-Ladeeinheit 164 lädt die Daten in Bezug auf die Codierungsregel aus der Codierungsregellisten-Speichereinheit 163. Die Codierungsregellisten-Ladeeinheit 164 kann eine Ladeoperation ausführen, nachdem Leistung an die Datenspeichervorrichtung 10 angelegt wird. Alternativ dazu kann die Codierungsregellisten-Ladeeinheit 164 die Ladeoperation als Antwort auf einen spezifischen Befehl durchführen, der von der Host-Vorrichtung oder dem Controller eingegeben wird, nachdem Leistung an die Datenspeichervorrichtung 10 angelegt wird. Die Codierungsregellisten-Ladeeinheit 164 kann Register als flüchtige Speichereinrichtung aufweisen, um die geladenen Daten zu speichern.
  • Die Codierungsregelliste gemäß einer Ausführungsform ist in 6 dargestellt. Es kann sein, dass nur eine einzige Codierungsregel existiert. Es können zwei oder mehr Codierungsregeln existieren, von denen eine ausgewählt und angewendet wird. In einem Fall, wo zwei oder mehr Codierungsregeln existieren, kann die Datenspeichervorrichtung 10 die Codierungsregel, die vom Controller 40 oder von der Host-Vorrichtung 60 vorgegeben wird, verwenden, oder die Codierungsregel autonom bestimmen.
  • 6 zeigt ein Beispiel, in dem eine von mehreren Codierungsregeln ausgewählt und verwendet wird. In einem Fall, wo beispielsweise eine Codierungsregel 1 ausgewählt wird, ist ein Verhältnis der korrigierbaren Codierung 40%. Wenn die Codierungsbestimmungseinheit 160 das interne Trigger-Signal 19 zehnmal empfängt, kann ein Codierungsmodul zur korrigierbaren Codierung der Daten etwa viermal ausgewählt werden.
  • Um die Codierungsregel zu ändern, die auf die Codierungseinheit 16 angewendet wird, kann die Datenspeichervorrichtung 10 einen Befehl empfangen, der auf die Einstellung der Codierungsregel bezogen ist. Das heißt, in diesem Fall decodiert die Steuereinheit 14 den Eingangsbefehl und gibt das interne Lesesignal und/oder das interne Triggersignal und/oder ein Codierungsregeländerungssignal gemäß den Decodierungsergebnissen aus. Ferner empfängt die Codierungseinheit 16 das Codierungsregeländerungssignal von der Steuereinheit 14 und ändert die Codierungsregel.
  • Das heißt, nachdem Leistung an die Datenspeichervorrichtung 10 angelegt wird, wird die Codierungsregelliste geladen, und ein externer Befehl wird eingegeben, um eine der Codierungsregeln, die in der Codierungsregelliste enthalten sind, aufzustellen. Dann erzeugt die Codierungseinheit 16 die Modusbestimmungsdaten auf Basis des Verhältnisses der korrigierbaren Codierung der aufgestellten Codierungsregel.
  • Wie in 5 dargestellt, kann die Codierungsregellisten-Speichereinheit 163 separat außerhalb der Codierungsbestimmungseinheit 160 bereitgestellt bzw. vorgesehen sein. Beispielsweise kann die Codierungsregellisten-Speichereinheit 163 ein E-Fuse-Block sein, bei dem es sich um einen spezifischen Block der Speichereinheit 12 handelt. Ebenso kann die Codierungsregellisten-Speichereinheit 163 ein E-Fuse-Block sein, der separat von der Speichereinheit 12 in der Datenspeichervorrichtung 10 vorgesehen ist. Nachdem Leistung an die Datenspeichervorrichtung 10 angelegt wird, wird eine Anfangs-Leseoperation an den Codierungsregeldaten durchgeführt, die im E-Fuse-Block gespeichert sind. Die Codierungsregeldaten, die durch die Anfangs-Leseoperation gelesen werden, können in die Codierungsregellisten-Ladeeinheit 164 geladen werden.
  • Da die Daten, die im E-Fuse-Block gespeichert sind, in einem E-Fuse-Datenlademodus aktualisiert werden können, können die Codierungsregeldaten ebenfalls aktualisiert werden. Das heißt, die Codierungsregel-Speichereinheit 163 kann irgendeine programmierbare Vorrichtung sein, und die darin gespeicherte(n) Codierungsregel(n) kann bzw. können auf Basis einer Anwendereingabe programmierbar sein.
  • Wenn das interne Trigger-Signal 19 eingegeben wird, aktiviert der Codierungsmodus-Bestimmungsteil 161 einen Zufallsdatengenerator 165, um Zufallsdaten auf Basis eines Verhältnisses der aufgestellten Codierungsregel zu erzeugen. Das heißt, der Zufallsdatengenerator 165 kann Zufallsdaten so erzeugen, dass ein Wert, der einen Codierungsmodus für eine korrigierbare Codierung der Daten anzeigt, in einem Verhältnis erzeugt wird, das von der Codierungsregel definiert wird. Der Zufallsdatengenerator 165 erzeugt die Modusbestimmungsdaten genau einmal, wenn das interne Trigger-Signal 19 einmal eingegeben wird. Der Zufallsdatengenerator 165 kann eine Hardware-Implementierung, ein Prozessor, der mit einem Zufallszahlengenerator-Algorithmus programmiert ist, usw. sein.
  • Wenn ein Codierungsmodus A und ein Codierungsmodus B existieren, kann entweder der Codierungsmodus A oder der Codierungsmodus B ausgewählt werden. Beispielsweise wird ,0' erzeugt, wenn der Codierungsmodus A ausgewählt wird; und wenn ‚1' erzeugt wird, wird der Codierungsmodus B ausgewählt.
  • Dann wird ein Codierersteuersignal zum Steuern des Codierers 168 vom Codierersteuersignalgenerator 162 gemäß den Modusbestimmungsdaten erzeugt und ausgegeben.
  • Ein Verfahren, in dem die Codierungsbestimmungseinheit 160 den Codierungsmodus des Codierers durch eine Zufallsdatenerzeugung bestimmt, wird weiter erklärt.
  • Wie oben beschrieben, kann die Erzeugung der Modusbestimmungsdaten auf Basis der Codierungsregel durch Erzeugen von Zufallsdaten so durchgeführt werden, dass ein Wert, der einen Codierungsmodus zum korrigierbaren Codieren der Daten anzeigt, mit einer spezifischen Wahrscheinlichkeit erzeugt wird. Die Zufallsdaten, die von der Codierungsbestimmungseinheit 160 erzeugt werden, werden als „erste Zufallsdaten” bezeichnet, um die Erklärung zu vereinfachen.
  • Obwohl die Codierungsbestimmungseinheit 160 das interne Trigger-Signal 19 gleich häufig in gleichmäßigen Abständen empfängt, sind die Daten, die verwendet werden, um den Codierungsmodus des Codierers 168 zu bestimmen, die ersten Zufallsdaten. Somit kann die Erzeugung der Zufallsdaten bei jeder Leseoperation dadurch gekennzeichnet sein, dass es von Leseoperation zu Leseoperation verschieden ist, ob spezifische Daten, die an einer spezifischen Adresse gespeichert sind, korrigierbar codiert werden können. Das heißt, eine Region der Daten, die von der Datenspeichervorrichtung 10 ausgegeben werden, in der die Daten korrigierbar codiert sind, kann von Leseoperation zu Leseoperation verschieden sein. Anders ausgedrückt können die Ausgangsdaten von spezifischen Daten, die in einer spezifischen Region in der Datenspeichervorrichtung 10 gespeichert sind, von Leseoperation zu Leseoperation verschieden sein, und daher wird es für einen Hacker schwierig, zu erkennen, ob manche Daten korrigiert werden können. Da die Codierungsbestimmungseinheit 160 in der Datenspeichervorrichtung 10 dieser Ausführungsform den Codierungsmodus des Codierers 168 auf Basis der ersten Zufallsdaten bestimmt, kann somit eine Position einer Region der Codierungszieldaten 20, in denen die Daten korrigierbar codiert sind, variiert werden.
  • Der Zufallsdatengenerator 165, der die ersten Zufallsdaten erzeugt, kann so programmierbar sein, dass die Wahrscheinlichkeit, spezifische Daten zu erzeugen (die z. B. einen spezifischen Codierungsmodus anzeigen), programmierbar ist.
  • Im Folgenden wird die Gestaltung des Codierers 168 mit Bezug auf 8 bis 13 beschrieben.
  • Zunächst kann der Codierer 168 eine Mehrzahl von Codierungsmodulen zum Codieren der Daten, die von der Speichereinheit 12 bereitgestellt werden, aufweisen. 8 zeigt ein Beispiel für den Codierer 168, der zwei Codierungsmodule 169 und 170 aufweist. Die Daten, die aus der Speichereinheit 12 ausgegeben werden, werden den beiden Codierungsmodulen 169 und 170 bereitgestellt. Nur eines der beiden Codierungsmodule 169 und 170 wird gemäß dem Codierersteuersignal, das von der Codierungsbestimmungseinheit 160 ausgegeben wird, freigegeben. Dann werden die codierten Daten, die von dem freigegebenen Codierungsmodul bereitgestellt werden, über einen MUX 171 ausgeben. In diesem Fall führen die Codierungsmodule eine Codierung der eingegebenen Daten mit unterschiedlichen Codierungsverhältnissen durch. Das Codierungsverhältnis jedes der Codierungsmodule 169, 170 kann auf Basis einer Anwendereingabe programmierbar sein. Das heißt, ein Anwender kann das Codierungsverhältnis eines oder mehrerer der Codierungsmodule 169, 170 variieren. Ebenso kann der Codierer 168 so gestaltet sein, dass die Leistung für das nicht-ausgewählte von den Codierungsmodulen 169, 170 abgeschaltet wird. Obwohl der MUX 171 den Codierungsmodulen in 8 nachgeschaltet ist, kann der MUX 171 zwischen der Speichereinheit 12 und den Codierungsmodulen angeordnet sein.
  • Die Mehrzahl von Codierungsmodulen kann eines oder mehrere Codierungsmodule des Typs A zum Codieren der eingegebenen Daten in einem Verhältnis, das gleich oder kleiner ist als das Korrigierbarkeitsgrenzenverhältnis des Hosts oder des Controllers, und eines oder mehrere Codierungsmodule des Typs B zum Codieren der eingegebenen Daten in einem Verhältnis, das größer ist als die Korrigierbarkeitsgrenze, beinhalten. Wenn beispielsweise das Korrigierbarkeitsgrenzenverhältnis der Host-Vorrichtung oder des Controllers 30% ist, kann das Codierungsmodul 169 ein Codierungsmodul des Typs A sein, das 20% der Daten codiert, und das Codierungsmodul 170 kann ein Codierungsmodul des Typs B sein, das 70% der Daten codiert.
  • Das heißt, die Daten werden von dem in 8 dargestellten Codierer 168 unter Verwendung des Codierungsmoduls vom Typ A oder des Codierungsmoduls vom Typ B unter der Steuerung der Codierungsbestimmungseinheit 160 codiert und ausgegeben.
  • 9 zeigt den Codierer 168, der unter der Steuerung der Codierungsbestimmungseinheit 160 eine Codierung der Daten durchführt, die von der Speichereinheit 12 bereitgestellt werden, oder die Daten so ausgibt, dass der Codierer umgangen wird. Der in 9 dargestellte Codierer 168 weist ein Codierungsmodul 172 zum Codieren der eingegebenen Daten und einen Umgehungsbus 173 zum Ausgeben der von der Speichereinheit 12 bereitgestellten Daten an den MUX 171 auf. Der Codierer 168 aktiviert entweder das Codierungsmodul 172 oder den Umgehungsbus 173 unter der Steuerung der Codierungsbestimmungseinheit 160 gemäß dem bestimmten Codierungsmodus. Beispielsweise kann das Codierungsmodul 172 ein Codieren der von der Speichereinheit 12 bereitgestellten Daten durchführen. Das Codierungsverhältnis des Codierungsmoduls 172 kann variabel innerhalb eines Bereichs eingestellt werden, der höher ist als das Korrigierbarkeitsgrenzenverhältnis. Das Codierungsverhältnis des Codierungsmoduls 172 kann auf Basis einer Anwendereingabe programmierbar sein. Das heißt, ein Anwender kann das Codierungsverhältnis der Codierungsmodule 172 variieren. Ebenso kann der Codierer 168 so gestaltet sein, dass er die Leistung für das Codierungsmodul 172 ausschaltet, wenn das Codierungsmodul 172 nicht ausgewählt ist.
  • Der in 9 dargestellte Codierer kann unter einer Steuerung der Codierungsbestimmungseinheit 160 eine Codierung der Daten durchführen, die von der Speichereinheit 12 bereitgestellt werden, oder er kann die Daten ohne Codierung unter Umgehung des Codierers 160 ausgeben.
  • Obwohl der MUX 171 dem Codierungsmodul 172 in 9 nachgeschaltet ist, kann der MUX 171 zwischen der Speichereinheit 12 und dem Codierungsmodul 172 angeordnet sein.
  • Der Codierer 168 kann aber auch ein einziges programmierbares Codierungsmodul anstelle der mehreren Codierungsmodule aufweisen. 10 zeigt den Codierer 168, der ein programmierbares Codierungsmodul 174 aufweist. Das programmierbare Codierungsmodul 174 kann ein Codierungsverhältnis der eingegebenen Daten einstellen.
  • Der in 10 dargestellte Codierer stellt ein Codierungsverhältnis des programmierbaren Codierungsmoduls 174 unter der Steuerung der Codierungsbestimmungseinheit 160 gemäß dem bestimmten Codierungsmodus ein. Der in 10 dargestellte Codierer kann den Codierungsmodus auch zwischen einem Codierungsmodus zum korrigierbaren Codieren der Daten und einem Codierungsmodus zum nicht-korrigierbaren Codieren der Daten umschalten. Das heißt, der Codierer 168 kann ein Codierungsverhältnis des programmierbaren Codierungsmoduls 174 im ersten Codierungsmodus auf ein erstes Codierungsverhältnis einstellen, das gleich oder kleiner ist als das Korrigierbarkeitsgrenzenverhältnis, oder er kann ein Codierungsverhältnis des programmierbaren Codierungsmoduls 174 im zweiten Codierungsmodus auf ein zweites Codierungsverhältnis einstellen, das größer ist als das Korrigierbarkeitsgrenzenverhältnis. Der Codierer 168 kann von einem Anwender programmierbar sein, um die Programmierungsverhältnisse, die bei der Gestaltung des programmierbaren Codierungsmoduls 174 verwendet werden, für die unterschiedlichen Codierungsmodi einzustellen.
  • Der Codierer 168 gemäß einer Ausführungsform kann eine Mehrzahl von Zufallsdatengeneratoren anstelle der Mehrzahl der Codierungsmodule 169 und 170 aufweisen. 11 zeigt ein Beispiel für den Codierer 168, der zwei Zufallsdatengeneratoren 175 und 176 aufweist. Nur einer der beiden Zufallsdatengeneratoren 175 und 176 wird gemäß dem Codierersteuersignal, das von der Codierungsbestimmungseinheit 160 gesendet wird, freigegeben. Dann gibt der Codierer 168 die Ergebnisse der logischen Operation 180 an den Daten, die von dem freigegebenen Zufallsdatengenerator bereitgestellt werden, und an den Daten, die von der Speichereinheit 12 bereitgestellt werden, aus. Eine Mehrzahl von Zufallsdatengeneratoren weist verschiedene Wahrscheinlichkeiten auf, mit denen ein Operand erzeugt wird, der die Daten aus der Speichereinheit 12 beibehält, nachdem die logische Operation durchgeführt wurde. Die logische Operation kann AND-, OR-, XOR-, NOR-, NAND-Operationen, eine Kombination davon oder dergleichen beinhalten.
  • Ein Operand, der die Daten beibehält, bedeutet Daten mit einem Wert, der dem Wert der Daten aus der Speichereinheit 12 gleich bleibt, nachdem die logische Operation durchgeführt wurde. Wenn beispielsweise „E” für die Operandenbeibehaltungsdaten steht und die logische Operation XOR ist, wird „A XOR E = A” für jeden Operanden A erhalten.
  • Anders ausgedrückt können in einem Fall, wo eine Wahrscheinlichkeit für die Erzeugung von Operandenbeibehaltungsdaten im Zufallsdatengenerator 175 oder 176 in einem EIN-Zustand X% ist, X% der Daten, die vom Codierer 168 ausgegeben werden, den originalen Daten aus der Speichereinheit 12 gleich sein, und (100 – X)% der Daten, die aus dem Codierer 168 ausgegeben werden, können sich von den originalen Daten aus der Speichereinheit 12 unterscheiden. Somit leuchtet ein, dass eine Wahrscheinlichkeit für die Erzeugung von Operandenbeibehaltungsdaten für die logische Operation 180 mit einem Codierungsverhältnis in Beziehung steht. Das Codierungsverhältnis, das durch die einzelnen Zufallsgeneratoren 175, 176 erzeugt wird, kann auf Basis einer Anwendereingabe programmierbar sein. Das heißt, ein Anwender kann das Codierungsverhältnis, das von einem oder mehreren der Zufallsdatengeneratoren 175, 176 erzeugt wird, variieren.
  • Die Mehrzahl von Zufallsdatengeneratoren kann einen oder mehrere Generatoren des Typs A zum Erzeugen der Operandenbeibehaltungsdaten aus den eingegebenen Daten in einem Verhältnis, das größer ist als das Korrigierbarkeitsgrenzenverhältnis, und einen oder mehrere der Zufallsdatengeneratoren des Typs B zum Erzeugen der Operandenbeibehaltungsdaten aus den eingegebenen Daten in einem Verhältnis, das gleich oder kleiner ist als das Korrigierbarkeitsgrenzenverhältnis, beinhalten. Das heißt, die Mehrzahl von Zufallsdatengeneratoren kann in den Typ A zum korrigierbaren Codieren der Daten und den Typ B zum nicht-korrigierbaren Codieren der Daten unterteilt werden.
  • Wie in 12 dargestellt ist, kann der Codierer 168 den Zufallsdatengenerator 175 des Typs A und einen Operandenbeibehaltungsdaten-Ausgabeteil 178 aufweisen. Der Codierer 168 kann eine logische Operation an den Daten, die von der Speichereinheit 12 bereitgestellt werden, und den Daten, die vom Zufallsdatengenerator 175 des Typs A oder vom Operandenbeibehaltungsdaten-Ausgabeteil 178 bereitgestellt werden, unter der Steuerung der Codierungsbestimmungseinheit 160 gemäß dem bestimmten Codierungsmodus durchführen und die Ergebnisse der logischen Operation ausgeben. Der in 12 dargestellte Codierer 168 codiert die Daten, die von der Speichereinheit 12 bereitgestellt werden, oder gibt die Daten unter Umgehung des Codierers unter der Steuerung der Codierungsbestimmungseinheit 160 auf die gleiche Weise aus wie in dem Codierer 168, der in 9 dargestellt ist. Alternativ dazu kann der Codierer 168 in 12 anstelle des Operandenbeibehaltungsdaten-Ausgabeteils 178 einen Umgehungsbus aufweisen, durch den die Daten aus der Speichereinheit 12 ohne die logische Operation ausgegeben werden. Der Zufallsdatengenerator 175 kann von einem Anwender programmierbar sein, um Zufallsdaten zu erzeugen, die einen bestimmten Codierungsmodus oder eine bestimmte Codierungsmenge produzieren. Und der Zufallsdatengenerator 175 kann ausgeschaltet werden, wenn er nicht ausgewählt ist.
  • Wie in 13 dargestellt, kann der Codierer 168 einen programmierbaren Zufallsdatengenerator 179 aufweisen, um eine Wahrscheinlichkeit für eine Erzeugung der Operandenbeibehaltungsdaten für eine spezifische logische Operation einzustellen. Der Codierer 168 kann die Wahrscheinlichkeit für die Erzeugung der Operandenbeibehaltungsdaten des programmierbaren Zufallsdatengenerators 179 gemäß dem bestimmten Codierungsmodus einstellen und die Ergebnisse der spezifischen logischen Operation 180 an den Daten, die von der Speichereinheit 12 bereitgestellt werden, und den Daten, die vom programmierbaren Zufallsdatengenerator 179 bereitgestellt werden, ausgeben.
  • Der in 13 dargestellte Codierer kann den Codierungsmodus zwischen einem Codierungsmodus für ein korrigierbares Codieren der Daten und einem Codierungsmodus für ein nicht-korrigierbares Codieren der Daten auf die gleiche Weise umschalten wie der Codierer 168, der in 10 dargestellt ist. Das heißt, der Codierer 168 kann die Wahrscheinlichkeit für die Erzeugung der Operandenbeibehaltungsdaten des programmierbaren Zufallsdatengenerators im ersten Codierungsmodus auf ein erstes Codierungsverhältnis einstellen, das größer ist als das Korrigierbarkeitsgrenzenverhältnis, oder kann die Wahrscheinlichkeit für die Erzeugung der Operandenbeibehaltungsdaten des programmierbaren Zufallsdatengenerators im zweiten Codierungsmodus auf ein zweites Codierungsverhältnis einstellen, das gleich oder kleiner ist als das Korrigierbarkeitsgrenzenverhältnis. Der Codierer 168 kann vom Anwender programmierbar sein, um die Programmierungsverhältnisse, die beim Gestalten des programmierbaren Zufallsdatengenerators 179 für die verschiedenen Codierungsmodi verwendet werden, einzustellen.
  • Der in 8 bis 13 dargestellte Codierer wurde als ein Beispiel dargestellt, und der Codierer 168 kann als eine gewünschte (oder alternativ eine vorbestimmte) logische Chiffrierschaltung konfiguriert sein.
  • Die Datenspeichervorrichtung 10 dieser Ausführungsform kann den ersten Befehl und den zweiten Befehl abwechselnd empfangen, um die Codierungszieldaten 20 auszugeben. In diesem Fall kann die Datenspeichervorrichtung 10 einen Trigger-Befehl als den zweiten Befehl jeweils für eine gewünschte (oder alternativ eine vorbestimmte) Größe der auszugebenden Daten empfangen oder kann den zweiten Befehl mit einer gewünschten (oder alternativ einer vorbestimmten) Häufigkeit empfangen, um sämtliche Codierungszieldaten 20 auszugeben.
  • Die Datenspeichervorrichtung 10 dieser Ausführungsform kann den dritten Befehl zweimal oder öfter empfangen, um die Codierungszieldaten 20 auszugeben. In diesem Fall kann die Datenspeichervorrichtung 10 den dritten Befehl jeweils für eine gewünschte (oder alternativ eine vorbestimmte) Größe der Daten empfangen, oder kann den dritten Befehl mit einer gewünschten (oder alternativ einer vorbestimmten) Häufigkeit empfangen, die gleich oder kleiner ist als die Häufigkeit bzw. die Anzahl der Trigger, um sämtliche Codierungszieldaten 20 auszugeben.
  • Im Folgenden wird die Funktionsweise der Datenspeichervorrichtung 10, die abwechselnd den ersten Befehl und den zweiten Befehl empfängt, um einen Teil der Codierungszieldaten 20 auszugeben, ausführlich mit Bezug auf 14 bis 18 beschrieben.
  • Zur erneuten Beschreibung des ersten Befehls und des zweiten Befehls ähnelt der erste Befehl einem herkömmlichen Lesebefehl darin, dass er von der Steuereinheit 14 decodiert und in der Form des internen Lesesignals 18 an die Speichereinheit gesendet wird, und wird der zweite Befehl von der Steuereinheit decodiert und in der Form des internen Trigger-Signals 19 an die Codierungseinheit gesendet.
  • Die Datenspeichervorrichtung 10, genauer die Steuereinheit 14, empfängt den ersten Befehl und den zweiten Befehl abwechselnd. Das heißt, nachdem der erste Befehl eingegeben wird, wird der zweite Befehl eingegeben, und nachdem der zweite Befehl eingegeben wird, wird der erste Befehl eingegeben. Jedoch ist es bevorzugt, dass die Steuereinheit 14 den ersten Befehl zuletzt empfängt, während die Codierungszieldaten 20 ausgegeben werden. Wenn der letzte Befehl der zweite Befehl ist, ist die Eingabe des zweiten Befehls sinnlos, da keine Ausgangsdaten mehr übrig sind.
  • Die Steuereinheit 14 kann den zweiten Befehl zu Anfang empfangen. Beispielsweise kann die Steuereinheit 14 den zweiten Befehl, den ersten Befehl, den zweiten Befehl und den ersten Befehl nacheinander und abwechselnd empfangen. Die Steuereinheit 14 kann auch den ersten Befehl zu Anfang empfangen. Beispielsweise kann die Steuereinheit 14 den ersten Befehl, den zweiten Befehl und den ersten Befehl nacheinander und abwechselnd empfangen.
  • Kurz gesagt kann die Steuereinheit 14, während die Codierungszieldaten 20 ausgegeben werden, den zweiten Befehl und den ersten Befehl abwechselnd so empfangen, dass der zweite Befehl oder der erste Befehl ein Anfangsbefehl ist und der erste Befehl vorzugsweise ein letzter Befehl ist.
  • 14 ist ein Zeitschema zur Erläuterung der Funktionsweise der Datenspeichervorrichtung 10, die abwechselnd einen ersten Befehl READ und einen zweiten Befehl TR empfängt.
  • Nachdem die Datenausgabe 622 gemäß dem unmittelbar vorangehenden ersten Befehl 602 abgeschlossen wurde, wird der zweite Befehl 604 über den I/O-Stift eingegeben. Als Antwort auf die Eingabe des zweiten Befehls 604 gibt die Steuereinheit 14 das interne Trigger-Signal 19 an die Codierungseinheit 16 aus, und die Codierungseinheit 16 bestimmt autonom den Codierungsmodus der Codierungseinheit 16 gemäß den ersten Zufallsdaten für das nächste Codieren, wenn der nächste erste Befehl 602 eingegeben wird. Wenn bei der autonomen Bestimmung bestimmt wird, dass es erforderlich ist, den Codierungsmodus der Codierungseinheit 16 umzuschalten, wird die Zeit, die die Codierungseinheit 16 benötigt, um das Umschalten abzuschließen, nachdem das interne Trigger-Signal 19 empfangen wurde, mit tSW 606 bezeichnet.
  • Wie oben beschrieben, kann es sein, dass die Codierungseinheit 16 den Codierungsmodus gemäß den Modusbestimmungsdaten auch dann nicht umschaltet, wenn der zweite Befehl 604 eingegeben wird. In 14 schaltet die Codierungseinheit 16 den Codierungsmodus nach der ersten Eingabe des zweiten Befehls 604 um, während die Codierungseinheit 16 den Codierungsmodus nach der zweiten Eingabe des zweiten Befehls 604 nicht umschaltet.
  • Wie in 15 dargestellt, kann der zweite Befehl 602 zwei Zyklen aufweisen. Das heißt, der zweite Befehl 602 kann einen Lesestartbefehl 00 h und einen Lesebestätigungsbefehl 30 h beinhalten. Ferner können Adressinformationen der Daten, die ausgegeben werden sollen, zwischen dem Lesestartbefehl und dem Lesebestätigungsbefehl enthalten sein. Die Adresse für die Daten, die aus der Datenspeichervorrichtung 10 als Antwort auf die Eingabe des ersten Befehls 602 ausgegeben werden, wird erhöht, wenn ein Signal des Lesefreigabestifts (RE-Pin) geschaltet wird.
  • 16 ist ein Zeitschema, das eine maximal zulässige Zeit für die Umschaltoperation der Codierungseinheit in der Datenspeichervorrichtung gemäß einer Ausführungsform zeigt, die abwechselnd den ersten Befehl READ und den zweiten Befehl TR empfängt.
  • Der Befehl, der über die I/O-Stifte der Datenspeichervorrichtung 10 eingegeben wird, wird gehalten, wenn das Schreibfreigabesignal (Write Enable, WE) nach oben geht. Wie im Flash-Speicherchip bestimmt, kann der Typ der Daten, die über den I/O-Stift eingegeben werden, wenn das WE-Signal nach oben geht, durch den Signalzustand wahrgenommen werden, der an einen Befehlsauffangstift CMD und einen Adressenauffangstift ALE angelegt wird.
  • Nachdem die Datenausgabe als Antwort auf die Eingabe des unmittelbar vorangehenden ersten Befehls abgeschlossen wurde, wird, wie in 16 dargestellt, der zweite Befehl, der über die I/O-Stifte eingegeben wird, an einer ansteigenden Flanke des/WE-Signals eingegeben (S700). In diesem Fall gibt die Steuereinheit 14 das interne Trigger-Signal 19 für die Codierungseinheit 16 aus (S701). Dann werden der Befehl 00 h, die Adresse, der Befehl 30 h nacheinander zu Zeiten, die im Flash-Speicherchip bestimmt sind, an einer entsprechenden ansteigenden Flanke des/WE-Signals eingegeben, S702, S704 und S706. Dann wird die Datenausgabe gemäß dem ersten Befehl 602 durchgeführt. Vorzugsweise wird die Umschaltoperation der Codierungseinheit 16 nach der Eingabe des zweiten Befehls 604 durchgeführt, bevor die Datenausgabe als Antwort auf die Eingabe des nächsten ersten Befehls 602 durchgeführt wird. Das heißt, die maximal zulässige Zeit MAX tSW von tSW 606 ist ein Zeitraum zwischen einem Zeitpunkt S700 und einem Zeitpunkt S708.
  • Wie in 16 dargestellt ist, ist zu sehen, dass ausreichend Zeit sichergestellt werden kann, bevor die Umschaltoperation der Codierungseinheit 16 durchgeführt wird.
  • 17 ist ein Zeitschema, das den Betrieb der Datenspeichervorrichtung 10 gemäß einer Ausführungsform erläutert, die abwechselnd den ersten Befehl READ zum Ausgeben von Fragmenten der Codierungszieldaten mit der gleichen Größe und den zweiten Befehl TR empfängt.
  • Wie in 17 dargestellt ist, können Codierungszieldatenfragmente 620, 622, 624 und 626, die aus der Speichereinheit 12 gemäß dem ersten Befehl 602 ausgegeben werden, die gleiche Größe aufweisen. Das Codierungszieldatenfragment, das aus der Speichereinheit 12 aufgrund des letzten ersten Befehls 602 ausgegeben wird, kann eine andere Größe als die anderen Codierungszieldatenfragmente aufweisen, da zuletzt die übrigen Daten für die Datenausgabe ausgegeben werden.
  • Das heißt, der zweite Befehl 604 kann mit regelmäßigen Adressintervallen eingegeben werden. Es ist zu sehen, dass der Codierungsmodus der Codierungseinheit 16 bei der ersten Eingabe des zweiten Befehls von einem B-Zustand in einen A-Zustand umgeschaltet wird (S900), aber die Codierungseinheit 16 den Codierungsmodus bei der zweiten Eingabe des zweiten Befehls (S902) und der dritten Eingabe des zweiten Befehls (S904) nicht umschaltet. Die Codierungseinheit 16 schaltet den Codierungsmodus erneut bei der vierten Eingabe des zweiten Befehls um (S906). Wie oben beschrieben, kann die Codierungseinheit 16 in einem Fall, wo die Daten gemäß der Forderung nach einer erneuten Leseoperation an den Codierungszieldaten, die in der gleichen Region gespeichert sind, erneut ausgegeben werden, den Codierungsmodus anders schalten als in 17.
  • Wie in 18 dargestellt, kann die Datenspeichervorrichtung 10 den zweiten Befehl 604 und den ersten Befehl 602 abwechselnd empfangen, um Fragmente der Codierungszieldaten 20 auszugeben, die unterschiedliche Größen aufweisen,. Die Größen der Codierungszieldatenfragmente 630, 632 und 634, die aus der Speichereinheit 12 gemäß dem ersten Befehl 602 ausgegeben werden, können untereinander verschieden sein. 18 zeigt einen Fall, wo die Codierungseinheit 16 den Codierungsmodus sowohl bei der ersten Eingabe des zweiten Befehls (S910) als auch der zweiten Eingabe des zweiten Befehls (S912) und der dritten Eingabe des zweiten Befehls (S914) umschaltet. Die Codierungsmodusumschaltungsfälle, die in 18 dargestellt sind, können jedes Mal verschieden sein, je nach dem Codierungsmodus, der von der Codierungseinheit 16 autonom bestimmt wird.
  • Wie oben beschrieben, kann die Datenspeichervorrichtung 10 den Codierungsmodus der Codierungseinheit 16 bei Empfang des zweiten Befehls oder des dritten Befehls umschalten, muss dies aber nicht tun. Jedoch muss zum Umschalten des Codierungsmodus der Codierungseinheit 16 der zweite Befehl oder der dritte Befehl eingegeben werden. Ferner schaltet die Datenspeichervorrichtung 10 den Codierungsmodus der Codierungseinheit 16 mindestens einmal um, während die Codierungszieldaten gemäß der Leseaufforderung, die von der Host-Vorrichtung 60 eingegeben wird, ausgegeben werden. Die Datenspeichervorrichtung 10 gemäß mindestens einer Ausführungsform kann eine Funktion der Ausgabe von codierten Daten durch Durchführen der oben beschriebenen Operation erfüllen. Ferner wird ein Umschalten zwischen einem Codierungsmodus durch den zweiten Befehl oder den dritten Befehl, die von außen eingegeben werden, durchgeführt. Demgemäß kann verhindert werden, dass ein Teil der Daten wegen einer verzögerten Umschaltung des Codierungsmodus anomal codiert wird oder ausgegeben wird, ohne codiert worden zu sein.
  • Im Folgenden wird die Funktionsweise der Datenspeichervorrichtung 10, die den dritten Befehl zweimal oder öfter empfängt, um die Codierungszieldaten 20 auszugeben, mit Bezug auf 19 und 20 beschrieben.
  • Die Steuereinheit 14 gibt das interne Lesesignal 18 und das interne Trigger-Signal 19 bei Empfang des dritten Befehls 606 aus. Somit wird verständlich, dass der dritte Befehl 606 ein Befehl ist, der durch eine Kombination des ersten Befehls 602 und des zweiten Befehls 604 gebildet wird.
  • 19 zeigt einen Fall, wo der dritte Befehl 606 keine Adressinformationen beinhaltet. Obwohl keine Adressinformationen im dritten Befehl 606 enthalten sind, kann die Datenspeichervorrichtung 10, um die Fragmente der Codierungszieldaten 20 auszugeben, so betätigt werden, dass sie als Antwort auf die Eingabe des dritten Befehls 606 die Daten mit einer gewünschten (oder alternativ einer vorbestimmten) Größe ausgibt. Alternativ kann die Datenspeichervorrichtung 10 so betätigt werden, dass sie als Antwort auf die Eingabe des dritten Befehls 606 die Datenausgabe am unmittelbar vorangehenden Ausgabeendpunkt wieder aufnimmt, und die Datenausgabe bei der nächsten Eingabe des dritten Befehls 606 vorübergehend unterbricht.
  • Die Datenspeichervorrichtung 10 führt eine Operation, um den Codierungsmodus der Codierungseinheit 16 zu bestimmen, und eine Operation durch, um die Daten vorzubereiten, die aus der Speichereinheit 12 als Antwort auf die Eingabe des dritten Befehls 606 ausgegeben werden sollen. Die Daten werden zu einem Zeitpunkt tatsächlich aus der Speichereinheit 12 ausgegeben, zu dem ein Signal des Lesefreigabestifts (RE-Pins) geschaltet wird (siehe 16).
  • Somit besteht ein Zeitunterschied zwischen einem Zeitpunkt, zu dem das interne Trigger-Signal 19 als Antwort auf die Eingabe des dritten Befehls 606 an die Codierungseinheit 16 gesendet wird, und einem Zeitpunkt, zu dem die Daten als Antwort auf die Eingabe des dritten Befehls 606 aus der Speichereinheit 12 ausgegeben werden. Somit kann die Codierungseinheit die Ausgabe der codierten oder nicht-codierten Daten gemäß dem Codierungsmodus der Codierungseinheit 16, der als Antwort auf die Eingabe des dritten Befehls 606 bestimmt wird, unterstützen, falls der Modus in den Codierungsmodus geschaltet wurde, der gemäß dem internen Trigger-Signal autonom bestimmt wird, bevor die Daten gemäß dem internen Lesesignal 18, das zusammen mit dem internen Trigger-Signal 19 ausgegeben wird, aus der Speichereinheit ausgegeben werden.
  • 20 zeigt einen Fall, in dem eine Adresse der Daten, die ausgegeben werden sollen, nach der Eingabe des dritten Befehls 606 separat eingegeben wird, anders als im Fall von 19. Die Eingabe des Befehls und die Eingabe der Adresse unterscheiden sich durch den Signalzustand, der an den Befehlsauffanganschluss und den Adressenauffanganschluss angelegt wird. In diesem Fall gibt die Datenspeichervorrichtung 10 nur die Daten aus, die den Adresseninformationen entsprechen, die separat eingegeben wurden, nachdem der dritte Befehl 606 eingegeben wird.
  • Im Folgenden wird ein Aufbau des Datenspeichersystems 50 gemäß verschiedenen Ausführungsformen mit Bezug auf 21 bis 23 beschrieben. Das Datenspeichersystem 50 dieser Ausführungsform weist den Controller 40 zum Ausgaben eines Befehls als Antwort auf eine Aufforderung zum Lesen der Codierungszieldaten, der von einer externen Einrichtung eingegeben wird, und die Datenspeichervorrichtung 10 auf, die als Antwort auf den Befehl operiert, der vom Controller 40 eingegeben wird.
  • Das Datenspeichersystem 50 kann eine Karte sein, beispielsweise eine Speicherkarte. Insbesondere kann das Datenspeichersystem 50 dieser Ausführungsform eine Karte sein, die verwendet wird, um die industriellen Standards in einem elektrischen Gerät zu erfüllen, beispielsweise in einem Mobiltelefon, einem zweifach gerichteten Kommunikationssystem, einem einfach gerichteten Funkempfänger, einem zweifach gerichteten Funkempfänger, einem persönlichen Kommunikationssystem, einem tragbaren Computer, einem Personal Data Assistant (PDA), einem Audio- und/oder Video-Player, einer digitalen und/oder Videokamera, einem Navigationssystem, einem globalen Positionsbestimmungssystem (GPS) oder dergleichen. Jedoch ist es nicht darauf beschränkt, und das Datenspeichersystem gemäß der Ausführungsform kann in verschiedenen Formen gestaltet sein, beispielsweise als Speicherstift.
  • Zunächst wird die Funktionsweise des Datenspeichersystems 50 gemäß der Ausführungsform mit Bezug auf 21 beschrieben.
  • Der Controller 40 des Datenspeichersystems 50 dieser Ausführungsform erzeugt den dritten Befehl 606 als Antwort auf eine Aufforderung zum Lesen eines Teils der Codierungszieldaten 20. Da die Leseaufforderung gestellt wird, um einen Teil der Codierungszieldaten 20 zu lesen, muss der Controller 40 die Leseaufforderung zweimal oder öfter empfangen, um sämtliche Codierungszieldaten 20 auszugeben. Die Datenspeichervorrichtung 10 erzeugt die Modusbestimmungsdaten, die auf die Codierung der Daten bezogen sind, die ausgegeben werden sollen, als Antwort auf die Eingabe des dritten Befehls 606. Dann wird ein Teil der Codierungszieldaten 20 gemäß dem Codierungsmodus, der auf Basis der Modusbestimmungsdaten bestimmt wird, von der Datenspeichervorrichtung 10 codiert und ausgegeben. Da die Funktionsweise der Datenspeichervorrichtung 10 gemäß dem dritten Befehl 606 beschrieben wurde, wird seine Beschreibung weggelassen, um Wiederholungen zu vermeiden.
  • Wenn die Leseaufforderung einen Trigger-Typ beinhaltet, kann der Controller 40 den dritten Befehl 606 erzeugen, der den Trigger-Typ beinhaltet. In diesem Fall bestimmt die Datenspeichervorrichtung 10, wie oben beschrieben, autonom, ob die Daten als Antwort auf die Eingabe des dritten Befehls 606 gemäß der Codierungsregel, die dem Trigger-Typ entspricht, codiert werden sollen. Obwohl der Trigger-Typ in der Leseaufforderung nicht enthalten ist, kann der Controller 40 den dritten Befehl 606, der den Trigger-Typ beinhaltet, gemäß einer Speicherposition der Codierungszieldaten 20 erzeugen.
  • Im Folgenden wird die Funktionsweise des Datenspeichersystems 50 gemäß einer anderen Ausführungsform mit Bezug auf 22 und 23 beschrieben.
  • Das Datenspeichersystem 50 dieser Ausführungsform unterscheidet sich von dem Datenspeichersystem, das in 21 dargestellt ist, darin, dass nur ein einziger Lesebefehl in den Controller 40 eingegeben werden muss, um sämtliche Codierungszieldaten 20 auszugeben.
  • Zunächst gibt im Datenspeichersystem 50, das in 50 dargestellt ist, der Controller 40 als Antwort auf eine einzige Eingabe der Leseaufforderung den dritten Befehl zum Ausgeben der Fragmente der Codierungszieldaten 20 zweimal oder öfter nacheinander aus. Beispielsweise kann der dritte Befehl 606 zum Ausgeben der Datenfragmente, wie in 22 dargestellt, befehlen, dass jedes Mal Daten mit einer Größe von 10 kb (Kilobyte) ausgegeben werden. Als Antwort auf die Eingabe des dritten Befehls 606 zum Ausgeben der Datenfragmente wird durch die Datenspeichervorrichtung 10 der Codierungsmodus autonom bestimmt und werden die Fragmente der Codierungszieldaten 20 gemäß dem bestimmten Codierungsmodus codiert und ausgegeben, wie oben beschrieben.
  • Die Informationen über die Codierungsregel, die angewendet wird, wenn die Datenspeichervorrichtung 10 autonom bestimmt, ob die Daten codiert werden sollen, kann in der Leseaufforderung enthalten sein. Ferner kann der Controller 40 den Befehl zum Ändern der Codierungsregel an die Datenspeichervorrichtung 10 ausgeben, um die Codierungsregel separat von der Leseaufforderung aufzustellen oder zu ändern.
  • Obwohl die Codierungsregel in der Leseaufforderung nicht enthalten ist, wird die Codierungsregel gemäß einer Speicherregion der Codierungszieldaten 20 bestimmt (S40), und die Codierungszieldaten werden gemäß der bestimmten Codierungsregel codiert. Wenn, wie in 22 dargestellt, die Codierungszieldaten 20 in einer Region gespeichert sind, auf die die Codierungsregel des Typs 1 angewendet wird, kann der Controller 40 die Codierungsregel als Typ 1 bestimmen, auch wenn die Leseaufforderung keine Informationen über die Codierungsregel enthält.
  • Dann gibt der Controller 40 in dem in 23 dargestellten Datenspeichersystem 50 abwechselnd den zweiten Befehl und den ersten Befehl aus, um Fragmente der Codierungszieldaten als Antwort auf die Eingabe der Leseaufforderung für die Codierungszieldaten auszugeben.
  • Wie in 23 dargestellt ist, gibt der Controller 40 den ersten Befehl 602 zum Ausgeben von Fragmenten der Codierungszieldaten 20 mit einer Größe von 10 kb und den zweiten Befehl 604 abwechselnd als Antwort auf die Eingabe der Leseanforderung aus.
  • Wenn sie abwechselnd den ersten Befehl 602 zum Ausgeben von Datenfragmenten und den zweiten Befehl 604 empfängt, bestimmt die Datenspeichervorrichtung 10 autonom den Codierungsmodus als Antwort auf den zweiten Befehl 604, und die Fragmente der Codierungszieldaten 20 werden von ihr gemäß dem bestimmten Codierungsmodus codiert und ausgegeben, wie oben beschrieben.
  • Gemäß den Ausführungsbeispielen wird bewirkt, dass eine Codierung durchgeführt werden kann, mit der die Sicherheit von Daten, die ausgegeben werden sollen, lediglich durch zweimaliges oder häufigeres Eingeben eines spezifischen Befehls / spezifischer Befehle in die Datenspeichervorrichtung, während die Daten aus der Datenspeichervorrichtung ausgegeben werden, verbessert wird.
  • Ferner wird als Antwort auf die Eingabe des spezifischen Befehls ein Umschalten des Codierungsmodus der Codierungseinheit in der Datenspeichervorrichtung durchgeführt, und während des Umschaltens wird keine Datenausgabe durchgeführt. Somit wird bewirkt, dass die Zeit, die nötig ist, um den Codierungsmodus der Codierungseinheit umzuschalten, sichergestellt ist. Infolgedessen kann verhindert werden, dass Daten, nicht nicht-korrigierbar codiert werden müssen, deswegen korrigierbar codiert werden, und umgekehrt, weil der Codierungsmodus der Codierungseinheit während der Datenausgabe umgeschaltet wird.
  • Ferner kann die Datenspeichervorrichtung den Codierungsmodus der Codierungseinheit als Antwort auf die Eingabe des spezifischen Befehls gemäß einer gewünschten (oder alternativ einer vorbestimmten) Codierungsregel bestimmen, und die Codierungsregel kann durch eine externe Einrichtung definiert werden. Somit kann ein Codierungsverfahren durch eine externe Einrichtung definiert werden.
  • Darüber hinaus ist eine Position der Daten, die korrigierbar codiert wurden, in den Daten, die aus der Datenspeichervorrichtung ausgegeben werden, jedes Mal anders, und es werden keine originalen Daten eingegeben. Somit kann verhindert werden, dass die Ausgangsdaten missbräuchlich decodiert werden.
  • Obwohl die Ausführungsformen im Einzelnen dargestellt und beschrieben wurden, weiß ein Fachmann, dass verschiedene Änderungen an Formen und Einzelheiten vorgenommen werden können, ohne vom Gedanken und Bereich der erfinderischen Idee abzuweichen, die von den folgenden Ansprüchen definiert sind.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 10-2011-046405 [0001]
    • KR 10-2011-0081308 [0001]

Claims (47)

  1. Datenspeichervorrichtung (10), aufweisend: eine Steuereinheit (14), die so gestaltet ist, dass sie mindestens einen Eingangsbefehl decodiert, und die so gestaltet ist, dass sie ein Lesesignal und/oder ein Startsignal als Antwort auf den Eingangsbefehl erzeugt, wobei das Startsignal anzeigt, dass ein interner Modusbestimmungsprozess gestartet werden soll; eine Speichereinheit (12), die so gestaltet ist, dass sie Daten als Antwort auf das Lesesignal ausgibt; und eine Codierungseinheit (16), die so gestaltet ist, dass sie den internen Modusbestimmungsprozess als Antwort auf das Startsignal startet und durchführt, wobei der interne Modusbestimmungsprozess ein autonomes Bestimmen eines Codierungsmodus beinhaltet, und die Codierungseinheit (16) so gestaltet ist, dass sie die Ausgangsdaten auf Basis des bestimmten Codierungsmodus codiert, um codierte Daten zu produzieren.
  2. Datenspeichervorrichtung (10) nach Anspruch 1, wobei die Codierungseinheit (16) gemäß dem internen Modusbestimmungsprozess so gestaltet ist, dass sie Zufallsdaten erzeugt, und so gestaltet ist, dass sie den Codierungsmodus auf Basis der Zufallsdaten bestimmt.
  3. Datenspeichervorrichtung (10) nach Anspruch 2, wobei die Codierungseinheit (16) so gestaltet ist, dass sie eine Codierungsregel übernimmt, die Codierungsregel eine Wahrscheinlichkeit anzeigt, mit der die einzelnen Codierungsmodi aus einem Satz von Codierungsmodi ausgewählt werden, und die Codierungseinheit so gestaltet ist, dass sie die Zufallsdaten auf Basis der übernommenen Codierungsregel erzeugt.
  4. Datenspeichervorrichtung (10) nach Anspruch 1, wobei die Codierungseinheit, gemäß dem internen Modusbestimmungsprozess, so gestaltet ist, dass sie ein Datenmuster erzeugt, und so gestaltet ist, dass sie den Codierungsmodus auf Basis des Datenmusters bestimmt.
  5. Datenspeichervorrichtung (10) nach Anspruch 4, wobei die Codierungseinheit so gestaltet ist, dass sie eine Codierungsregel übernimmt, wobei die Codierungsregel eine Wahrscheinlichkeit anzeigt, mit der die einzelnen Codierungsmodi aus einem Satz von Codierungsmodi ausgewählt werden, und die Codierungseinheit so gestaltet ist, dass sie das Datenmuster auf Basis der übernommenen Codierungsregel erzeugt.
  6. Datenspeichervorrichtung (10) nach Anspruch 1, wobei die Codierungseinheit so gestaltet ist, dass sie eine Codierungsregel übernimmt, die Codierungsregel eine Wahrscheinlichkeit anzeigt, mit der die einzelnen Codierungsmodi aus einem Satz von Codierungsmodi ausgewählt werden, und die Codierungseinheit so gestaltet ist, dass sie den Codierungsmodus auf Basis der Codierungsregel bestimmt.
  7. Datenspeichervorrichtung (10) nach Anspruch 6, wobei die Codierungseinheit so gestaltet ist, dass sie die Codierungsregel auf Basis eines anderen Eingangsbefehls übernimmt.
  8. Datenspeichervorrichtung (10) nach Anspruch 6, wobei die Codierungseinheit so gestaltet ist, dass sie die Codierungsregel auf Basis eines Ortes, an dem sich die Ausgangsdaten in der Speichereinheit befinden, übernimmt.
  9. Datenspeichervorrichtung (10) nach Anspruch 6, wobei die Codierungseinheit so gestaltet ist, dass sie eine Liste von Codierungsregeln aus einer Codierungsregel-Speichereinheit lädt, und so gestaltet ist, dass sie eine von den Codierungsregeln aus der Liste auswählt.
  10. Datenspeichervorrichtung (10) nach Anspruch 1, wobei die Codierungseinheit so gestaltet ist, dass sie eine Mehrzahl von Ausgangsdaten, die originale Daten darstellen, codiert, um einen Satz von codierten Ausgangsdaten zu erzeugen, und die Codierungseinheit so gestaltet ist, dass sie den internen Modusbestimmungsprozess für jede einzelne Einheit von der Mehrzahl von Ausgangsdaten, die die originalen Daten darstellen, durchführt, um einen jeweiligen Codierungsmodus für jede einzelne Einheit von der Mehrzahl von Ausgangsdaten zu bestimmen, und die Codierungseinheit so gestaltet ist, dass sie jede einzelne Einheit von der Mehrzahl von Ausgangsdaten auf Basis des jeweiligen Codierungsmodus codiert.
  11. Datenspeichervorrichtung (10) nach Anspruch 10, wobei die Codierungseinheit so gestaltet ist, dass sie mehr als einen Satz von codierten Ausgangsdaten, die gleiche originale Daten darstellen, erzeugt.
  12. Datenspeichervorrichtung (10) nach Anspruch 10, wobei die Steuereinheit so gestaltet ist, dass sie einander abwechselnde erste und zweite Eingangsbefehle empfängt, die Steuereinheit so gestaltet ist, dass sie das Lesesignal als Antwort auf den ersten Eingangsbefehl erzeugt, und so gestaltet ist, dass sie das Startsignal als Antwort auf den zweiten Eingangsbefehl erzeugt, so dass die Codierungseinheit die Mehrzahl von Ausgangsdaten, die die originalen Daten darstellen, empfängt und die Mehrzahl von Ausgangsdaten codiert.
  13. Datenspeichervorrichtung (10) nach Anspruch 12, wobei jede Einheit von der Mehrzahl von vorhandenen Ausgangsdaten die gleiche Größe aufweist.
  14. Datenspeichervorrichtung (10) nach Anspruch 12, wobei mindestens eine Einheit von der Mehrzahl von Ausgangsdaten eine andere Größe aufweist als eine andere Einheit von der Mehrzahl von Ausgangsdaten.
  15. Datenspeichervorrichtung (10) nach Anspruch 12, wobei der erste Befehl zu Anfang empfangen wird.
  16. Datenspeichervorrichtung (10) nach Anspruch 12, wobei der zweite Befehl zu Anfang empfangen wird.
  17. Datenspeichersystem (50), aufweisend: die Datenspeichervorrichtung (10) nach Anspruch 12; und einen Controller (40), der so gestaltet ist, dass er die einander abwechselnden ersten und zweiten Eingangsbefehle als Antwort auf eine entsprechende Mehrzahl von empfangenen Leseaufforderungen erzeugt.
  18. Datenspeichersystem (50), aufweisend: die Datenspeichervorrichtung (10) nach Anspruch 12; und einen Controller (40), der so gestaltet ist, dass er die einander abwechselnden ersten und zweiten Eingangsbefehle als Antwort auf eine einzelne empfangene Leseaufforderung erzeugt.
  19. Datenspeichervorrichtung (10) nach Anspruch 10, wobei die Steuereinheit (14) so gestaltet ist, dass sie eine Mehrzahl von Eingangsbefehlen empfängt, die Steuereinheit (14) so gestaltet ist, dass sie das Lesesignal und das Startsignal als Antwort auf jeden einzelnen von der Mehrzahl von Eingangsbefehlen erzeugt, so dass die Codierungseinheit (16) die Mehrzahl an Ausgangsdaten, die die originalen Daten darstellen, empfängt und die Mehrzahl von Ausgangsdaten codiert.
  20. Datenspeichersystem (50), aufweisend: die Datenspeichervorrichtung (10) nach Anspruch 19; und einen Controller (40), der so gestaltet ist, dass er die Mehrzahl von Eingangsbefehlen als Antwort auf eine entsprechende Mehrzahl von empfangenen Leseaufforderungen erzeugt.
  21. Datenspeichersystem (50), aufweisend: die Datenspeichervorrichtung (10) nach Anspruch 19; und einen Controller (40), der so gestaltet ist, dass er die Mehrzahl von Eingangsbefehlen als Antwort auf eine einzelne empfangene Leseaufforderung erzeugt.
  22. Datenspeichervorrichtung (10) nach Anspruch 1, wobei die Codierungseinheit (16) aufweist: ein erstes Codierungsmodul (169), das so gestaltet ist, dass es die Ausgangsdaten in einem ersten Codierungsverhältnis codiert; ein zweites Codierungsmodul (170), das so gestaltet ist, dass es die Ausgangsdaten in einem zweiten Codierungsverhältnis codiert, wobei das zweite Codierungsverhältnis größer ist als das erste Codierungsverhältnis; und einen Selektor (171), der so gestaltet ist, dass er auf Basis des bestimmten Codierungsmodus die codierten Daten selektiv aus dem ersten Codierungsmodul oder dem zweiten Codierungsmodul ausgibt.
  23. Datenspeichervorrichtung (10) nach Anspruch 22, wobei die Codierungseinheit (16) so gestaltet ist, dass sie auf Basis des bestimmten Codierungsmodus nur eines von den ersten und zweiten Codierungsmodulen aktiviert.
  24. Datenspeichervorrichtung (10) nach Anspruch 22, wobei das erste Codierungsverhältnis ein korrektes Decodieren der codierten Ausgangsdaten erlaubt, und das zweite Codierungsverhältnis kein korrektes Decodieren der codierten Ausgangsdaten erlaubt.
  25. Datenspeichervorrichtung (10) nach Anspruch 1, wobei die Codierungseinheit aufweist: ein erstes Codierungsmodul (172), das so gestaltet ist, dass es die Ausgangsdaten so codiert, dass die codierten Ausgangsdaten gemäß einem ersten Codierungsverhältnis codiert werden; und einen Selektor (717), der so gestaltet ist, dass er die codierten Daten auf Basis des bestimmten Codierungsmodus selektiv (1) wie aus dem ersten Codierungsmodul ausgegeben oder (2) als die Ausgangsdaten ausgibt.
  26. Datenspeichervorrichtung (10) nach Anspruch 25, wobei das erste Codierungsverhältnis kein korrektes Decodieren der codierten Ausgangsdaten erlaubt.
  27. Datenspeichervorrichtung (10) nach Anspruch 25, wobei die Codierungseinheit (16) so gestaltet ist, dass sie auf Basis des bestimmten Codierungsmodus selektiv das erste Codierungsmodul (172) deaktiviert.
  28. Datenspeichervorrichtung (10) nach Anspruch 1, wobei die Codierungseinheit (16) aufweist: ein programmierbares Codierungsmodul, (172) das so gestaltet ist, dass es die Ausgangsdaten in einem Codierungsverhältnis auf Basis des bestimmten Codierungsmodus codiert.
  29. Datenspeichervorrichtung (10) nach Anspruch 1, wobei die Codierungseinheit (16) aufweist: einen ersten Zufallsdatengenerator (175), der so gestaltet ist, dass er erste Zufallsdaten erzeugt; einen zweiten Zufallsdatengenerator (176), der so gestaltet ist, dass er zweite Zufallsdaten erzeugt; einen Selektor (171), der so gestaltet ist, dass er auf Basis des bestimmten Codierungsmodus selektiv die ersten Zufallsdaten oder die zweiten Zufallsdaten ausgibt; einen logischen Operator (180), der so gestaltet ist, dass er die Ausgangsdaten logisch mit den Codierungsdaten kombiniert, um die codierten Daten zu erzeugen; und wobei die ersten Zufallsdaten weniger Codierung produzieren als die zweiten Zufallsdaten.
  30. Datenspeichervorrichtung (10) nach Anspruch 29, wobei die codierten Daten korrekt korrigierbar sind, wenn die ersten Zufallsdaten die Codierungsdaten sind, und die kodierten Daten nicht korrekt decodierbar sind, wenn die zweiten Zufallsdaten die Codierungsdaten sind.
  31. Datenspeichervorrichtung (10) nach Anspruch 29, wobei die Codierungseinheit so gestaltet ist, dass sie auf Basis des bestimmten Codierungsmodus nur entweder den ersten oder den zweiten Zufallsdatengenerator aktiviert.
  32. Datenspeichervorrichtung (10) nach Anspruch 1, wobei die Codierungseinheit aufweist: einen ersten Zufallsdatengenerator (175), der so gestaltet ist, dass er erste Zufallsdaten erzeugt; einen Selektor (171), der so gestaltet ist, dass er entweder (1) die ersten Zufallsdaten oder (2) Bezugsdaten als Codierungsdaten ausgibt; einen logischen Operator (180), der so gestaltet ist, dass er die Ausgangsdaten logisch mit den Codierungsdaten kombiniert, um die codierten Daten zu erzeugen; und wobei die Bezugsdaten weniger Codierung produzieren als die ersten Zufallsdaten.
  33. Datenspeichervorrichtung (10) nach Anspruch 32, wobei die Bezugsdaten keine Codierung produzieren, wenn sie logisch mit den Ausgangsdaten kombiniert werden.
  34. Datenspeichervorrichtung (10) nach Anspruch 32, wobei die codierten Daten nicht korrekt decodierbar sind, wenn die ersten Zufallsdaten die Codierungsdaten sind.
  35. Datenspeichervorrichtung (10) nach Anspruch 32, wobei die Codierungseinheit so gestaltet ist, dass sie auf Basis des bestimmten Codierungsmodus selektiv den ersten Zufallsdatengenerator deaktiviert.
  36. Datenspeichervorrichtung (10) nach Anspruch 1, wobei die Codierungseinheit (16) aufweist: einen logischen Operator (180), der so gestaltet ist, dass er Codierungsdaten logisch mit den Ausgangsdaten kombiniert, um die codierten Daten zu produzieren; und einen programmierbaren Zufallsdatengenerator (179), der so gestaltet ist, dass er Zufallsdaten als die Codierungsdaten erzeugt, so dass die Ausgangsdaten in einem Codierungsverhältnis codiert werden, das auf dem bestimmten Codierungsmodus basiert.
  37. Datenspeichervorrichtung (10) nach Anspruch 1, wobei die Codierungseinheit mindestens ein Codierungsmodul aufweist, das so gestaltet ist, dass es die Ausgangsdaten auf Basis eines Codierungsverhältnisses codiert, und das Codierungsverhältnis programmierbar ist.
  38. Datenspeichervorrichtung (10) nach Anspruch 1, wobei die Ausgangsdaten Authentifizierungsdaten sind, um die Datenspeichervorrichtung (10) zu authentifizieren.
  39. Datenspeichervorrichtung (10) nach Anspruch 1, wobei die Speichereinheit (12) so gestaltet ist, dass sie originale Daten, die codiert werden sollen, in Einfachzustandszellen speichert, und so gestaltet ist, dass sie originale Daten, die nicht codiert werden sollen, in Mehrfachzustandszellen speichert.
  40. Datenspeichervorrichtung (10), aufweisend: eine Steuereinheit (14), die so gestaltet ist, dass sie einen Eingangsbefehl decodiert, und die so gestaltet ist, dass sie ein Lesesignal und/oder ein Trigger-Signal als Antwort auf den Eingangsbefehl erzeugt, wobei der Eingangsbefehl keinen Codierungsmodus anzeigt; eine Speichereinheit (12), die so gestaltet ist, dass sie Daten als Antwort auf das Lesesignal ausgibt; und eine Codierungseinheit (16), die so gestaltet ist, dass sie Anzeigedaten als Antwort auf das Trigger-Signal erzeugt, wobei die Anzeigedaten einen Codierungsmodus anzeigen, die Codierungseinheit so gestaltet ist, dass sie auf Basis der Anzeigedaten den Codierungsmodus aus einem Satz von Codierungsmodi auswählt, und so gestaltet ist, dass sie die Ausgangsdaten auf Basis des bestimmten Codierungsmodus codiert.
  41. Datenspeichervorrichtung (10) nach Anspruch 40, wobei das Trigger-Signal keinen Codierungsmodus anzeigt.
  42. Datenspeichervorrichtung (10) nach Anspruch 41, wobei das Trigger-Signal der Codierungseinheit anzeigt, dass ein interner Modusbestimmungsprozess gestartet und durchgeführt werden soll, wobei der interne Modusbestimmungsprozess ein autonomes Auswählen des Codierungsmodus beinhaltet.
  43. Datenspeichervorrichtung (10), aufweisend: eine Steuereinheit (14), die so gestaltet ist, dass sie einen Eingangsbefehl decodiert, und die so gestaltet ist, dass sie ein Lesesignal und/oder ein Trigger-Signal als Antwort auf den Eingangsbefehl erzeugt; eine Speichereinheit (12), die so gestaltet ist, dass sie Daten als Antwort auf das Lesesignal ausgibt; und eine Codierungseinheit (16), die so gestaltet ist, dass sie erste Zufallsdaten als Antwort auf das Trigger-Signal erzeugt, wobei die Codierungseinheit so gestaltet ist, dass sie auf Basis der ersten Zufallsdaten autonom einen Codierungsmodus aus einem Satz von Codierungsmodi auswählt, und so gestaltet ist, dass sie die Ausgangsdaten auf Basis des bestimmten Codierungsmodus codiert.
  44. Computersystem (80), aufweisend: eine Datenspeichervorrichtung (10) nach Anspruch 1; eine Host-Verarbeitungsvorrichtung (60), die so gestaltet ist, dass sie den Eingangsbefehl erzeugt, und so gestaltet ist, dass sie die codierten Daten empfängt.
  45. Computersystem (80), aufweisend: eine Datenspeichervorrichtung (10) nach Anspruch 1; einen Controller (40), der so gestaltet ist, dass er den Eingangsbefehl als Antwort auf einen Zugriffsbefehl erzeugt, und so gestaltet ist, dass er die codierten Daten empfängt; und eine Host-Verarbeitungsvorrichtung (60), die so gestaltet ist, dass sie den Zugriffsbefehl an den Controller schickt und die codierten Daten vom Controller empfängt.
  46. Datenspeichersystem (50), aufweisend: eine Datenspeichervorrichtung (10) nach Anspruch 1; und einen Controller (40), der so gestaltet ist, dass er den Eingangsbefehl erzeugt, und der so gestaltet ist, dass er die codierten Daten empfängt.
  47. Codierungseinheit (16), aufweisend: eine Codierungsbestimmungseinheit (160), die so gestaltet ist, dass sie Zufallsdaten mit einer gewünschten Verteilung erzeugt, und die so gestaltet ist, dass sie einen Codierungsmodus gemäß den Zufallsdaten bestimmt; und einen Codierer (168), der so gestaltet ist, dass er Daten auf Basis des bestimmten Codierungsmodus codiert.
DE102012103577A 2011-05-17 2012-04-24 Datenspeichervorrichtung, Kodierungseinheit, Systeme selbige umfassend und Verfahren zum Auslesen von Daten Pending DE102012103577A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20110046405 2011-05-17
KR10-2011-0046405 2011-05-17
KR1020110081308A KR101824044B1 (ko) 2011-05-17 2011-08-16 부호화 출력 기능을 구비한 데이터 저장 장치 및 시스템
KR10-2011-0081308 2011-08-16

Publications (1)

Publication Number Publication Date
DE102012103577A1 true DE102012103577A1 (de) 2012-11-22

Family

ID=47088265

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012103577A Pending DE102012103577A1 (de) 2011-05-17 2012-04-24 Datenspeichervorrichtung, Kodierungseinheit, Systeme selbige umfassend und Verfahren zum Auslesen von Daten

Country Status (6)

Country Link
US (2) US9373005B2 (de)
JP (2) JP6039237B2 (de)
KR (1) KR101824044B1 (de)
CN (2) CN107256369B (de)
DE (1) DE102012103577A1 (de)
TW (1) TWI539281B (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105468996A (zh) * 2014-09-05 2016-04-06 深圳市同盛绿色科技有限公司 计算机
JP6465732B2 (ja) * 2015-04-24 2019-02-06 リンナイ株式会社 ガス燃焼装置
KR102506838B1 (ko) * 2016-09-30 2023-03-08 에스케이하이닉스 주식회사 반도체 장치 및 그의 동작 방법
CN108076351B (zh) * 2016-11-16 2020-12-08 杭州海康威视数字技术股份有限公司 一种音视频数据编码方法、装置及电子设备
KR102513328B1 (ko) * 2016-12-08 2023-03-24 에스케이하이닉스 주식회사 반도체 장치, 반도체 시스템 및 그의 동작 방법
CN108052285B (zh) * 2017-12-12 2018-12-11 清华大学 一种自适应编码长度的时序数据存储的方法和装置
US10747891B2 (en) * 2018-06-13 2020-08-18 EMC IP Holding Company LLC Floating data protection
CN109032619B (zh) * 2018-07-13 2021-12-24 上海艾为电子技术股份有限公司 确定熔丝烧录编码的方法及装置
TWI773442B (zh) * 2021-07-20 2022-08-01 宇瞻科技股份有限公司 儲存裝置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110046405A (ko) 2008-05-30 2011-05-04 히타치 어플라이언스 가부시키가이샤 냉장고
KR20110081308A (ko) 2008-10-27 2011-07-13 쌩-고벵 글래스 프랑스 차량용 발광 다이오드 모듈 및 다이오드 장착

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11328034A (ja) * 1998-05-11 1999-11-30 Mega Chips Corp 半導体メモリおよびゲーム装置
US6598166B1 (en) * 1999-08-18 2003-07-22 Sun Microsystems, Inc. Microprocessor in which logic changes during execution
JP2001156772A (ja) * 1999-11-30 2001-06-08 Victor Co Of Japan Ltd 暗号化情報再生方法及び暗号化情報再生装置
EP1130600A1 (de) 2000-03-01 2001-09-05 Hewlett-Packard Company, A Delaware Corporation Datenverteilungsabbildung für Festkörperspeicher
CN1592877B (zh) * 2001-09-28 2010-05-26 高密度装置公司 用于对大容量存储设备上数据加密/解密的方法和装置
US20030226029A1 (en) * 2002-05-29 2003-12-04 Porter Allen J.C. System for protecting security registers and method thereof
JP2004070049A (ja) * 2002-08-07 2004-03-04 Denso Corp データの暗号化方法及び装置、データの復号化方法及び装置、プログラム
EP1758395A1 (de) * 2004-06-28 2007-02-28 Matsushita Electric Industrial Co., Ltd. Programmerstellungsanordnung, programmtestanordnung, programmausführunsanordnung, informationverarbeitungsystem
JP4119881B2 (ja) * 2004-11-15 2008-07-16 株式会社メガチップス 半導体メモリ装置
US7770027B2 (en) 2004-11-15 2010-08-03 Nintendo Co., Ltd. Semiconductor memory device
JP2007172508A (ja) * 2005-12-26 2007-07-05 Sony Corp 着脱式記憶装置及び認証方法
JP5030132B2 (ja) * 2006-01-17 2012-09-19 任天堂株式会社 ゲームプログラムおよびゲーム装置
EP2037694B1 (de) * 2006-06-19 2014-01-15 NTT DoCoMo, Inc. Basisstation und ablaufplanungsverfahren
CN101247506A (zh) * 2007-02-14 2008-08-20 中国科学院声学研究所 在数字媒体播放系统中的文件加密方法及加密文件结构
WO2009075180A1 (ja) * 2007-12-11 2009-06-18 Nec Corporation 認証装置、認証システム、認証方法及びプログラム
JP5045956B2 (ja) * 2009-04-16 2012-10-10 Necシステムテクノロジー株式会社 スクランブル装置、スクランブル方法及びプログラム
CN101882995B (zh) * 2009-05-06 2013-08-07 中兴通讯股份有限公司 数据发送、接收和传输方法及装置
US9026803B2 (en) * 2009-11-30 2015-05-05 Hewlett-Packard Development Company, L.P. Computing entities, platforms and methods operable to perform operations selectively using different cryptographic algorithms
CN101984574B (zh) * 2010-11-29 2012-09-05 北京卓微天成科技咨询有限公司 一种数据加解密方法及装置
JP2012227899A (ja) * 2011-04-22 2012-11-15 Toshiba Corp 認証コンポーネント、被認証コンポーネントおよびその認証方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110046405A (ko) 2008-05-30 2011-05-04 히타치 어플라이언스 가부시키가이샤 냉장고
KR20110081308A (ko) 2008-10-27 2011-07-13 쌩-고벵 글래스 프랑스 차량용 발광 다이오드 모듈 및 다이오드 장착

Also Published As

Publication number Publication date
CN102789560A (zh) 2012-11-21
JP6039237B2 (ja) 2016-12-07
TWI539281B (zh) 2016-06-21
JP6431022B2 (ja) 2018-11-28
KR20120128530A (ko) 2012-11-27
JP2017041908A (ja) 2017-02-23
JP2012243320A (ja) 2012-12-10
CN107256369A (zh) 2017-10-17
US9373005B2 (en) 2016-06-21
TW201248407A (en) 2012-12-01
CN107256369B (zh) 2021-06-01
US20170017582A1 (en) 2017-01-19
US20120297150A1 (en) 2012-11-22
KR101824044B1 (ko) 2018-01-31
CN102789560B (zh) 2017-07-21
US10133680B2 (en) 2018-11-20

Similar Documents

Publication Publication Date Title
DE102012103577A1 (de) Datenspeichervorrichtung, Kodierungseinheit, Systeme selbige umfassend und Verfahren zum Auslesen von Daten
DE69932962T2 (de) Kodierungsverfahren und Speicheranordnung
DE102013222321B4 (de) Elektronisches Gerät mit einer Vielzahl von Speicherzellen und mit physikalisch unklonbarer Funktion
DE102011056776A1 (de) Flashspeichervorrichtung und Speichersystem mit derselben
DE112007003080B4 (de) Verfahren und Vorrichtung für den ECC-Schutz von kleinen Datenstrukturen
DE102008003113B4 (de) ECC-Steuereinheit, Speichersystem und Verfahren zur Korrektur eines Fehlers
DE102011085988B4 (de) Verfahren und Vorrichtungen zum Beeinflussen eines Betriebszustands eines Mehrfachpegelzelle-Speichers
DE102013020712B4 (de) Techniken zum Speichern von Bits in Speicherzellen mit Hängenbleiben-auf-0-oder-1-Fehlern
DE102005028221B4 (de) Vorrichtung und Verfahren zum Schutz der Integrität von Daten
DE102012111793A1 (de) Speichervorrichtung zum Schützen von sicheren Daten und Verfahren zum Authentifizieren einer Speichervorrichtung unter Verwendung von sicheren Daten
DE112012006014B4 (de) Verteilte Codewortteile
DE102015201384A1 (de) Vorrichtung und Verfahren zum Verbessern der Datenspeicherung durch Dateninvertierung
DE102015113414B4 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE102011056563A1 (de) Datenkompressionsvorrichtungen, Betriebsverfahren dafür und Datenverarbeitungsgeräte einschließlich derselben
DE102013103391A1 (de) Betriebsverfahren eines Controllers, der eine nichtflüchtige Speichervorrichtung steuert, und Mappingmuster-Auswahlverfahren zum Auswählen eines Mappingmusters, das ein polar codiertes Codewort Multibitdaten einer nichtflüchtigen Speichervorrichtung zuordnet
DE112014005810B4 (de) anagement der Datenspeicherung in analogen Speicherzellen unter Verwendung einer nicht ganzzahligen Anzahl von Bits pro Zelle
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE112019005812T5 (de) Nichtflüchtiger speicherchip und speichersteuerung mit datenerweiterungskomponenten zur verwendung beim maschinellen lernen
DE102004003353A1 (de) Verfahren und System zum Minimieren der Länge einer Defektliste für eine Speichervorrichtung
DE102018105434A1 (de) Verfahren und System zum Abtasten von gelöschten Flashspeicherseiten mit Querverweis auf verwandte Anwendungen
DE102008003267A1 (de) Hybridflashspeicherbauelement, Speichersystem und Verfahren zum Steuern von Fehlern in einem Hybridflashspeicherbauelement
DE102013111549A1 (de) Kodierung von Programmdaten basierend auf in zu programmierenden Speicherzellen gespeicherten Daten
DE112017003906T5 (de) Vorrichtung und Verfahren für eine Ausdauer-freundliche Programmierung unter Verwendung niedrigerer Spannungsschwellen
DE102018105277A1 (de) Auf Hamming-Abstand basierende Binärdarstellungen von Zahlen
DE112015004531T5 (de) Latch-Initialisierung für eine Datenspeichervorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed