DE60017870T2 - Eine halbleiterspeicherkarte-zugangsanordnung, ein rechnerlesbares aufzeichnungsmedium, initialisierungsverfahren,und eine halbleiterspeicherkarte - Google Patents

Eine halbleiterspeicherkarte-zugangsanordnung, ein rechnerlesbares aufzeichnungsmedium, initialisierungsverfahren,und eine halbleiterspeicherkarte Download PDF

Info

Publication number
DE60017870T2
DE60017870T2 DE60017870T DE60017870T DE60017870T2 DE 60017870 T2 DE60017870 T2 DE 60017870T2 DE 60017870 T DE60017870 T DE 60017870T DE 60017870 T DE60017870 T DE 60017870T DE 60017870 T2 DE60017870 T2 DE 60017870T2
Authority
DE
Germany
Prior art keywords
area
sectors
file
clusters
partition
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.)
Expired - Lifetime
Application number
DE60017870T
Other languages
English (en)
Other versions
DE60017870D1 (de
Inventor
Takuji Maeda
Teruto Hirota
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE60017870D1 publication Critical patent/DE60017870D1/de
Application granted granted Critical
Publication of DE60017870T2 publication Critical patent/DE60017870T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance 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/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Storage Device Security (AREA)
  • Read Only Memory (AREA)

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft eine Zugriffsvorrichtung zum Zugreifen auf eine Halbleiter-Speicherkarte mit einem internen, nicht flüchtigen Speicher, z.B. einem EEPROM (elektrisch löschbarer, programmierbarer Nurlese-Speicher), ein computerlesbares Aufzeichnungsmedium zur Aufzeichnung eines Initialisierungsprogramms für eine Halbleiter-Speicherkarte, ein Initialisierungsverfahren sowie eine Halbleiter-Speicherkarte und insbesondere eine Verbesserung zum Erhöhen der Effizienz, mit der Daten in dem nicht flüchtigen Speicher umgeschrieben werden können.
  • Hintergrund-Technik
  • Halbleiter-Speicherkarten besitzen den Vorteil, klein und leicht zu sein, und sind auf dem besten Wege, ihre Position als das bevorzugte Aufzeichnungsmedium in einer breiten Vielfalt von technischen Gebieten zu festigen. Eine Halbleiter-Speicherkarte verfügt über einen eingebauten, nicht flüchtigen Speicher, bekannt als EEPROM, auf den durch eine verbundene Vorrichtung zugegriffen werden kann, um der Halbleiter-Speicherkarte zu ermöglichen, als ein Aufzeichnungsmedium verwendet zu werden. Daten können direkt in leere Sektoren des EEPROM in der gleichen Weise wie für magnetische oder optische Patten geschrieben werden. Wenn EEPROM-Sektoren jedoch bereits Daten enthalten, müssen diese Daten gelöscht werden, um die Sektoren wieder in den leeren Zustand zu bringen, bevor neue Daten in die Sektoren geschrieben werden können. Bei dem als NAND (Not And) bekannten Typ von EEPROM, der in vielen Halbleiter-Speicherkarten Verwendung findet, muss der Vorgang zum Zurückbringen von Sektoren in einen leeren Zustand auf 32 Sektoren zu einer Zeit ausgeführt werden (in diesem nicht flüchtigen Speicher ist eine Gruppe von 32 Sektoren als ein löschbarer Block bekannt). Die Halbleiter-Speicherkarte enthält folglich eine spezialisierte, interne Steuerschaltung, um die Speicherverwaltung unter Verwendung löschbarer Blöcke als Zugriffseinheiten zu verwirklichen. Die Zustandssteuerung von löschbaren Blöcken sowie das Lesen und Schreiben von Daten aus löschbaren Blöcken bzw. in dieselben werden von dieser Steuerschaltung verwaltet.
  • Dies bedeutet, dass die Halbleiter-Speicherkarte eine einmalige Hardware-Struktur (physikalische Schicht) aufweist, die völlig anders ist als die, die in magnetischen und optischen Platten verwendet wird. Ein in 1A gezeigtes Schichtmodell besteht jedoch aus einer physikalischen, einer Dateisystem- und einer Anwendungsschicht, genauso wie in einer magneti schen oder optischen Platte. 1B zeigt ein detailliertes Layout der physikalischen Schicht. In der Zeichnung enthält die physikalische Schicht einen Datenträgerbereich, in dem eine Vielzahl von löschbaren Blöcken angeordnet ist. Jeder löschbare Block ist aus 32 Sektoren gebildet und besitzt eine Datenlänge von 16 KB. Das in 1C gezeigte Layout der Dateisystemschicht ist das, was allgemein als ein FAT-(Dateizuordnungstabelle) Dateisystem bekannt ist. In einem FAT-Dateisystem wird die Verwaltung des Datenträgerbereichs in Einheiten, bekannt als Cluster, durchgeführt. Datenträger-Verwaltungsinformation ist am Anfang des Datenträgerbereichs angeordnet, und ein Benutzerbereich zum Aufzeichnen von Benutzerdaten ist direkt anschließend an die Datenträger-Verwaltungsinformation angeordnet. Die Datenträger Verwaltungsinformation umfasst eine Haupt-Boot-Partition, eine Partitionstabelle, einen Partitions-Boot-Sektor, eine duplizierte Dateizuordnungstabelle (FAT) und einen Hauptverzeichniseintrag. Die duplizierte FAT zeigt Links zwischen der Vielzahl in dem Datenträgerbereich enthaltener Cluster. Das Bereitstellen dieser Art von Dateisystemschicht ermöglicht es, Daten in der Anwendungsschicht in einer aus Verzeichnissen und Dateien gebildeten hierarchischen Struktur zu speichern. Durch Installieren eines Schichtmodells kann die Zugriffsvorrichtung auf eine Halbleiter-Speicherkarte mit der gleichen Prozedur zugreifen, die verwendet wird, um auf ein Aufzeichnungsmedium, wie z.B. eine magnetische oder optische Platte, zuzugreifen, ohne auf Unterschiede in der physikalischen Schicht zu achten.
  • Ein Benutzer hat jedoch viele Möglichkeiten, die Datengröße des Datenträgerbereichs zu bestimmen, wenn Daten in dem Datenträgerbereich des Dateisystems gespeichert werden. Wenn die Grüße des Datenträgerbereichs als Reaktion auf eine Benutzeranforderung geändert wird, nimmt die Zahl in dem Datenträgerbereich enthaltener Cluster folglich zu oder ab. Wenn die Zahl von Clustern erhöht oder verringert wird, nimmt demnach auch die FAT, die aus diesen Clustern entsprechenden Einträgen besteht, zu oder ab, ebenso die Größe der Datenträger Verwaltungsinformation, in der die FAT enthalten ist. Wenn die Größe der Datenträger-Verwaltungsinformation erhöht oder verringert wird, wird eine Startadresse des Benutzerbereichs, der der Datenträger Verwaltungsinformation folgt, ebenfalls geändert werden. Die Startadresse des Benutzerbereichs ändert sich entsprechend der Größe des Datenträgerbereichs. Folglich ändern sich die Startadressen jedes Clusters ebenfalls entsprechend der Größe des Benutzerbereichs.
  • Wenn sich die Startadresse jedes Clusters entsprechend der Größe des Benutzerbereichs ändert, können Cluster die Grenzen zwischen zwei löschbaren Blöcken ausdehnen, und der Endabschnitt der Datenträger-Verwaltungsinformation kann in dem gleichen löschbaren Block wie ein am Anfang des Benutzerbereichs gelegener Cluster angeordnet werden. 1D zeigt das Layout des Datenträgerbereichs, wenn der Endabschnitt der Datenträger-Ver waltungsinformation und der am Anfang des Benutzerbereichs gelegene Cluster sich in dem gleichen löschbaren Block befinden. Wenn Cluster wie in der Zeichnung gezeigt angeordnet sind und ein Benutzer in einem bestimmten Cluster gespeicherte Daten zu modifizieren wünscht, müssen die zwei löschbaren Blöcke, in denen der Cluster angeordnet ist, gelesen und dann in einen leeren Zustand zurückgebracht werden. Ein nicht flüchtiger Speicher ist jedoch aus einer Speicherkomponente gebildet, die ein in einer isolierenden Schicht vergrabenes, schwebendes Gate enthält. Diese Speicherkomponente kann nur ein paar zehntausend Male gelöscht werden, sodass, wenn das Phänomen, bei dem zwei löschbare Blöcke gelöscht werden müssen, um einen Cluster zu modifizieren, häufig auftritt, die Lebensdauer des nicht flüchtigen Speichers merklich verringert werden wird.
  • Allgemein gesprochen, wenn 32 Sektoren als ein Cluster verwaltet werden, kann das Schreiben von Daten in einen Cluster in 32 × 200 μs vollendet werden (200 μs ist die zum Schreiben jedes Sektors benötigte Zeit), vorausgesetzt, dass das Schreibziel bereits gelöscht wurde. Wenn jedoch das Schreibziel gelöscht werden muss, bevor Daten geschrieben werden können, wird eine 2 ms Löschperiode hinzugefügt. Wenn der Cluster die Grenze zwischen zwei löschbaren Blöcken ausdehnt, müssen beide Blöcke gelöscht werden, und das Löschen des Schreibziels braucht 4 ms. Als Folge wird die zum Schreiben von Daten benötigte Zeit merklich verlängert.
  • WO 99/27453 A beschreibt eine Technik zum Organisieren der Speicherstellen in einem nicht flüchtigen Speicher in Blöcke, durch Trennen der Datenträger-Verwaltungsinformation von der Benutzerinformation. Die Startadresse der Benutzerdaten wird in eine Grenze zwischen Blöcken umgewandelt. Ein Offset wird auf der Basis der Endadresse des Hauptverzeichniseintrags bestimmt, sodass die Startadresse der Benutzerdaten in die Grenze zwischen zwei Blöcken umgewandelt wird. Wenn ein Umschreibfehler in der Dateizuordnungstabelle und/oder dem Hauptverzeichniseintrag auftritt, wird der Block, der einen solchen Fehler enthält, als ein Block mit dem Ergebnis erkannt, dass die Halbleiter-Speicherkarte nicht mehr verarbeitet werden kann.
  • Die Erfindung wird in den unabhängigen Ansprüchen 1, 11, 19 und 20 dargelegt. Bevorzugte Ausführungen werden in den abhängigen Ansprüchen dargelegt.
  • Offenbarung der Erfindung
  • Eine Aufgabe der vorliegenden Erfindung besteht darin, eine Zugriffsvorrichtung bereitzustellen, um die zum Modifizieren löschbarer Blöcke benötigte Zeit zu verringern, und ein Daten speicherformat in einer Halbleiter-Speicherkarte zu bilden, das es ermöglicht, einen nicht flüchtigen Speicher mit einer längeren Lebensdauer zu verwirklichen.
  • Der als eine 'Secure Digital' – (SD) Speicherkarte bekannte Typ von Halbleiter-Speicherkarte hat große Schritte in Richtung auf die Lösung der vorerwähntwen Probleme des Verringerns der Verarbeitungszeit und Langlebigkeit des nicht flüchtigen Speichers aus den folgenden Gründen gemacht. In einer SD-Speicherkarte wird ein als der geschützte Bereich bekannter Bereich bereitgestellt, der von dem gewöhnlichen Benutzer nicht verwendet werden kann. Dieser geschützte Bereich wird benutzt, um geheime Information zu speichern, z.B. ein zum Verschlüsseln von Daten verwendeter Verschlüsselungsschlüssel, Abrechungsinformation, die benutzt wird, um einem Benutzer eine Rechnung zu stellen, wenn ein urheberrechtsgeschütztes Material reproduziert wird, und dergleichen. Die Menge an Daten, die geheim zu hatten ist, variiert entsprechend dem Typ des benutzten Anwendungsprogramms, sodass sich die Größe des geschützten Bereichs entsprechend dem Typ von Anwendungsprogramm ändern muss. Wenn die Größe des geschützten Bereichs geändert wird, bedeutet dies, dass sich das Layout des Datenträgerbereichs als Reaktion auf den Typ von Anwendungsprogramm ebenfalls ändert. Wenn sich das Layout des Datenträgerbereichs in dieser Weise ändert, wird oft ein Layout erzeugt, in dem Cluster die Grenzen zwischen löschbaren Blöcken ausdehnen, sodass das Erfüllen der vorerwähnten Aufgabe besonders wünschenswert ist. Um diese Aufgabe zu erfüllen, kann die Halbleiter-Speicherkarten-Zugriffsvorrichtung die folgende Struktur aufweisen. Die Zugriffsvorrichtung führt den Dateizugriff auf eine Halbleiter-Speicherkarte durch, die einen Speicherbereich mit einer Vielzahl von Sektoren besitzt, durch Verwalten von Daten in jeder Gruppe von 2j Sektoren (j ist 0 oder eine positive Ganzzahl) als ein Cluster und Verwalten von einem oder mehr Clustern als eine Datei. Jede Gruppe von 2i aufeinanderfolgenden Sektoren in dem Speicherbereich bildet hier einen Block (i ist 0 oder eine positive Ganzzahl), der die kleinste Einheit ist, auf der eine Datenlöschung durchgeführt werden kann. Die Zugriffsvorrichtung enthält eine Berechnungseinheit, eine Reservierungseinheit und eine Aufzeichnungseinheit. Die Berechnungseinheit berechnet eine Größe von Datenträger-Verwaltungsinformation basierend auf einer Zahl von Clustern in dem Speicherbereich, der zu verwalten ist. Die Datenträger-Verwaltungsinformation enthält hier eine Dateizuordnungstabelle, die für jede Datei Links zwischen Clustern, die der Datei entsprechen, angibt. Die Reservierungseinheit reserviert einen ersten Bereich zum Aufzeichnen der Datenträger-Verwaltungsinformation und einen zweiten Bereich zum Aufzeichnen von Benutzerdaten. Der erste Bereich besitzt eine Datengröße größer als die berechnete Datenträger-Verwaltungsinformation und besteht aus m × 2j Sektoren (m ist eine positive Ganzzahl), während der zweite Bereich aus Sektoren besteht, die dem ersten Bereich folgen. Die Aufzeichnungseinheit zeichnet Datenträgerinformation in dem ersten Be reich und Benutzerdaten in dem zweiten Bereich auf und verwaltet die Datenträger-Verwaltungsinformation und die Benutzerdaten als Cluster. In dieser Zugriffsvorrichtung wird ein Bereich im Datenträgerbereich mit m Clustern (m ist eine positive Ganzzahl) zum Aufzeichnen von Datenträger Verwaltungsinformation reserviert, sodass keine Möglichkeit besteht, dass ein Cluster gespeichert wird, der zwei löschbare Blöcke ausdehnt. Cluster-Grenzen können mit löschbaren Blöcken abgeglichen werden, und die Grenzen der Datenträger-Verwaltungsinformation können mit Grenzen löschbarer Blöcke abgeglichen werden. Folglich muss nur ein löschbarer Block gelöscht werden, wenn ein Cluster umgeschrieben oder überschrieben wird, und die Zahl von Malen, die löschbare Blöcke gelöscht werden müssen, kann verringert werden. Wenn die Zahl von Blocklöschungen verringert wird, kann die Halbleiter-Speicherkarte Daten in einer kürzeren Zeit schreiben, und die Lebensdauer des nicht flüchtigen Speichers selbst kann erhöht werden.
  • Die Datenträger-Verwaltungsinformation enthält hier zusätzlich zu der Dateizuordnungstabelle einen Haupt-Boot-Datensatz, eine Partitionstabelle, Partitions-Boot-Sektorinformation und einen Hauptverzeichniseintrag. Des Werteren zeichnet die Aufzeichnungseinheit den Haupt-Boot-Datensatz und die Partitionstabelle in einem ersten Sektor des ersten Bereichs auf, überspringt eine vorbestimmet Zahl von Sektoren und zeichnet dann die Partitions-Boot-Sektorinformation, die Dateizuordnungstabelle und den Hauptverzeichniseintrag in nachfolgenden Sektoren auf. Als Folge kann ein Ende des ersten Bereichs mit einem Ende des Hauptverzeichniseintrags abgeglichen werden. Die Zahl von Sektoren zwischen dem Haupt-Boot-Datensatz, der den Anfang des Laufwerks angibt, und dem Partition-Boot-Sektor, der den Anfang des Partitionbereichs angibt, kann justiert werden, sodass die Datenträger-Verwaltungsinformation auf einen erste aus m Clustern bestehenden Bereich beschränkt werden kann, und Verträglichkeit mit Vorrichtungen, die eine FAT-Datei verwenden, wird bewahrt.
  • Die Berechnungseinheit kann hier eine Summe SUM berechnen, indem eine Zahl von Sektoren aufsummiert wird, die benutzt wird, um die Partions-Boot-Sektorinformatin, die Dateizuordnungstabelle und den Hauptverzeichniseintrag aufzuzeichnen. Die Reservierungseinheit reserviert den ersten Bereich durch Berechnen des Wertes m basierend auf einer (Gleichung 1) NOM+SUM = 2j × m. NOM ist hier eine Anzahl von Sektoren. Die Aufzeichnungseinheit berechnet eine vorbestimmte Zahl von Sektoren durch Subtrahieren von 1 von der Zahl von Sektoren NOM. Selbst wenn sich die Größe der Dateizuordnungstabelle ändert, wird ein erster Bereich reserviert, der größer ist als die Größe der Datenträger-Verwaltungsinformation und ein ganzes Vielfaches der Größe löschbarer Blöcke ist. Als Folge kann eine erforderliche Mindestgröße für den ersten Bereich reserviert werden, gleichgültig wie die Größe der Dateizurodnungstabelle berechnet wird.
  • Die Aufzeichnungseinheit kann hier die vorbestimmte Zahl von Sektoren in der Partitionstabelle zum Aufzeichnen der Datenträger-Verwaltungsinformation festlegen. Bei dieser Struktur wird, selbst wenn sich die Größe des ersten Bereichs ändert, was bewirkt, dass sich die Startadresse des zweiten Bereichs ändert, eine Zahl von Sektoren, die durch Subtrahieren von 1 von der Zahl von Sektoren NOM erhalten wird, in die Partitionstabelle gestellt, sodass die Zugriffsvorrichtung auf den Benutzerbereich durch Bezugnahme auf die Partitionstabelle genau zugreifen kann.
  • Kurzbeschreibung der Zeichnungen
  • 1A zeigt ein Layout-Modell, das aus einer physikalischen Schicht, einer mit ISO/IEC92-93 kompatiblen Dateisystemschicht und einer Anwendungsschicht besteht.
  • 1B und 1C zeigen das Format der physikalischen Schicht und der Dateisystemschicht.
  • 1D zeigt ein Layout des Datenträgerbereichs, wenn ein Endabschnitt der Datenträger-Verwaltungsinformation und ein am Anfang des Benutzerbereichs gelegener Cluster in dem gleichen löschbaren Block angeordnet sind.
  • 2A ist eine Außenansicht einer Halbleiter-Speicherkarte.
  • 2B und 2C sind Außenansichten von Zugriffsvorrichtungen.
  • 3A zeigt eine innere Struktur einer Halbleiter-Speicherkarte und einer Zugriffsvorrichtung.
  • 3B zeigt ein Schichtmodell für von der Zugriffsvorrichtung verwendete Software.
  • 4 zeigt ein mit dem ISO/IEC9292 Standard kompatibles Datenfromat, das durch einen nicht flüchtigen Speicher 1 verwendet wird.
  • 5 zeigt eine Struktur eines Partitionssteuerbereiches, eines Systembereiches und eines in dem Datenträgerbereich enthaltenen Benutzerbereiches.
  • 6A veranschaulicht eine Struktur eines Haupt-Boot-Datensatzes und eines Partitionstabelleneintrags.
  • 6B zeigt eine Struktur eines Partitions-Boot-Sektors.
  • 7A zeigt eine Struktur einer duplizierten FAT.
  • 7B zeigt eine Struktur eines Hauptverzeichniseintrags.
  • 7C zeigt eine Struktur des Benutzerbereiches.
  • 8 zeigt ein Beispiel eines Dateispeicherverfahrens.
  • 9 zeigt ein Beispiel von Einstellungen für den Hauptverzeichniseintrag und die FAT, wenn eine Datei AOB001.SA1 in einer Vielzahl von Clustern gespeichert wird.
  • 10A zeigt die Beziehung zwischen löschbaren Blöcken und Clustern.
  • 10B zeigt Cluster, wenn n=1.
  • 10C zeigt Cluster, wenn n=16.
  • 11A betrachtet eine Situation, wenn m Cluster aus s löschbaren Blöcken zum Aufzeichnen von Datenträger-Verwaltungsinformation zugeteilt werden.
  • 11B zeigt die Zahl von zum Aufzeichnen von Datenträger Verwaltungsinformation zugeteilten Clustern, wenn n=1.
  • 11C zeigt die Zahl von zum Aufzeichnen von Datenträger-Verwaltungsinformation zugeteilten Clustern, wenn n=16.
  • 12 ist eine Zeichnung, die erhalten wird, indem der Partitionssteuerbereich, der Systembereich und die Cluster mit einer durch Gleichungen 11 und 12 berechneten Größe konstruiert werden.
  • 13 ist ein Flussdiagramm, das eine Initialisierungsprozedur für den Datenträgerbereich zeigt.
  • 14 zeigt eine Struktur einer Zugriffsvorrichtung und einer Halbleiter-Speicherkarte in einer zweiten Ausführung.
  • 15 zeigt eine innere Struktur einer sicheren Verarbeitungseinheit 11.
  • 16 zeigt eine detaillierte Struktur eines mit einem geschützten Bereich versehenen Datenträgerbereiches.
  • 17 zeigt ein Beispiel-Layout für den Benutzerdatenbereich.
  • 18 zeigt ein Beispiel für den geschützten Bereich.
  • 19 zeigt eine innere Struktur einer Zugriffssteuereinheit 2 in einer dritten Ausführung.
  • 20A bis 20D zeigen eine Verarbeitungssequenz, die durchgeführt wird, wenn ein Löschbarer Block umgeschrieben wird.
  • 21 zeigt eine innere Struktur einer Dateisystem-Betriebseinheit 9 in der dritten Ausführung.
  • 22 ist ein Flussdiagramm, das die detaillierte Verarbeitung zeigt, die von der Dateisystem-Betriebseinheit 9 in der dritten Ausführung durchgeführt wird.
  • 23A und 23B zeigen einen auf einem löschbaren Block in der dritten Ausführung durchgeführten Löschprozess.
  • 24 zeigt eine innere Struktur einer Zugriffssteuereinheit 2 in einer vierten Ausführung.
  • 25 ist ein Flussdiagramm, das die detaillierte Verarbeitung zeigt, die von der Dateisystem-Betriebseinheit 9 in der vierten Ausführung durchgeführt wird.
  • 26A und 26B zeigen einen auf einem löschbaren Block in der vierten Ausführung durchgeführten Löschprozess.
  • 27A und 27B zeigen die Beziehung von Ursache und Wirkung zwischen Fragmentierung und Overheads, wenn ein Befehl ausgegeben wird.
  • 28 ist ein Flussdiagramm, das eine detaillierte Verarbeitungssequenz zur Fragmentierungsbeseitigungsverarbeitung zeigt, die auf einer logischen Adresse durchgeführt wird.
  • 29A bis 29D zeigen Modelle, die für jede der im Flussdiagramm von 28 gezeigten Variablen s, t, u, v, und y ins Auge gefasst werden.
  • 30A bis 30C zeigen, wie Fragmentierung in einer fünften Ausführung beseitigt wird.
  • 31 zeigt ein neues erweitertes Attribut, das mit einem erweiterten Implementierungs-Gebrauchsattribut in UDF spezifiziert wird.
  • 32 zeigt eine innere Struktur einer mit einem Sicherungsbereich versehenen Halbleiter-Speicherkarte.
  • 33 zeigt eine innere Struktur einer Halbleiter-Speicherkarte in einer sechsten Ausfüh rung.
  • 34A bis 34C zeigen den Inhalt einer Verarbeitung, die in einer Dateisystem-Betriebseinheit 9 in einer siebten Ausführung durchgeführt wird.
  • Beste Weise zur Durchführung der Erfindung
  • Das Folgende ist eine Beschreibung von Ausführungen einer Halbleiter-Speicherkarte und eines Systems, das eine Halbleiter-Speicherkarte und eine Zugriffsvorrichtung enthält, mit Verweis auf die Zeichnungen.
  • 2A zeigt eine Außenansicht einer Halbleiter-Speicherkate 100, und 2B und 2C zeigen Außenansichten von Zugriffsvorrichtungen. 3A zeigt eine innere Struktur der Halbleiter-Speicherkarte 100 und einer Zugriffsvorrichtung 200.
  • Die Halbleiter-Speicherkarte 100 besitzt die äußere Struktur von 2A, ist 32.0 mm lang, 24.0 mm breit und 2.1 mm dick; etwa die Größe einer Briefmarke und klein genug, um von einem Benutzer auf der Spitze eines Fingers gehalten zu werden. Die Halbleiter-Speicherkarte 100 besitzt neun Stecker zum Verbinden mit einer Zugriffsvorrichtung 200 und einen Schreibschutzschalter 101 auf einer Seite, der von dem Benutzer eingestellt werden kann, um das Überschreiben aufgezeichneter Daten zu erlauben oder zu verbieten. Wie im unteren Teil von 3A gezeigt, enthält die Halbleiter-Speicherkarte 100 einen aus einem NANDEEPROM gebildeten, nicht flüchtigen Speicher 1, eine Zugriffssteuereinheit 2 und einen Arbeitsspeicher 3. Die Zugriffsteuereinheit 2 schreibt Daten in den nicht flüchtigen Speicher 1, liest Daten aus dem nicht flüchtigen Speicher 1 und löscht Daten entsprechend Befehlen, die von der Zugriffsvorrichtung 200 ausgegeben werden. Der Arbeitsspeicher 3 wird zur vorübergehenden Datenspeicherung verwendet, wenn aus dem nicht flüchtigen Speicher gelesene Daten umgeschrieben oder in den nicht flüchtigen Speicher zurückgeschrieben werden.
  • Als Nächstes wird eine Zugriffsvorrichtung 200, z.B. ein in 2B gezeigtes Heimtonsystem oder eine Informationsverarbeitungsvorrichtung, z.B. ein 2C gezeigter Personal Computer, beschrieben. Eine solche Zugriffsvorrichtung 200 enthält einen Kartenstecker 4, einen Sekundärspeicher 5, eine CPU 6 und einen Primärspeicher 7. Der Kartenstecker 4 wird benutzt, um die Halbleiter-Speicherkarte 100 anzuschließen. Der Sekundärspeicher 5 speichert verschiedene Arten von Software zum Zugreifen auf die Halbleiter-Speicherkarte 100. Die CPU 6 führt die gesamte Steuerung der Zugriffsvorrichtung 200 durch. Der Primärspeicher 7 wird zur Zwischenspeicherung der FAT und des Hauptverzeichniseintrags verwendet, wenn auf die Halbleiter-Speicherkarte zugegriffen wird. 3B zeigt ein Layout-Modell für in der Zugriffsvorrichtung 200 benutzte Software. In der Zeichnung umfasst die Software der Zugriffsvorrichtung ein Anwendungsprogramm 8, eine Dateisystem-Betriebseinheit 9 und einen Vorrichtungstreiber 10. Das Anwendungsprogramm 8 führt eine vorbestimmte Verarbeitung, z.B. Audio- und Video-Wiedergabe, für die Zugriffsvorrichtung 200 durch. Die Dateisystem-Betriebseinheit 9 führt Dateilese-, Schreib-, Lösch- und Modifizierungs- (Umschreibungs) Operationen auf dem Dateisystem entspechend Anweisungen von dem Anwendungsprogramm 8 aus. Der Vorrichtungstreiber 10 führt Operationen auf dem Dateissystem durch, indem er Lese- und Schreibbefehle an die Halbleiter-Speicherkarte 100 ausgibt.
  • Das Folgende ist eine Erklärung eines Beispieldatenspeicherformats für den nicht flüchtigen Speicher 1. Der nicht flüchtige Speicher 1 speichert Daten unter Verwendung des in 4 gezeigten Formats. In der Zeichnung wird der ganze nicht flüchtige Speicher 1 als der Datenträgerbereich bezeichnet. Der Datenträgerbereich wird als in eine Vielzahl von Clustern geteilt verwaltet und enthält einen Partitionssteuerbereich und eine Partition (auch als regulärer Bereich bekannt). Die Partition ist in einen Systembereich und einen Benutzerbereich geteilt, wie auf der rechten Seite von 4 gezeigt.
  • Eine Startadresse des Benutzerbereichs folgt direkt nach dem Systembereich. Die Größe der duplizierten FAT in dem Systembereich ändert sich jedoch entsprechend der Größe des Benutzerbereichs, sodass sich folglich die Startadresse des Benutzerbereichs ändert, wie in dem Abschnitt Hintergrund-Technik erklärt wurde. Jeder Sektor im Datenträgerbereich wird durch eine physikalische Adresse relativ zu dem Anfang des Datenträgerbereichs angegeben.
  • Als Nächstes werden die im Datenträgerbereich enthaltenen Bereiche beschrieben. 5 zeigt eine Struktur für den Partitionssteuerbereich, den Systembereich und den im Datenträgerbereich enthaltenen Benutzerbereich.
  • Der Partitionssteuerbereich enthält einen Haupt-Boot-Datensatz & Partitionstabellensektor und reserviert Information 112 und 212. 6A zeigt eine detaillierte Struktur des Haupt-Boot-Datensatz & Partitionstabellensektors. In der Zeichnung ist der Inhalt des Haupt-Boot-Datensatz & Partitionstabellensektors hierarchisch zwischen einem Paar von Pfeilen ky1 gezeigt. Der Haupt-Boot-Datensatz & Partitionstabellensektor enthält einen Haupt-Boot-Datensatz, vier Partitionstabellen 1, 2, 3 und 4 und ein Signaturwort.
  • Der Haupt-Boot-Datensatz ist ein Zeichen, das der Zugriffsvorrichtung 200 anzeigt, dass ein nachfolgender Bereich physikalisch ein Medium ist (ein physikalisches Medium). In 6A besitzt der Datenträgerbereich nur einen Haupt-Boot-Datensatz, sodass der Datenträgerbereich durch die Zugriffsvorrichtung 200 als ein physikalisches Medium erkannt wird. Wenn zwei Haupt-Boot-Datensätze in dem Datenträgerbereich angeordnet sind, werden generell zwei physikalische Medien von der Zugriffsvorrichtung 200 erkannt.
  • Die Partitionstabelle ist eine Tabelle, die Partitionsinformation aufzeichnet. Wenn, wie durch die Pfeile ky2 gezeigt, die Halbleiter-Speicherkarte 100 als ein Starter-Laufwerk benutzt wird, enthält die Partitionstabelle die folgenden Felder: 'Bootanzeiger', 'Anfangskopf, 'Anfangssektor/Anfangszylinder', 'System-ID', 'Endesektor/Endezylinder', 'relativer Sektor und 'gesamt Sektor. Das Feld 'Bootanzeiger' wird auf '0×80' gesetzt. Das Feld 'Anfangskopf' spezifiziert den Anfangskopf einer Partition. Das Feld 'Anfangssektor/Anfangszylinder spezifiziert den Anfangssektor und Anfangszylinder der Partition. Die 'System-ID' spezifiziert einen Dateisystemtyp, die auf '01' gesetzt wird, wenn die Partitionsgröße kleiner als 32680 Bytes ist, und auf '04', wenn die Partitionsgröße kleiner als 65536 Bytes ist. Das Feld "Endesektor/Endezylinder' spezifiziert den Endesektor und Endezylinder der Partition. Das Feld 'relativer Sektor' spezifiziert die Zahl von Sektoren, die vor dem Anfangssektor der Partition vorhanden ist. Das Feld 'gesamt Sektor' spezifiziert die Zahl von Sektoren in der Partition.
  • Das Folgende ist eine Erklärung der Partition in der Halbleiter-Speicherkarte 100. Die Partition besteht aus dem Systembereich, gefolgt von dem Benutzerbereich, aber diese Erklärung beginnt mit einer Beschreibung des Benutzerbereichs mit Verweis auf 7C.
  • Der Benutzerbereich speichert Dateien in Einheiten nicht kleiner als ein Cluster. Der mit einer gebrochenen Linie in 7C gezogene Pfeil ff2 zeigt die Vielzahl von Clustern 002, 003, 004, 005 ..., die im Benutzerbereich enthalten sind. Die in 7C verwendeten Nummern 002, 003, 004, 005, 006, 007, 008 ... sind dreistellige Hexadezimal-Clusternummern, die exklusiv zugewiesen werden, um jeden Cluster zu identifizieren. Da die kleinste Einheit, mit der zugegriffen werden kann, ein Cluster ist, werden Speicherpositionen im Benutzerbereich mit Cluster-Nummern angegeben.
  • Der Systembereich enthält einen Partition-Boot-Sektor, eine duplizierte Dateizuordnungstabelle und einen Hauptverzeichniseintrag. Der Partition-Boot-Sektor, die duplizierte FAT und der Hauptverzeichniseintrag werden wiederum mit Verweis auf 6B, 7A bzw, 7B beschrieben.
  • Ein erweiterter FDC-(Floppydisc-Controller) Deskriptor mit den in 6B gezeigten Infor mationsfeldern wird in den Partition-Boot-Sektor gestellt. Der erweiterte FDC-Deskriptor enthält die folgenden Felder: 'Sprungbefehl', 'Erzeugungssystem-Identifizierer', 'Sektorgröße', "Sektoren pro Cluster, 'reservierte Sektorzählung', 'Zahl von FATs' (Zahl in der duplizierten FAT enthaltener FATs), 'Zahl von Hauptverzeichniseinträgen' (Datenlänge des Hauptverzeichniseintrags), "gesamt Sektoren', 'Medien-Identifizierer', 'Sektoren pro FAT, 'Sektoren pro Spur', 'Zahl von Seiten', 'Zahl verborgener Sektoren', 'gesamt Sektoren', (die Gesamtzahl von Sektoren im Systembereich und Benutzerbereich), 'physikalische Plattennummer', 'erweiterte Boot-Datensatz-Signatur', 'Datenträger-ID-Nummer', 'Datenträger-Label', 'Dateisystemtyp' und 'Signaturwort'.
  • Die duplizierte FAT ist aus zwei FATs gebildet, die mit dem ISO/IEC- (International Organization for Standardization/International Electrotechnical Commission) 9293 Standard kompatibel sind. Jede FAT enthält eine Vielzahl von FAT-Einträgen, die je mit einem Cluster verbunden sind. FAT-Einträge zeigen an, ob ein entsprechender Cluster in Gebrauch ist oder nicht, und wird auf '0' gesetzt, wenn der Cluster nicht in Gebrauch ist, und auf die entsprechende Cluster-Nummer, wenn der Cluster in Gebrauch ist. Die Cluster-Nummer gibt einen Link zu einem nächsten Cluster an, der nach diesem Cluster gelesen werden soll. Der mit einer gebrochenen Linie in 7A gezogene Pfeil ff1 zeigt eine Vielzahl in der FAT enthaltener FAT-Einträge 002, 003, 004, 005 ... Die an jeden FAT-Eintrag angehängten nummerischen Werte'002, 003, 004, 005' zeigen die Cluster-Nummer des entsprechenden Clusters.
  • Der Hauptverzeichniseintrag enthält eine Vielzahl von Dateieinträgen für eine Vielzahl in dem Hauptverzeichnis vorhandener Dateien. Jeder Dateieintrag enthält einen 'Dateinamen' einer existierenden Datei, einen 'Datei-Identifizierer', eine 'Nummer des ersten Clusters in der Datei', der am Anfang der Datei gespeichert ist, ein 'Datei-Attribut', eine 'Aufzeichnungszeit' und ein 'Aufzeichnungsdatum', die angeben, wann die Daten aufgezeichnet wurde, und eine 'Dateilänge'.
  • Das Folgende beschreibt das Dateispeicherverfahren durch Zeigen, wie eine Datei mit Namen 'AOB001.SA1' im Hauptverzeichnis gespeichert wird, mit Verweis auf 8. Da die kleinste Einheit, mit der auf den Benutzerbereich zugegriffen werden kann, ein Cluster ist, muss die Datei 'AOB001.SA1' in dem Datenbereich in Abschnitten gespeichert werden, die nicht kleiner sind als ein Cluster. Die Datei 'AOB001.SA1' wird daher gespeichert, indem sie zuerst in Cluster geteilt wird. In 8 ist die Datei 'AOB001-SA1' entsprechend der Clustergröße in fünf Abschnitte geteilt, und die resultierenden Abschnitte werden in die Cluster der Nummern 003, 004, 005, 00A und 00C gespeichert.
  • 9 zeigt ein Beispiel, wie der Hauptverzeichniseintrag und die FAT eingerichtet sein müssen, wenn die in Abschnitte unterteilte Datei 'AOB001.SA1' gespeichert wird. In der Zeichnung wird der Anfang der Datei 'AOB001.SA1' im Cluster 003 gespeichert, sodass Cluster-Nummer 003 in die 'Nummer des ersten Clusters in Datei' im Hauptverzeichniseintrag geschrieben wird, um den Cluster zu bezeichnen, der den ersten Abschnitt der Datei speichert. Die nachfolgenden Abschnitte der Datei 'AOB001.SA1' werden in Clustern 004 und 005 gespeichert. Als Folge bezeichnet, während der FAT-Eintrag 003(004) dem Cluster 003 entspricht, der den ersten Abschnitt der Datei 'AOB001.SA1' speichert, dieser Eintrag Cluster 004 als den Cluster, der den nächsten Abschnitt der Datei 'AOB001.SA1' speichert. In gleicher Weise bezeichnen, während die FAT-Einträge 004(005) und 005(00A), die den Clustern 004 bzw. 005 entsprechen, die die nächsten Abschnitte der Datei'AOB001.SA1' speichern, diese Einträge Cluster 005 und Cluster 00A als die Cluster, die die nächsten Abschnitte der Datei'AOB001.SA1' speichern. Durch Lesen der Cluster mit den in diese FAT-Einträge geschriebenen Cluster-Nummern in der Reihenfolge wie durch die Pfeile fk1, fk2, fk3, fk4, fk5 ... in 9 gezeigt, können alle durch Teilen der Datei 'AOB001.SA1' erzeugten Abschnitte gelesen werden. Wie oben erklärt, wird auf den Benutzerbereich der Halbleiter-Speicherkarte 100 in Einheiten von Clustern zugegriffen, von denen jeder mit einem FAT-Eintrag verbunden ist. Man beachte, dass der FAT-Eintrag, der dem Cluster entspricht, der den letzten Abschnitt einer AOB-Datei speichert (der Cluster 00C in dem Beispiel von 9), mit der Cluster-Nummer 'FFF' versehen ist, um zu zeigen, dass der entsprechende Cluster den letzten Abschnitt einer Datei speichert.
  • Die obige Erkärung gab eine kurze Übersicht über das Dateisystem in dem nicht flüchtigen Speicher 1 der vorliegenden Erfindung. Die folgende Erklärung konzentriert sich auf die Hauptaufgabe der Ausführungen, um zu beschreiben, wie Clustergrenzen und Grenzen löschbarer Blöcke abgeglichen werden, mit anderen Worten, wie die Grenze des Systembereichs und des Benutzerbereichs mit einer Grenze zwischen zwei löschbaren Blöcken abgeglichen wird. Die Ausführungen führen zwei Verbesserungen aus, um diesen Grenzabgleich zu verwirklichen. Die erste von ihnen betrifft das Festlegen einer Clustergröße auf 1/n der Größe der Große von löschbaren Blöcken (n ist 1, 2, 4, 8, 16 oder 32). 10A zeigt die Beziehung zwischen löschbaren Blöcken und Clustern. Ein Cluster wird hier als 1/n der Größe eines löschbaren Blocks spezifiziert, das ist 1/n von 16 KB (1/n von 32 Sektoren). 10B zeigt eine Anzahl Cluster, wenn n=1, und 10C zeigt eine Anzahl Cluster, wenn n=16.
  • Die zweite Verbesserung betrifft die Zuteilung eines Bereichs im Datenträgerbereich mit einer Größe von m Mal der Größe eines Clusters zum Aufzeichnen der Datenträger-Verwaltungsinformation. 11A betrachtet eine Situation, wenn m Cluster aus s in s löschbaren Blöcken enthaltenen Clustern zum Aufzeichnen der Datenträger-Verwaltungsinformation zugeteilt werden. Wenn m Cluster zum Aufzeichnen der Datenträger Verwaltungsinformation zugeteilt werden, wird ein Bereich m/n in den s löschbaren Blöcken durch die Datenträger-Verwaltungsinformation belegt werden, und der restliche Bereich (s * n-m)/n wird dem Benutzerbereich zugeteilt werden.
  • Durch Festlegen der Größe der Datenträger Verwaltungsinformation auf m Mal Clustergröße können die Datenträger-Verwaltungsinformation und s * n-m Cluster verdichtet werden, sodass Cluster die Grenzen zwischen zwei löschbaren Blöcken nicht ausdehnen.
  • 11B zeigt die der Datenträger-Verwaltungsinformation zugeteilte Zahl von Clustern, wenn n=1, und 11C zeigt die der Datenträger-Verwaltungsinformation zugeteilte Zahl von Clustern, wenn n=16. Wie diese Zeichnungen klar zeigen, wird eine Vielzahl von Clustern in eine Vielzahl von löschbaren Blöcken eingepasst, indem die Datenträger-Verwaltungsinformation so festgelegt wird, dass keine Cluster die Grenzen zwischen löschbaren Blöcken ausdehnen. 5 zeigt ein detailliertes Layout eines Datenträgerbereichs, dessen Größe auf diese Weise justiert wurde. In der Zeichnung ist die Größe des Partitionssteuerbereichs NOM, die Größe des Partitions-Boot-Sektors ist RSC, die Größe der duplizierten FAT ist Size 1 × 2, die Größe des Hauptverzeichniseintrags ist RDE, die Gesamtsektorgröße ist TS, und die in einem Cluster enthaltene Zahl von Sektoren ist SC.
  • In 5 wird eine Größe Size 1 der in der duplizierten FAT enthaltenen FATs entsprechend der Gesamtsektorgröße TS bestimmt. Das heißt, sie ist ein Wert, der mittels einer unten beschriebenen Gleichung 11 berechnet wird.
    Gleichung 11 Für FAT12: Size 1 (((((TS-(RSC+RDE))/SC)+2) × 12/8)+511)/512 Für FAT16: Size 1 (((((TS-(RSC+RDE))/SC)+2) × 16/8)+511)/512
  • FAT12 bezeichnet hier ein Dateisystem, in dem jedem FAT-Eintrag 12 Bits zugeteilt sind, und FAT16 bezeichnet ein Dateisystem, in dem jedem FAT-Eintrag 16 Bits zugeteilt sind.
  • In Gleichung 11 ist (TS-(RSC+DRE)) die Zahl von Clustern, die für die durch den Benutzerbereich durchgeführte Aufzeichnung benötigt wird. Zu dieser Zahl wird die Indikatornummer 2 addiert, der resultierende Wert wird dann mit der Bytelänge des FAT-Eintrags (12 oder 16) multipliziert und dann durch 8 geteilt, um die FAT-Bytelänge zu erhalten. Zu dem Ergebnis dieser Berechnung wird ein Offsetwert von 511 Bytes addiert, und die resultierende Zahl wird durch eine Sektorbytelänge von 512 geteilt, um die zum Speichern einer FAT benötigte Zahl von Sektoren zu berechnen. Wenn die FAT-Datenlänge 1 Byte wäre, würde das Teilen der FAT-Daten durch 512 eine als 0 berechnete Zahl von Sektoren in der FAT ergeben. Die Addition des Offestwertes 511 durch Gleichung 11 stellt jedoch sicher, dass eine Size 1 mit wenigstens einem Sektor berechnet werden wird.
  • Ein in 5 zu beachtender wichtiger Punkt ist die Größe des Paritionssteuerbereichs, bekannt als NOM. NOM wird auf einen Wert 'SC+α' gesetzt, um sicherzustellen, dass der Partitionssteuerbereich und der Systembereich zu verschiedenen Clustern gehören. Der Grund, weil NOM in dieser Weise festgelegt wird, besteht darin, zu vermeiden, dass Fehler beim Modifizieren von Clustern im Systembereich einen Knock-on-Effekt auf den Partitionssteuerbereich haben. Mit anderen Worten, wenn der Haupt-Boot-Datensatz & der Partitionstabellensektor im Partitionsbereich durch einen solchen Modifikationsfehler beschädigt werden, wird die Halbleiter-Speicherkarte 100 durch die Zugriffsvorrichtung nicht mehr als ein berechtigtes Aufzeichnungsmedium erkannt werden. NOM wird auf SC+α gesetzt, um ein solches ungünstigtes Szenario zu vermeiden.
  • Der Wert SC+α wird in der folgenden Weise bestimmt. Der Wert α wird durch Teilen von (RSC+RDE+Size 1 ×2) durch SC berechnet, sodass die Summe aus RSC, Size 1 × 2 und RDE ein ganzes Vielfaches von SC ist, und Subtrahieren des Rests dieser Berechnung von SC. Wenn diese Tatsachen berücksichtigt werden, wird NOM nach Gleichung 12 berechnet.
    Gleichung 12 NOM = (SC-(RSC+RDE+Size 1 × 2)%SC)+SC
  • Wenn α in dieser Weise spezifiziert wird, werden der Partitionssteuerbereich und der Benutzerbereich so gebildet, dass sie genau in eine Vielzahl von löschbaren Blöcken passen, und die Grenze zwischen dem Systembereich und dem Benutzerbereich wird mit der Grenze von löschbaren Blöcken abgeglichen werden. Wenn ein solcher Abgleich von Grenzen verwirklicht werden kann, werden die Grenzen aller nachfolgenden Cluster mit Grenzen von löschbaren Blöcken abgeglichen sein.
  • Hier wird ein Beispiel beschrieben, das zeigt, wie NOM und Size 1 berechnet werden, wenn SC 12 Sektoren (16 KB) ist, RDE 32 Sektoren ist, RSC 1 Sektor ist, und TS 65600 Sektoren ist. Wenn der Typ der FAT FAT12 ist, wird Size 1 in der folgenden Weise mit Gleichung 11 berechnet. Size 1 = (((((Ts-(RSC+RDE))/SC)+2) × 12/8)+511)/512 = (((((65600-(1+32))/SC)+2 × 12/8) + 511)/512 = 7 Sektoren.
  • Ferner wird NOM in der folgenden Weise mit Gleichung 12 berechnet. NOM = (SC-(RSC+RDE+Size 1 × 2)%SC) + SC = (32-(1+32+7×2)%32)+32 = 47 Sektoren
  • 12 zeigt einen Partitionssteuerbereich, einen Systembereich und Cluster entsprechend den berechneten Größen. Der Haupt-Boot-Datensatz & Partitionstabellensektor und reservierte Information 1/2 sind in Sektoren PSN000 bis PSN031 angeordnet, und die reservierte Information 2/2, der Partitions-Boot-Sektor und die duplizoerte FAT sind in Sektoren PSN032 bis PSN063 angeordnet. Der Hauptverzeichniseintrag ist in Sektoren PSN064 bis PSN095 angeordnet. Im Datenträgerbereich bilden 32 Sektoren einen löschbaren Block, sodass der Haupt-Boot-Datensatz, die Partitionstabelle und die reservierte Information 1/2 in einem ersten löschbaren Block 001 angeordnet sind, die reservierte Information 212, der Partitions-Boot-Sektor und die duplzierte FAT in einem zweiten löschbaren Block 002 angeordnet sind, und der Hauptverzeichniseintrag in einem dritten löschbaren Block 003 angeordnet ist. Der Hauptverzeichniseintrag ist in einem gleich großen löschbaren Block gespeichert, sodass die Grenze zwischen dem Benutzerbereich und dem Systembereich mit einer Grenze zwischen löschbaren Blöcken übereinstimmt.
  • Der obige Datenträgerbereich wird verwirklicht, wenn die Dateisystem-Betriebseinheit 9 eine Initialisierung auf dem nicht flüchtigen Speicher 1 durchführt. Diese Prozedur zum Durchführen dieser Initialisierungsverarbeitung wird mit Verweis auf das Flussdiagramm von 13 erklärt.
  • In Schritt S1 bestimmt die Dateisystem-Betriebseinheit 9 die Clustergröße entsprechend einer Größe des zu formatierenden Bereichs (TS) und einer Gesamtspeicherkapazität der Halbleiter-Speicherkarte 100, einem durch die Zugriffsvorrichtung 200 betriebenen Betriebssystem und Anweisungen von einem Benutzer.
  • Sobald die Clustergröße bestimmt ist, benutzt in Schritt S2 die Dateisystem-Betriebseinheit 9 die Clustergröße und die Gesamtsektorgröße T, um zu bestimmen, ob ein FAT12- oder ein FAT16-Dateisystem verwendet werden soll. Sobald das FAT12- oder FAT16-Dateisystem bestimmt ist, bestimmt in Schritt S3 die Dateisystem-Betriebseinheit 9 die Länge RDE des Hauptverzeichniseintrags (in diesen Ausführungen ist RDE auf 32 Sektoren festgelegt) und bestimmt danach in Schritt S4 die Länge RSC des Partitions-Boot-Sektors (in diesen Ausführungen ist RSC auf 1 Sektor festgelegt). Sobald RDE und RSC erlangt sind, verwendet die Dateisystem-Betriebseinheit 9 in Schritt S5 die Gleichung 11, um die Datenlänge der FAT zu berechnen. Dann verwendet in Schritt S6 die Dateisystem-Betriebseinheit 9 die Gleichung 12, um NOM so zu berechnen, dass der Haupt-Boot-Datensatz und der Partitions-Boot-Sektor in verschiedenen Clustern liegen.
  • Die in den obigen Schritten S5 bis S7 durchgeführte Verarbeitung ist praktisch identisch mit der in den zuvor beschriebenen Gleichungen 11 und 12 durchgeführten Verarbeitung. Die in Schritten S7 bis S9 durchgeführte Verabeitung wird jedoch erstmals in diesem Flussdiagramm eingeführt. In Schritt S7 berechnet die Dateisystem-Betriebseinheit 9 eine Zahl von Clustern CN im Benutzerbereich unter Verwendung einer Gleichung 13.
    Gleichung 13 CN = (TS-(RSC+RDE+Size 1 × 2+NOM))/SC
  • In Schritt S8 berechnet die Dateisystem-Betriebseinheit 9 die Datenlänge unter Verwendung der folgenden Gleichung 14.
    Gleichung 14 Für FAT12: Size 2 = (((CN+2) × 12/8)+511)/512 Für FAT16: Size 2 = (((CN+2) × 16/8)+511)/512
  • In Schritt S9 vergleicht die Dateisystem-Betriebseinheit 9 die in Schritt S5 berechnete Size 1 und die in Schritt S8 berechnete Size 2, und beendet die Verarbeitung wenn die zwei Werte identisch sind. Wenn die Werte nicht identisch sind, ersetzt die Dateisystem-Betriebseinheit 9 in Schritt S10 Size 1 durch Size 2, geht zu Schritt S6 und berechnet NOM neu. Da Size 1 nun infolge des Ersetzens ein anderer Wert ist, kann durch Gehen zu Schritt S6 ein anderes NOM berechnet werden. In Schritt S8 berechnet dann die Dateisystem-Betriebseinheit 9 Size 2 basierend auf der neu berechneten NOM neu, und beendet die Verarbeitung, wenn Size 1 und Size 2, Ja in Schritt S9, identisch sind.
  • Die unter Verwendung der obigen Verarbeitung berechnete NOM wird in das Feld 'relativer Sektor in der Partitionstabelle gestellt, die die Zahl von Sektoren zeigt, die vor dem Anfangs sektor der Partition vorhanden sind, und TS wird in das Feld 'Gesamtsektor' in der Partitionstabelle gestellt.
  • SC wird in das Feld 'Sektoren pro Cluster in dem Partitions-Boot-Sektor gestellt, der die Zahl von Sektoren in jedem Cluster zeigt. Ferner wird RDE, die eine Zahl Sektoren angibt, mit der Sektorlänge von 512 Bytes multipliziert und dann durch 32 geteilt, um eine Zahl von Dateieinträgen zu gewinnen, wobei diese Zahl dann in das Feld 'Zahl von Hauptverzeichniseinträgen' in dem Partition-Boot-Sektor gestellt wird. Die Size 1 wird in das Feld 'Sektoren pro FAT, das die Zahl von Sektoren in jeder FAT zeigt, in dem Partition-Boot-Sektor gestellt. Die Zugriffsvorrichtung 200 nimmt Bezug auf diese in die Partitionstabelle und den Partitions-Boot-Sektor gestellten Werte, wenn sie die Stellen der duplizierten FAT, des Hauptverzeichniseintrags und des Benutzerbereichs spezifiziert.
  • Dies schließt die Erklärung des Flussdiagramms in 13. Als Nächstes wird eine Beispielberechnung beschrieben, die veranschaulicht, wie die Größe des Partitionsbereichs und des Systembereichs berechnet wird, wenn TS 65568 ist.
  • Da TS 65568 ist, bestimmt die Dateisystem-Betriebseinheit 9 in Schritt S1 die Clustergröße als 32 Sektoren. Sobald die Clustergröße als 32 bestimmt ist, bestimmt die Dateisystem-Betriebseinheit 9 in Schritt S2, dass ein FAT12-Dateisystem benutzt werden soll, durch Bezugnahme auf die Clustergröße SC und die Gesamtsektorgröße TS. In diesen Ausführungen sind RDE und RSC auf 32 Sektoren bzw. 1 Sektor festgelegt, sodass die Berechnung der Schritte S3 und S4 nicht durchgeführt wird. In Schritt S5 berechnet das Datei-Betriebssystem die Datenlänge der FAT mit Gleichungen 11 und 12. Da hier die FAT FAT12 ist, wird die folgende Berechnung durgeführt. Size 1 = (((((TS-(RSC+RDE))/SC+2) × 12/8)+511)/512 = (((((65568-(1+32))/SC)+2) x 12/8)+511)/512 = 7 Sektoren.
  • Sobald die SIZE 1 berechnet ist, berechnet in Schritt S6 die Dateisystem-Betriebseinheit 9 NOM mit Gleichung 12, sodass der Haupt-Boot-Datensatz und der Partition-Boot-Sektor in verschiedenen Clustern liegen. NOM = (SC-(RSC+RDE+Size 1 × 2)%SC)+SC = (32-(1+32+7×2)%32)+32 = 49 Sektoren.
  • Sobald NOM berechnet ist, berechnet die Dateisystem-Betriebseinheit 9 in Schritt S7 die Zahl von Clustern im regularen Bereich mit Gleichung 13. CN = (TS -(RSC*RDE+Size 1 × 2 +NOM))/SC = (65568 -(1+32+7 × 2 +49))/32 = 2046 Sektoren.
  • In Schritt S8 berechnet die Dateisystem-Betriebseinheit 9 die Datenlänge der FAT unter Verwendung von Gleichung 14. Für FAT12: Size 2 = (((CN+2)×12/8) +511)/512 = (((2046+2) × 12/8) +511)/512 = 6 Sektoren.
  • In Schritt S9 vergleicht die Dateisystem-Betriebseinheit 9 die in Schritt S5 berechnete Size 1 und die in Schritt S8 berechnete Size 2. Hier ist Size 17 Sektoren, und Size 2 ist 6 Sektoren. Da diese keine identischen Werte sind, geht die Dateisystem-Betriebseinheit 9 zu Schritt S10, ersetzt Size 1 durch Size 2, geht wieder zu Schritt S6 und berechnet NOM neu. NOM = (SC-(RSC+RDE+Size 1 × 2)%SC)+SC = (32-(1+32+6×2)%32)+32 = 51 Sektoren.
  • Sobald NOM berechnet ist, berechnet die Dateisystem-Betriebseinheit 9 in Schritt S7 die Zahl von Clustern im regulären Bereich. CN = (TS -(RSC*RDE+Size 1 × 2 +NOM))/SC = (65568 -(1+32+6 × 2 +49))/32 = 2046 Sektoren.
  • In Schritt S8 wird die Datenlänge der FAT berechnet. Für FAT12: Size 2 = (((CN+2)×12/8) +511)/512 = (((2046+2) × 12/8) +511)/512 = 6.
  • Im Anschluss an diese Berechnung vergleicht in Schritt S9 die Dateisystem-Betriebseinheit 9 Size 1 und Size 2, un da die zwei Werte identisch sind, endet die Verarbeitung des Flussdiagramms.
  • Wie oben gezeigt, ermöglicht es die vorliegende Erfindung, NOM so zu berechnen, dass die Größe des Partitionsbereichs und die Große des Systembereichs ganze Vielfache der Zahl von löschbaren Blöcken sind, um so sicherzustellen, dass keine Cluster gespeichert werden, die zwei löschbare Blöcke ausdehnen. Clustergrenzen können mit Grenzen löschbarer Blöcke abgeglichen werden, und die Grenze der Datenträger-Verwaltungsinformation kann mit der Grenze eines löschbaren Blocks abgeglichen werden, sodass, wenn ein Cluster umgeschrieben oder überschrieben wird, die Zahl von löschbaren Blöcken, gelöscht werden müssen, auf einen begrenzt wird, wodurch die Zahl von Malen, die ein löschbarer Block gelöscht werden muss, verringert wird. Folglich wird die zum Schreiben von Daten in die Halbleiter-Speicherkarte benötigte Zeit verkürzt, und ein nicht flüchtiger Speicher 1 mit einer längeren Lebensdauer kann verwirklicht werden.
  • Zweite Ausführung
  • Eine zweite Ausführung schlägt eine Anordnung vor, bei der der Datenträgerbereich in einen Bereich, auf den der allgemeine Benutzer zugreifen kann (der Benutzerdatenbereich), und einen zweiten Bereich geteilt wird, der Daten sicher speichert (der geschützte Bereich).
  • Eine Struktur einer Zugangsvorrichtung 200 und einer Halbleiter-Speicherkarte 100 in der zweiten Ausführung wird in 14 gezeigt. In der inneren Struktur in der Zeichnung ist im Gegensatz zu der in 3A gezeigten Struktur der nicht flüchtige Speicher 1 mit einem geschützten Bereich versehen worden, und die Halbleiter-Speicherkarte 100 und die Zugriffsvorrichtung 200 sind mit sicheren Verarbeitungseinheiten 11 bzw. 12 versehen worden.
  • Das Folgende ist eine Erklärung der sicheren Verarbeitungseinheit 11, die bereitgestellt ist, um sicheres Lesen aus dem und Schreiben in den geschützen Bereich des nicht flüchtigen Speichers 1 durchzuführen. Wie in 15 gezeigt, enthält die sichere Verarbeitungseinheit 11 einen Systembereich 13, einen verborgenen Bereich 14, eine AKE-Verarbeitungseinheit 15, eine Ks-Entschlüsselungseinheit 16 und eine Ks-Verschlüsselungseinheit 17.
  • Der Systembereich 13 ist ein Nurlese-Bereich, der einen Medienschlüsselblock (MKB) und einen Medien-ID speichert. Die in diesem Bereich gespeicherten MKB und Medien-ID können nicht umgeschrieben werden. Angenommen, dass die Halbleiter-Speicherkarte 100 mit einer Zugriffsvorrichtung 200 verbunden ist, und dass der MKB und der Medien-ID durch diese Zugriffsvorrichtung 200 gelesen werden. Wenn die Zugriffsvorrichtung 200 eine spezifizierte Berechnung unter Verwendung des MKB, des Medien-ID und einem intern gehaltenen Vorrichtungsschlüssel Kd richtig durchführt, kann ein richtiger Verschlüsselungsschlüs sel Kmu erhalten werden.
  • Der verborgene Bereich 14 speichert einen richtigen Wert für den Verschlüsselungsschlüssel Kmu, mit anderen Worten, den Verschlüsselungsschlüssel Kmu, der erhalten werden sollte, wenn die Zugriffsvorrichtung 200 eine richtige Berechnung unter Verwendung eines gültigen Vorrichtungsschlüssels Kd durchführt.
  • Die AKE- (Beglaubigung und Schlüsselaustausch) Verarbeitungseinheit 15 führt eine gegenseitige Beglaubigung zwischen der Zugriffsvorrichtung 200 und der Halbleiter-Speicherkarte 100 mithilfe des Frage-Antwort-Verfahrens durch, verifiziert die Authentizität der gegenüberstehenden Vorrichtung, und hält die Verarbeitung an, wenn die gegenüberstehende Vorrichtung ungültig ist. Wenn aber die gegenüberstehende Vorrichtung gültig ist, wird ein Verschlüsselungsschlüssel (Sitzungsschlüssel Ks) von der Zugriffsvorrchtung 200 und der Halbleiter-Speicherkarte 100 gemeinsam benutzt. Die von der Zugriffsvorrichtung 200 durchgeführte Beglaubigung hat drei Phasen. Erstens, in einer ersten Fragephase erzeugt die Zugriffsvorrichtung 200 eine Zufallszahl, verschlüsselt die Zufallszahl mit dem Verschlüsselungsschlüssel Kmu und sendet die verschlüsselte Zufallszahl als einen Fragewert A an die Halbleiter-Speicherkarte 100. Dann benutzt in einer ersten Antwortphase die Halbleiter-Speicherkarte 100 den intern gespeicherten Verschlüsselungsschlüssel Kmu, um den Fragewert A zu entschlüsseln, und sendet den entschlüsselten Wert als einen Antwortwert B an die Zugriffsvorrichtung 200. Danach entschlüsselt in einer ersten Verifizierungsphase die Zugriffsvorrichtung 200 den intern gehaltenen Fragewert A mit seinem Entschlüsselungsschlüssel Kmu und vergleicht den entschlüsselten Wert mit dem von der Halbleiter-Speicherkarte 100 gesendeten Antwortwert B.
  • Die von der Halbleiter-Speicherkarte 100 durchgeführte Beglaubigung hat ebenfalls drei Phasen. Erstens, in einer zweiten Fragephase erzeugt die Halbleiter-Speicherkarte 100 eine Zufalsszahl, verschlüsselt die Zufallszahl mit dem Verschlüsselungsschlüssel Kmu und sendet die verschlüsselte Zufallszahl als einen Fragewert C an die Zugriffsvorrichtung 200. Dann benutzt in einer zweiten Antwortphase die Zugriffsvorrichtung 200 den intern gespeicherten Verschlüsselungsschlüssel Kmu, um den Fragewert C zu entschlüsseln, und sendet den entschlüsselten Wert als einen Antwortwert D an die Halbleiter-Speicherkarte 100. Danach entschlüsselt in einer zweiten Verifizierungsphase die Halbleiter-Speicherkarte 100 den intern gehaltenen Fragewert C mit seinem Verschlüsselungsschlüssel Kmu und vergleicht den entschlüsselten Wert mit dem von der Zugriffsvorrichtung 200 gesendeten Antwortwert D.
  • Wenn die Zugriffsvorrichtung 200 einen ungültigen Verschlüsselungsschlüssel Kmu verwen det, um die gegenseitige Beglaubigung durchzuführen, werden der Fragewert A und der Antwortwert B in der ersten Verfifizierungsphase und der Fragewert C und der Antwortwert D in der zweiten Verifizierungsphase als nicht übereinstimmende Werte beurteilt, und die gegenseitige Beglaubigung wird angehalten. Wenn aber die Beglaubigung der gegenüberstehenden Vorrichtung verifiziert ist, berechnet die AKE-Verarbeitungseinheit 15 ein Exklusiv-ODER von Fragewert A und Fragewert C und erlangt den Sitzungsschlüssel Ks durch Entschlüsseln des Exklusiv-ODER mit dem Verschlüsselungsschlüssel Kmu.
  • Wenn in den geschützten Bereich zu schreibende verschlüsselte Daten von der mit der Halbleiter-Speicherkarte 100 verbundenen Zugriffsvorrichtung 200 ausgegeben werden, benutzt die Ks-Entschlüsselungseinheit 16 den Sitzungsschlüssel Ks, um diese Daten, die bereits mit dem Sitzungsschlüssel Ks verschlüsselt wurden, zu entschlüsseln, bevor sie ausgegeben werden. Die durch diese Entschlüsselung erhaltenen Daten werden als die Originaldaten in den geschützten Bereich geschrieben.
  • Die Ks-Verschlüsselungseinheit 17 empfängt einen Befehl von der mit der Halbleiter-Speicherkarte 100 verbunden Zugriffsvorrichtung 200, der sie Daten zu lesen anweist, verschlüsselt die im geschützten Bereich gespeicherten Daten mit dem Sitzungsschlüssel Ks und gibt dann die verschlüsselten Daten an die Zugriffsvorrichtung 200 aus. Das Lesen aus dem und Schreiben in den geschützten Bereich werden in Anschluss an die durch die Ks-Entschlüsselungseinheit 16 durchgeführte Entschlüsselung und die durch die Ks-Verschlüsselungseinheit 17 durchgeführte Verschlüsselung durchgeführt, sodass auf den geschützten Bereich nur zugegriffen werden kann, wenn die Halbleiter-Speicherkarte 100 und eine verbundene Zugriffsvorrichtung 200 die AKE-Verarbeitung erfolgreich durchgeführt haben.
  • Als Nächstes wird das Format des Datenträgerbereichs in der zweiten Ausführung mit Verweis auf die in 16 gezeigte detaillierte Zeichnung des Datenträgerbereichs, einschließlich des geschützten Bereichs erklärt. In der Zeichnung ist, wenn die Gesamtgröße des Datenträgerbereichs "Datenträgergröße' ist, der Benutzerdatenbereich ein Bereich 'Datenträgergröße × (1-β)', der sich vom Anfang des Datenträgerbereichs erstreckt, und ein Bereich 'Datenträgergröße × β', der dem Benutzerdatenbereich folgt, wird dem geschützten Bereich zugeteilt. β ist hier ein Wert, für den die minimale Festlegung 0.01 ist. Um ein Beispiel zu nehmen, wenn die Datenträgergröße 64 KB beträgt und β 0.01 ist, wird der geschützte Bereich auf 640 KB gesetzt. Das Format des Benutzerdatenbereichs und des geschützten Bereichs wird verwirklicht, wenn die Dateisystem-Betriebseinheit 9 die in 9 gezeigte Initialisierungsprozedur ausführt.
  • Das Folgende beschreibt eine Beispielrechnung, die durchgeführt wird, um die Größe des Partitionssteuerbereichs und des Systembereichs in dem Benutzerdatenbereich zu berechnen, wenn die Gesamtzahl von Sektoren TS im Benutzerdatenbereich 124160 beträgt.
  • Da die TS 124160 ist, bestimmt in Schritt S1 die Dateisystem-Betriebseinheit 9 die Clustergröße zu 32 Sektoren. Sobald die Clustergröße zu 32 Sektoren bestimmt ist, bestimmt in Schritt S2 die Dateisystem-Betriebseinheit 9 in Schritt S2 durch Bezugnahme auf die Clustergröße SC und die Gesamtsektorgröße TS, dass ein FAT12-Dateisystem verwendet werden soll. In diesen Ausführungen sind die Größen von RDE und RSC auf 32 Sektoren bzw. 1 Sektor festgelegt, sodass die Berechnungen der Schritte S3 und S4 nicht durchgeführt werden. In Schritt S5 berechnet das Dateibetriebssystem die Datenlänge der FAT unter Vewendung von Gleichungen 11 und 12. Da hier die FAT FAT12 ist, wird die folgende Berechnung durchgeführt. Size 1 = (((((TS-(RSC+RDE))/SC)+2) × 12/8) +511)/512 = (((((124160-(1+32))/32) +2) × 12/8) +511)/512 = 12 Sektoren.
  • Sobald die Size 1 berechnet ist, berechnet in Schritt S6 die Dateisystem-Betriebseinheit 9 die NOM mit Gleichung 12 so, dass der Haupt-Boot-Datensatz und der Partitions-Boot-Sektor in verschiedenen Clustern liegen. NOM = (SC-(RSC+RDE+Size 1 × 2) %SC) + SC = (32 -(1+32+12×2) %32) +32 = 39 Sektoren.
  • Sobald die NUM berechnet ist, berechnet in Schritt S7 die Dateisystem-Betriebseinheit 9 die Zahl von Clustern in dem regulären Bereich mit Gleichung 13. CN = (TS-(RSC+RDE+Size 1 × 2 +NOM))/SC = 124160-(1+32+12××2+49))/32 = 3877 Sektoren.
  • In Schritt S8 berechet die Dateisystem-Betriebseinheit 9 die Datenlänge der FAT mit Gleichung 14 neu. Für FAT12: Size 2 = (((CN+2) × 12/8) +511)/512 = (((3877 +2 ×12/8) +511)/512 = 12 Sektoren.
  • In Schritt S9 vergleicht die Dateisystem-Betriebseinheit 9 die in Schritt S5 berechnete Size 1 und die in Schritt S8 berechnete Size 2. Hier werden sowohl Size 1 als auch Size 2 zu 12 Sektoren berechnet, sodass sie als identische Werte beurteilt werden und die Verarbeitung des Flussdiagramms endet.
  • Ein Layout des geschützten Bereichs, wenn der Systembereich und der Partitionssteuerbereich mit einer Größe TS gebildet werden, Size 1 und NOM wie durch die vorerwähnten Berechungen bemessen werden, wird in 17 gezeigt. In dieser Zeichnung ist verglichen mit 12 zu sehen, dass die Größe der duplizierten FAT von 14 auf 24 Sektoren zugenommen hat, während die Größe der reservierten Information 1/2 und 2/2 von 17 auf 7 Sektoren geschrumpft ist, sodass der Partitionssteuerbereich und der Systembereich genau in drei löschbare Blöcke passen.
  • Das Folgende beschreibt eine Beispielrechnung die durchgeführt wird, um die Größe des Partitionssteuerbereichs und des Systembereichs in dem geschützten Bereich zu berechnen, wenn die Gesamtzahl von Sektoren TS im Benutzerdatenbereich 1280 beträgt.
  • Da die TS als 1280 bestimmt ist, bestimmt in Schritt S1 die Dateisystem-Betriebseinheit 9 die Clustergröße zu 2 Sektoren (1 KB an Speicher und nur 1/16 der Größe des Benutzerdatenbereichs). Sobald die Clustergröße zu 2 Sektoren bestimmt ist, bestimmt in Schritt S2 die Dateisystem-Betriebseinheit 9 durch Bezugnahme auf die Clustergröße SC und die Gesamtsektorgröße TS, dass ein FAT12-Dateisystem verwendet werden soll. In diesen Ausführungen sind die Größen von RDE und RSC auf 32 Sektoren bzw. 1 Sektor festgesetzt, sodass die Verarbeitungen der Schiffe S3 und S4 nicht durchgeführt werden. In Schritt S5 berechnet das Dateibetriebssystem die Datenlänge der FAT mit den Gleichungen 11 und 12. Da hier die FAT FAT12 ist, wird die folgende Berechnung durchgeführt. Size 1 = (((((TS-(RSC+RDE))/SC) +2) × 12/8) +512)/512 = (((((1280-(1 +32))/2) +2) × 12/8) +511)/512 = 2 Sektoren.
  • Sobald die Size 1 berechnet ist, berechnet in Schritt S6 die Dateisystem-Betriebseinheit 9 die NOM mit Gleichung 12 so, dass der Haupt-Boot-Datensatz und der Partitionssteuersektor in verschiedenen Clustern liegen. NOM = (SC-(RSC+RDE+Size 1 ×2)%SC) +SC = (2-(1+32+2×2)%2) +2 = 3 Sektoren.
  • Sobald die NOM berechnet ist, berechnet in Schritt S7 die Dateisystem-Betriebseinheit 9 die Zahl von Clustern in dem regulären Bereich mit Gleichung 13. CN = (TS-(RSC+RDE+Size 1 ×2 +NOM))/SC = (1280-(1+32+2×2+3))/32 = 620 Sektoren.
  • In Schritt S8 berechnet die Dateisystem-Betriebseinheit 9 die Datenlänge der FAT mit Gleichung 14. Für FAT12: Size 2 = (((CN+2) × 12/8) +511)/512 = (((620 +2 ×12/8) +511)/512 = 2
  • In Schritt S9 vergleicht die Dateisystem-Betriebseinheit 9 die in Schritt S5 berechnete Size 1 und die in Schritt S8 berechnete Size 2. Hier werden sowohl Size 1 als auch Size 2 zu 2 Sektoren berechnet, sodass sie als identische Werte beurteilt werden und die Verarbeitung des Flussdiagramms vollendet ist.
  • Ein Layout des geschützten Bereichs, wenn der Systembereich und der Partitionssteuerverwaltungsbereich mit einer Größe TS gebildet werden, Size 1 und NOM wie durch die vorerwähnten Berechungen bemessen werden, wird in 18 gezeigt. In diesen Ausführungen haben sowohl der Benutzerdatenbereich als auch der geschützte Bereich einen Partitionssteuerbereich, einen Systembereich und einen geschützten Bereich, sodass jeder von der Zugriffsvorrichtung 200 als ein unabhängiges physikalisches Medium behandelt wird. Obwohl der Benutzerdatenbereich und der geschützte Bereich verschiedene Clustergrößen aufweisen, können daher die Grenzen von Clustern sowohl im Benutzerdatenbereich als auch im geschützten Bereich mit den Grenzen von löschbaren Blöcken abgeglichen werden.
  • In der obigen Ausführung werden, selbst wenn der Datenträgerbereich zwei Bereiche enthält, den Benutzerdatenbereich und den geschützten Bereich, die Grenzen solcher Bereiche mit den Grenzen löschbarer Blöcke abgeglichen, und so kann das Umschreiben von Clustern in einer kurzen Zeit vollendet werden. Außerdem wird die Zahl von Malen, die löschbare Blöcke gelöscht werden müssen, verringert, sodass die Lebensdauer des nicht flüchtigen Speichers nicht unnötig verkürzt wird.
  • Dritte Ausführung
  • Die dritte Ausführung betrifft eine Verbesserung, die verwendet wird, wenn in löschbaren Blöcken gespeicherte Daten gelöscht werden, wobei die löschbaren Blöcke mit einer logischen Adresse und einer physikalischen Adresse verwaltet werden. 19 zeigt eine Struktur einer Zugriffssteuereinheit 2 in der dritten Ausführung. Die Zugriffssteuereinheit 2 in der Zeichnung enthält eine Befehlsdecodiereinheit 21, eine logische/physikalische Adressenumwandlungseinheit 22, eine Lesesteuereinheit 23, eine Zuordnungsänderungseinheit 24, eine Schreibsteuereinheit 25, eine Löschsteuereinheit 26 und eine Modifiziersteuereinheit 27.
  • Die Befehlsdecodiereinheit 21 empfängt einen von der Zugriffsvorrichtung 200 ausgegebenen Befehl und decodiert den ursprünglichen Inhalt des Befehls zum Zeitpunkt der Ausgabe. Wenn ein Lesebefehl empfangen wird, weist die Befehlsdecodiereinheit 21 die Lesesteuereinheit 23 an, Daten aus dem nicht flüchtigen Speicher 1 zu lesen (Lesen). Wenn ein Schreibbefehl empfangen wird, weist die Befehlsdecodiereinheit 21 die Schreibsteuereinheit 25 an, Daten in den nicht flüchtigen Speicher 1 zu schreiben (Schreiben). Wenn ein Schreibbefehl, der einen ungelöschten Block als ein Zugriffsziel spezifiziert, empfangen wird, weist die Befehlsdecodiereinheit 21 die Modifiziersteuereinheit 27 an, in dem nicht flüchtigen Speicher 1 gespeicherte Daten zu modifizieren (umzuschreiben) (Modifizieren). Wenn ein Status-Erlangen-Befehl empfangen wird, weist die Befehlsdecodiereinheit 21 die Zuordnungsänerungseinheit 24 an, eine Liste gelöschter Blöcke (später beschrieben) zu lesen. Wenn ein Löschbefehl empfangen wird, weist die Befehlsdecodiereinheit 21 die Zuordnungsänderungseinheit 24 an, den spezifizierten löschbaren Block zu löschen.
  • Die logische/physikalische Adressenaustauscheinheit 22 besitzt eine Adressen-Entsprechungstabelle, die Entsprechungen zwischen logischen und physikalischen Adressen für löschbare Blöcke zeigt. Wenn eine logische Adresse, auf die zuzugreifen ist, durch die Zugriffsvorrichtung 200 spezifiziert wird, nimmt die logische/physikalische Adressenaustauscheinheit 22 Bezug auf die in der Adressen-Entsprechungstabelle gezeigte Entsprechung für die logische Adresse, tauscht die logische Adresse gegen eine physikalische Adresse aus und gibt die physikalische Adresse an die Lesesteuereinheit 23, die Zuordnungsänderungseinheit 24 und die Modifiziersteuereinheit 27 aus.
  • Wenn ein Lesebefehl von der Zugriffsvorrichtung 200 ausgegeben wird, führt die Schreibsteuereinheit 23 eine Steuerung durch, um die Zugriffsvorrichtung 200 in der durch den Lesebefehl spezifizierten Lesestelle gespeicherte Daten lesen zu lassen.
  • Die Zuordnungsänderungseinheit 24 hält eine Liste gelöschter Blöcke, in der physikalische Adressen für löschbare Blöcke, die gelöscht wurden, in einem FIFO-Format angordnet sind. Wenn ein Lesebefehl von der Zugriffsvorrichtung 200 ausgegeben wird, entscheidet die Zuordnungsänderungseinheit 24, ob eine physikalische Adresse, die der als Leseziel spezifizierten logischen Adresse entspricht, in der Liste gelöschter Blöcke vorhanden ist. Wenn festgestellt wird, dass eine solche physikalische Adresse vorhanden ist, gibt die Zuordnungsänderungseinheit 24 die physikalische Adresse an die Schreibsteuereinheit 25 aus und löscht die physikalische Adresse aus der Liste gelöschter Blöcke. Wenn die entsprechende physikalische Adresse einen löschbaren Block angibt, der nocht nicht gelöscht wurde, teilt die Zuordnungsänderungseinheit 24 eine physikalische Adresse am Anfang der Liste gelöschter Blöcke der logischen Adresse als das Leseziel zu und gibt die zugeteilte physikalische Adresse an die Lesesteuereinheit 25 aus, während die physikalische Adresse, die vorher der logischen Adresse als das Leseziel zugeteilt war, dem Ende der Liste löschbarer Blöcke hinzugefügt wird. Des Werteren ändert, wenn ein Status-Erlangen-Befehl von der Zugriffsvorrichtung 200 ausgegeben wird, die Zuordnungsänderungseinheit 24 in der Liste gelöschter Blöcke gezeigte physikalische Adressen in logische Adressen und gibt eine Liste gelöschter Blöcke, die gelöschte löschbare Blöcke unter Verwendung einer Tabelle von logischen Adressen angibt, an die Zugriffsvorrichtung 200 aus. Wenn ein Löschbefehl, der eine logische Adresse angibt, die bereits gelöscht wurde, von der Zugriffsvorrichtung 200 ausgegeben wird, steuert die Zuordnungsänderungseinheit 24 den Vorgang so, dass eine physikalische Adresse, die dieser logischen Adresse entspricht, der Liste gelöschter Blöcke hinzugefügt wird.
  • Die Schreibsteuereinheit 25 schreibt Daten in den nicht flüchtigen Speicher 1 entsprechend der von der Zuordnungsänderungseinheit 24 ausgegebenen physikalischen Adresse, wenn ein Schreibbefehl zum Schreiben eines Blocks empfangen wird.
  • Die Löschsteuereinheit 26 führt in festen Intervallen eine Abfrage durch, um festzustellen, ob eine physikalische Adresse eines ungelöschten Blocks zu der Liste gelöschter Blöcke hinzugefügt wurde. Wenn eine solche physikalische Adresse hinzugefügt wurde, löscht die Löschsteuereinheit 24 den durch die physikalische Adresse angegebenen löschbaren Block.
  • Die Modifiziersteuereinheit 27 liest Daten aus dem nicht flüchtigen Speicher 1 in den Arbeitsspeicher 3 und modifiziert die Daten, während sie im Arbeitsspricher 3 gehalten werden, bevor die modifizierten Daten aus dem Arbeitsspeicher 3 in den nicht flüchtigen Speicher 1 geschrieben werden, wenn ein Schreibbefehl zum Modifizieren eines löschbaren Blocks, in den bereits Daten geschrieben sind, empfangen wird. Die von der Modifiziersteuereinheit 27 durchgeführte Modifizierverarbeitung wird durch kooperative Verarbeitung mit der Zuord nungsänderungseinheit 24 verwirklicht. Der Fluss der durch die Modifiziersteuereinheit 27 durchgeführten Datenmodifizierverarbeitung wird in zeitlicher Folge in 20 gezeigt.
  • In dem in 20A gezeigten Anfangszustand sind Daten gegenwärtig in schraffierten Blöcken gespeichert (Blöcke mit physikalischen Adressen 001, 002, 004, 007 bis 015), und die restlichen Blöcke 003, 005 und 006 sind gelöscht worden. Physikalische Adressen 003, 005 und 006, die gelöschte Blöcke darstellen, sind in der Liste gelöschter Blöcke angeordnet. In einer Adressen-Entsprechungstabelle, die Entsprechungen zwischen logischen und physikalischen Adressen angibt, entsprechen die logischen Adressen 001, 002, 003, 004 und 005 jeweils physikalischen Adresen 001, 002, 003, 004 und 005.
  • Wenn von der Zugriffsvorrichtung 200 ein Schreibbefehl ausgeben wird, der angibt, dass eine anderer Wert in einen löschbaren Block mit der logischen Adresse 001 zu schreiben ist, überträgt die Schreibsteuereinheit 25 die in den Block mit der logischen Adresse 001 geschriebenen Daten von dem nicht flüchtigen Speicher 1 in den Arbeitsspricher 3 (siehe Pfeil (5) Lesen in 20A). Dann modifiziert die Schreibsteuereinheit 25 die in den Block mit der logischen Adresse 001 geschriebenen Daten, während dieser Block im Arbeitsspeicher 3 gehalten wird (siehe Pfeil (2) Modifizieren in 20A).
  • Als Nächstes liest die Modifiziersteuereinheit 27 eine physikalische Adresse 003 am Anfang der Liste gelöschter Blöcke, wie durch einen Pfeil BN1 gezeigt, und schreibt Daten in den durch die physikalische Adresse 003 angegebenen Block, wie durch Pfeil (3) Schreiben gezeigt. Dann ordnet in 20C die Modifiziersteuereinheit 27 die physikalische Adresse 001, deren entsprechender Block gelöscht werden soll, in der Liste gelöschter Blöcke an, wie durch Pfeil (4) gezeigt.
  • Zuletzt tauscht die Modifiziersteuereinheit 27 logische Adresse/physikalische Adresse Entsprechungen aus, wie in 20D gezeigt. Hier wird die physikalische Adresse 003 der logischen Adresse 001 zugeordnet, und die physikalische Adresse 001 wird der logischen Adresse 003 zugeordnet. In der logischen Adresse 001 können daher Daten überschrieben werden, indem Daten in die physikalische Adresse 003 geschrieben und dann die Entsprechungen zwischen logischen und physikalischen Adressen gewechselt werden.
  • Das Folgende ist eine Erklärung der inneren Struktur der Zugriffsvorrichtung 200. 21 zeigt eine innere Struktur einer Dateisystem-Betriebseinheit 9 in der Zugriffsvorrichtung 200 der dritten Ausführung. Die in der Zeichnung gezeigte Dateisystem-Betriebseinheit 9 enthält eine Dateilöscheinheit 28 und eine Vor-Löschen-Steuereinheit 29.
  • Die Dateilöscheinheit 28 löscht Dateien durch Aktualisieren einer aus dem Primärspeicher 7 gelesenen FAT und Schreiben der aktualisierten FAT in die Halbleiter-Speicherkarte 100. Wenn das Anwendungsprogramm 8 eine Anweisung zum Löschen einer Datei ausgibt, führt die Löscheinheit 28 die Dateilöschung aus, indem FAT-Einträge, die Clustern entsprechen, die Abschnitte dieser Datei speichern, auf '0' gesetzt werden, um anzugeben, dass diese Cluster unbenutzt sind. Die Cluster (löschbare Blöcke), die Dateiabschnitte speichern, sind jedoch nicht in einen leeren Zustand zurückgebracht worden, sodass die Cluster zuerst gelöscht werden müssen, bevor eine andere Datei in den gleichen Clustern aufgezeichnet werden kann. Die für die Löschverarbeitung benötigte Menge an Zeit nimmt daher proportional mit Zunahmen in der Zahl von Malen zu, die eine alte Datei gelöscht und eine neue Datei aufgezeichnet wird.
  • Die Vor-Löschen-Steuereinheit 29 gibt einen Status-Erlangen-Befehl an die Halbleiter-Speicherkarte 100 aus, um sie anzuweisen, die Liste von freiem gelöschten Speicher zu lesen, während sie auf eine Anweisung von dem Anwendungsprogramm 8 wartet. Sobald der Befehl erteilt und die Liste von freiem gelöschten Speicher ausgegeben ist, empfängt die Vor-Löschen-Steuereinheit 29 die ausgegebene Freiliste und vergleicht sie mit der FAT, um löschbare Blöcke zu spezifizieren, die Clustern entsprechen, die in der FAT als unbenutzt eingetragen sind. (Wenn ein löschbarer Block eine Vielzahl von Clustern enthält, können nur gänzlich aus unbenutzten Clustern gebildete löschbare Blöcke spezifiziert werden). Von diesen löschbaren Blöcken werden Blöcke, die nicht in der Liste gelöschter Blöcke vorhanden sind, ebenfalls spezifiziert. Die Blöcke sind löschbare Blöcke, die sowohl unbenutzt als auch ungelöscht sind, und die Vor-Löschen-Steuereinheit 29 gibt einen Löschbefehl an die Halbleiter-Speicherkarte 100 aus, der befiehlt, dass solche Blöcke gelöscht werden. Der Löschbefehl enthält eine logische Adressenspezifikation und eine Anweisung, eine physikalische Adresse, die dieser logischen Adresse entspricht, der Liste gelöschter Blöcke hinzuzufügen. Wenn durch Ausgeben eines solchen Löschbefehls eine physikalische Adresse zu der Liste gelöschter Blöcke hinzugefügt wird, wird der durch den Löschbefehl angegebene Block in der gleichen Weise wie andere unbenutzte und ungelöschte löschbare Blöcke gelöscht, wenn durch die Löschsteuereinheit 26 eine Abfage durchgeführt wird. Die gleiche Prozedur wird für alle unbenutzten und ungelöschten Blöcke durchgeführt. Die von der Vor-Löschen-Steuereinheit 29 durchgeführte detaillierte Prozedur wird unten mit Verweis auf das Flussdiagramm von 22 erklärt.
  • Wenn in dieser Ausführung die Vor-Löschen-Steuereinheit 29 aktiviert wird, geht sie zu der Schleifenverarbeitung von Schritten S21 bis S22. In Schritt S21 entscheidet die Vor-Löschen-Steuereinheit 29, ob eine Zugriffsanweisung von dem Anwendungsprogramm 8 emp fangen wurde, und entscheidet in Schritt S22, ob eine vorbestimmte Abfragezeit vergangen ist. Wenn von dem Anwendungsprogramm 8 eine Anweisung empfangen wurde, geht die Vor-Löschen-Steuereinheit 29 zu Schritt S23 und führt eine Dateisystemoperation und Zugriff der Halbleiter-Speicherkarte 100 entsprechend der Anweisung durch. Wenn die vorbestimmte Abfragezeit vergangen ist, geht die Vor Löschen-Steuereinheit 29 zu Schritt S24 und gibt einen Status-Erlangen-Befehl zum Lesen der gelöschten Freiliste an die Halbleiter-Speicherkarte 100 aus. Danach befindet sich in Schritt S25 die Vor-Löschen-Steuereinheit 29 in einem Wartezustand, um auf das Lesen der Liste gelöschter Blöcke zu warten. Sobald die Liste gelöschter Blöcke gelesen ist, spezifiziert die Vor-Löschen-Steuereinheit 29 in Schritt S26 logische Adressen für alle löschbaren Blöcke, die aus Clustern bestehen, die in der FAT als unbenutzt eingetragen und in der Liste gelöschter Blöcke nicht vorhanden sind.
  • In Schritt S27 entscheidet die Vor-Löschen-Steuereinheit 29, ob unbenutzte löschbare Blöcke, die noch nicht gelöscht wurden, existieren, und kehrt, wenn kein solcher Block existiert, sofort zu der Schleifenverarbeitung von Schritten S21 bis S22 zurück. Wenn solche Blöcke existieren, führt die Vor-Löschen-Steuereinheit 29 die Schleifenverarbeitung von Schritten S28 bis S30 durch. Mit anderen Worten, die Vor-Löschen-Steuereinheit 29 erteilt Löschbefehle an die Halbleiter-Speicherkarte 100, die das Löschen von Daten an jeder der physikalischen Adressen für die unbenutzten und in Schritt S26 bis jetzt ungelöschte löschbare spezifizierten Blöcke fordern. Sobals diese Befehle erteilt sind, werden die physikalischen Adressen für jeden dieser Blöcke der Liste gelöschter Blöcke hinzugefügt und dem Löschen unterzogen.
  • Das Folgende ist eine ausführlichere Erkärung der obigen Arbeitsweise der Vor-Löschen-Steuereinheit 29, beschrieben mit Verweis auf 23A und 23B. In einem in 23A gezeigten Ausgangszustand wird eine Adresse 0001 für einen löschbaren Block als in Gebrauch befindlich in die FAT gestellt, und physikalische Adressen 0003, 0005 und 0006 werden in der Liste gelöschter Blöcke als Adressen von gelöschten Blöcken angeordnet. Daten werden in dem Dateisystem in Blöcken gespeichert, die in der Zeichnung schraffiert sind (Adressen 0000, 0001, 0002, 0004). Wenn in diesem Zustand keine Anweisung von dem Anwendungsprogramm 8 erteilt wird und die vorbestimmte Abfragezeit vergangen ist (Nein in Schritt S21, Ja in Schritt S22), liest die Dateisystem-Betriebseinheit 9 in der Zugriffsvorrichtung 200 die Liste gelöschter Blöcke durch Ausgeben eines Status-Erlangen-Befehls an die Halbleiter-Speicherkarte 100 (Schritt S24) und vergleicht die gelesene Liste gelöschter Blöcke mit der FAT (Schritt S25). Als Folge dieses Vergleichs werden Blöcke, die als unbenutzt in der FAT eingetragen sind und deren logische Adressen in der Liste gelösch ter Blöcke nicht existieren (löschbare Blöcke mit Adressen 0000, 0002, 0004), spezifiziert (Schritt S26). Da diese Blöcke nicht in Gebrauch sind, erteilt die Dateisystem-Betriebseinheit 9 Löschbefehle an die Halbleiter-Speicherkarte 100, um sie diese löschbaren Blöcke löschen zu lassen (Schritte S28 bis S30). Folglich werden die Adressen 0000, 0002 und 0004 zu der Liste gelöschter Blöcke hinzugefügt, wie in 23B gezeigt, und die durch diese Adressen angegebenen Blöcke werden gelöscht.
  • In der obigen Ausführung liest die Zugriffsvorrichtung 200 die Liste gelöschter Blöcke aus der Halbleiter-Speicherkarte 100 und vergleicht die FAT mit der gelesenen Liste gelöschter Blöcke, um unbenutzte, löschbare Blöcke, die noch nicht gelöscht wurden, zu spezifizieren, und weist die Halbleiter-Speicherkarte 100 an, diese Blöcke zu löschen. Als Folge kann die Dateisystem-Betriebseinheit 9 unbenutzte, löschbare Blöcke, die noch ungelöscht sind, löschen, während sie auf eine Anweisung von dem Anwendungsprogramm 8 wartet, und das Löschen der unbenutzten Blöcke kann so effizienter durchgeführt werden.
  • Außerdem kann das Löschen unbenutzter Blöcke durchgeführt werden, wann immer die Zugriffsvorrichtung 200 frei ist, sodass die Gelegenheiten zur Durchführung des Blocklöschens stark erhöht werden. Als Folge besteht keine Gefahr mehr, dass in der Liste gelöschter Blöcke nicht genug physikalische Adressen vorhanden sind, und die Effizienz der Verarbeitung, die durchgeführt wird, wenn Blöcke modifiziert und überschrieben werden, wird in hohem Maße verbessert.
  • In der Zugriffsvorrichtung 200 dieser Ausführung wird die Liste gelöschter Blöcke aus der Halbleiter-Speicherkarte 100 gelesen und unbenutzte und bis jetzt ungelöschte Blöcke werden spezifiziert. Jedoch kann die Löschsteuereinheit 26 in der Zugriffssteuereinheit 2 der Halbleiter-Speicherkarte 100 durch Bezugnahme auf die FAT Blöcke spezifizieren, die sowohl unbenutzt als auch ungelöscht sind, und dann solche Blöcke löschen. Hier tauscht die Zugriffssteuereinheit 2 in der Liste gelöschter Blöcke enthaltene physikalische Adressen gegen logische Adressen aus und übergibt die ausgetauschten Adressen an die Zugriffsvorrichtung 200. Jedoch können die Liste gelöschter Blöcke und die Adressen-Entsprechungstabelle an die Zugriffsvorrichtung 200 übergeben und der Austausch physikalischer Adressen gegen logische Adressen in der Zugriffsvorrichtung 200 durchgeführt werden. Das Löschen von Daten kann durchgeführt werden, wenn eine Datei gelöscht wird, oder als Parallelverarbeitung, wenn ain anderer Befehl ausgeführt wird. Des Werteren kann andere Information, z.B. eine Liste ungelöschter Blöcke, die die physikalischen Adressen ungelöschter, löschbarer Blöcke verwaltet, anstelle der Liste gelöschter Blöcke verwendet werden, die die physikalischen Adressen von gelöschten, löschbaren Blöcken verwaltet. Diese Ausfüh rung wird unter Verwendung einer FAT beschrieben, aber Information kann als eine Liste oder in einem anderen ähnlichen Format gespeichert werden.
  • Vierte Ausführung
  • Die vierte Ausführung beschreibt eine Verbesserung, die realisiert wird, wenn die Verarbeitung der dritten Ausführung unter Verwendung einer Tabelle gelöschter Blöcke anstelle einer Liste gelöschter Blöcke durchgeführt wird. 24 zeigt eine innere Struktur einer Zugriffsvorrichtung 200 in der vierten Ausführung. Vergleicht man diese Zeichnung mit 19, so ist zu sehen, dass die Liste gelöschter Blöcke gegen eine Tabelle gelöschter Blöcke ausgetauscht wurde. Die Tabelle gelöschter Blocke in der vierten Ausführung besteht aus Einträgen, die jedem löschbaren Block entsprechen. Wenn ein Block gelöscht ist, wird der entsprechende Eintrag auf '1' gesetzt, und wenn ein Block ungelöscht ist, wird der entsprechende Eintrag auf '0' gesetzt. Die Tabelle gelöschter Blöcke drückt den Löschzustand jedes löschbaren Blocks aus, indem entweder '1' oder '0' in die Tabelle gelöschter Blöcke eingetragen wird.
  • Als Folge des Ersetzens der Liste gelöschter Blöcke durch die Tabelle gelöschter Blöcke unscheidet sich die von der Schreibsteuereinheit 25 und der Löschsteuereinheit 26 in der vierten Ausführung durchgeführte Verarbeitung von der in der dritten Ausführung durchgeführten in folgender Hinsicht.
  • Wenn ein Schreibbefehl von der Zugriffsvorrichtung 200 erzeugt wird, nimmt die Schreibsteuerung 25 in der vierten Ausführung Bezug auf die Tabelle gelöschter Blöcke und entscheidet, ob das durch den Befehl spezifizierte Schreibziel gelöscht ist, und ob es ein unbenutzter Block ist. Dann, wenn der Schreibzielblock ein ungelöschter Block ist, lässt die Schreibsteuereinheit 25 die Löschsteuereinheit 26 den Block löschen, bevor neue Daten in den Block geschrieben werden. Mit anderes Worten, die Schreibsteuereinheit 25 der vierten Ausführung löscht Daten, bevor Daten geschrieben werden.
  • Als Nächstes wird die Verarbeitung der Vor-Löschen-Steuereinheit 29 in der vierten Ausführung erklärt. Die Vor-Löschen-Steuereinheit 29 löscht löschbare Blöcke, während sie auf Anweisungen von dem Anwendungsprogramm 8 wartet. Die Löschprozedur ist die gleiche wie die in der dritten Ausführung beschriebene und wird in dem Flussdiagramm von 25 gezeigt. Dieses Flussdiagramm ist identisch mit dem von 22, abgesehen von der Tatsache, dass 'Liste gelöschter Blöcke' durch 'Tabelle gelöschter Blöcke' ersetzt wurde. Da es keine großen Abweichungen im Inhalt gibt, wird eine ausführliche Beschreibung hier wegge lassen. Im Folgenden wird die von der Vor-Löschen-Steuereinheit 29 durchgeführte Verarbeitung in der vierten Ausführung mit Verweis auf 26A und 26B beschrieben.
  • In einem in 26A gezeigten Anfangszustand wird ein Block mit einer Adresse 0001 als ein Block in Gebrauch verwaltet, und Blöcke mit Adressen 0003, 0005 und 0006 werden in der Tabelle gelöschter Blöcke als Blöcke verwaltet, aus denen Daten gelöscht wurden. Daten werden in dem nicht flüchtigen Speicher in Blöcken gespeichert, die in der Zeichnung schraffiert sind (Adressen 0000, 0001, 0002, 0004). Wenn in diesem Anfangszustand Blöcke existieren, die nicht in Gebrauch sind, aber Daten enthalten, und Schreibbefehle zum Schreiben von Daten in diese unbenutzten Blöcke erzeugt werden, ist eine Datenlöschverarbeitung erforderlich. Wenn in dieser Ausführung die Vor-Löschen-Steuereinheit 29 auf eine Anweisung von dem Anwendungsprogramm 8 wartet und die vorbestimmte Abfragezeit vergangen ist (Nein in Schritt S21, Ja in Schritt S22), liest die Vor-Löschen-Steuereinheit 29 die Tabelle gelöschter Blöcke durch Ausgeben eines Status-Erlangen-Befehls an die Halbleiter-Speicherkarte 100 (Schritt S24) und vergleicht die gelesene Tabelle gelöschter Blöcke mit der FAT (Schritt S25). Als Ergebnis dieses Vergleichs werden Blöcke gefunden, die in der FAT als unbenutzt eingetragen sind, und deren logische Adressen von der Tabelle gelöschter Blöcke nicht verwaltet werden (löschbare Blöcke mit Adressen 0000, 0002, 0004) (Schritt S26). In 26 wird sowohl in der FAT als auch der Tabelle gelöschter Blocke '0' für Blöcke mit Adressen 0000, 0002 und 0004 eingetragen, sodass diese Blöcke unbenutzte und bis jetzt ungelöschte Blöcke sind. Da diese Blöcke nicht in Gebrauch sind und daher Daten enthaften, die sicher gelöscht werden können, gibt die Vor-Löschen-Steuereinheit 29 Löschbefehle aus, um einen Wert '1' für jede der entsprechenden Adressen in die Tabelle gelöschter Blöcke zu stellen, der anzeigt, dass diese Blöcke zu löschen sind (Schritte S28 bis S30). Als Folge werden alle Daten in unbenutzten Blöcken gelöscht, und diese Blöcke werden dann von der Tabelle gelöschter Blöcke als gelöschte Blöcke verwaltet. Die später in dieser Beschreibung beschriebene Prozedur zum Schreiben von Daten durch Zuteilen unbenutzter Blöcke kann daher durchgeführt werden, ohne eine Löschverarbeitung zu erfordern, und das Schreiben von Daten mit hoher Geschwindigkeit kann erreicht werden.
  • Fünfte Ausführung
  • Die fünfte Ausführung schlägt eine Lösung für das Problem der Datei-Fragmentierung vor. Datei-Fragmentierung betrifft gewöhnlich den Prozess, bei dem eine Datei in eine Vielzahl von Dateiabschnitten geteilt wird und diese Abschnitte dann unzusammenhängend im Speicher gespeicher werden. Wenn eine Vielzahl von Dateiabschnitten auf einem Aufzeichnungsmedium, z.B. eine optische oder magnetische Platte, unzusammenhängend gespei chert sind, ist eine große Zahl von Platten-Suchvorgängen erforderlich, um die unzusammenhängend gespeicherten Dateiabschnitte zu lesen, und die Leseverarbeitungszeit wird verlängert. Um das durch eine solche Fragmentierung geschaffene Problem zu lösen, liest die Dateisystem-Betriebseinheit 9 die unzusammenhängend gespeicherten Dateiabschnitte und speichert sie wieder zusammenhängend im Speicher (Defragmentierung). Wenn die obige Verarbeitung durchgeführt wird, können die Dateiabschnitte, die eine Datei bilden, reibungslos gelesen werden, ohne viele Plattensuchvorgänge durchführen zu müssen, was es ermöglicht, Daten mit hoher Geschwindigkeit zu lesen. Dies vollendet die Zusammenfassung der Lösung, die bereitgestellt wird, um das Problem der Fragmentierung in Platten zu lösen. Als Nächstes wird die Fragmentierung betrachtet, die in der Halbleiter-Speicherkarte 100 auftritt. Platten-Suchvorgänge sind nicht erforderlich, wenn Daten aus der Halbleiter-Speicherkarte 100 gelesen werden, sodass, wenn die Dateiabschnitte unzusammenhängend gespeichert sind, keine Wahrscheinlichkeit besteht, dass die Verarbeitung aus diesem Grund verlängert werden wird.
  • Obwohl Platten-Suchvorgänge kein Problem sind, verursacht Fragmentierung jedoch, dass 1. Overhead, das erzeugt wird, wenn Befehle ausgegeben werden, und 2. Cache-Fehlschüsse, die erzeugt werden, wenn die FAT gelesen wird (beide werden unten ausführlicher beschrieben), erheblich zunehmen, wodurch die zum Lesen einer Datei benötigte Zeit verlängert wird.
  • 1. Overhead, das beim Ausgeben von Befehlen erzeugt wird
  • Die Auswirkung, die Fragmentierung auf das Overhead hat, das erzeugt wird, wenn Befehle ausgegeben werden, kann leichter verstanden werden, wenn sie mit Verweis auf 27A und 27B beschrieben wird. 27A zeigt eine Situation, wo eine 48 KB Datei in drei 16 KB Dateiabschnitte geteilt und zufällig in drei Bereichen gespeichert ist. 27B zeigt eine Situation, wo eine 48 KB Datei in aufeinanderfolgenden Speicherbereichen gespeichert ist. In 27A und 27B gibt die Dateisystem-Betriebseinheit 9 einen Lesebefehl in dem Format 'Read (add, size)' an den nicht flüchtigen Speicher aus, um einen Datenlesevorgang durchführen zu lassen. Hier stellt 'add' eine logische Adresse eines Leseziels dar, und 'size' stellt die Größe der zu lesenden Daten dar. Die von jedem Lesebefehl gebrauchte Zeit ist die Summe einer Datenlesezeit, die proportional zu der Länge der gelesenen Daten ist, und einer festen Overhead-Zeit ist, die zum Ausgeben des Lesebefehls benötigt wird. Bei der in 27A gezeigten Datenanordnung muss eine Datei 1 durch Ausgeben von drei Lesebefehlen gelesen werden: 'Read (0000, 16KByte)', 'Read(0002, 16KByte)' und 'Read(0004, 16KByte)'. Dies bedeutet, dass die zum Lesen dieser Datei benötigte Zeit 36 ms (=(8+4)×3) beträgt. Wenn andererseits Daten wie in 27B gezeigt angeordnet sind, können die ganzen 48 KB Daten für die Datei einfach durch Ausgeben eines Befehls 'Read(0000, 48KByte)' gelesen werden. Die zum Lesen der Datei benötigte Zeit beträgt folglich in diesem Fall 28 ms (=(8×3)+4). Es ist daher zu sehen, dass das beim Ausgeben von Befehlen erzeugte Ovehead proportional mit dem Grad der Zufälligkeit ansteigt, mit dem Dateiabschnitte gespeichert werden.
  • 2. FAT-Cache
  • Ein FAT-Cache ist ein vorwegnehmendes Lesen der in dem Systembereich der Halbleiter-Speicherkarte 100 angeordneten FAT in den internen Speicher der Zugriffsvorrichtung 200, das es erlaubt, auf die FAT mit hoher Geschwindigkeit durch Zugreifen auf den internen Speicher Bezug zu nehmen. Die FAT wird oft vorwegnehmend gelesen, wenn die Zugriffsvorrichtung 200 eine tragbare Einrichtung mit einem kleinen internen Speicher ist. Die FAT wird vorwegnehmend gelesen, indem Abschnitte der FAT sequenziell gelesen werden, die im Speicher aufeinanderfolgend gespeichert wurden. Wenn jedoch FAT-Fragmentierung er zeugt wurde, wird vorwegnehmendes Lesen der FAT das Lesen sowohl von Abschnitten, die die FAT enthalten, als auch von Abschnitten, die andere Daten enthalten, mit sich bringen. Wenn Daten anders als FAT-Abschnitte in den internen Speicher gelesen werden, wird eine große Menge an Daten, die nicht Gegenstand des vorweggenommenen Lesens sind, gelesen werden, wodurch ein Cache-Fehlschuss erzeugt wird. Wenn eine große Zahl solcher Cache-Fehlschüsse erzeugt wird, wird die Zahl von Lesevorgängen in den internen Speicher entsprechend zunehmen, und die zum Lesen der FAT benötigte Zeit wird somit verlängert.
  • Trotz des Vorhandenseins dieser zwei Probleme ist das Anwenden der gleichen Mittel, um Fragmentierung in der Halbleiter-Speicherkarte 100 aufzulösen, wie sie benutzt wurden, um das Problem in einer Platte zu lösen, keine kluge Vorgehensweise. Der Grund dafür ist, dass das Modifizieren von Daten, die in der Halbleiter-Speicherte 100 in Blöcken gespeichert sind, das Löschen der gespeicherten Daten erfordert, und dass ein solches Löschen eine längere Verarbeitungszeit benötigt als sie benötigt wird, wenn eine gleichwertige Verarbeitung auf einer Platte durchgeführt wird. In dieser Ausführung wird das Ändern der Entsprechungen zwischen physikalische Adressen und logischen Adressen als eine Gegenmaßname vorgeschlagen, um die Zunahmen in Befehls-Overheads und Cache-Fehlschüssen, die erzeugt werden, wenn Fragmentierung auftritt, zu bekämpfen. Mit anderen Worten, die Entsprechungen zwischen physikalischen Adressen und logischen Adressen werden so geändert, dass die Blöcke, in denen FAT-Abschnitte gespeichert werden, unter Verwendung logischer Adressen gezeigt werden können, ohne ihre physikalische Anordnung in dem Spei cher ändern zu müssen.
  • Wenn eine 48 KB Datei in drei 16 KB Abschnitte geteilt und in drei getrennten Speicherbereichen gespeichert wird, wie in 27A gezeigt, kann die Zugriffsvorrichtung 200 die in diesen drei Bereichen (Blöcken) gespeicherten Dateiabschnitte lesen, vorausgesetzt dass die logischen Adressen der Blöcke aufeinanderfolgend angegeben sind. Das Lesen erfolgt durch Ausgeben eines Lesebefehls, der die erste der Vielzahl logischer Adressen und die Datenlänge der Datei (hier 48 KB) angibt. Des Werteren kann, wenn die FAT in drei Abschnitte geteilt und in drei Speicherbereichen (Blöcken) gespeichert ist, die Zugriffsvorrichtung 200 unzusammenhängend gespeicherte FAT-Abschnitte in Reihenfolge in den internen Speicher lesen, vorausgesetzt dass die logischen Adressen der Blöcke aufeinanderfolgend angegeben sind. Hier erfolgt das Lesen durch Ausgeben von Lesebefehlen, die jede der aufeinanderfolgenden logischen Adressen wiederum als Leseziele angeben. Wenn eine solche Verarbeitung durchgeführt wird, werden keine Cache-Fehlschüüse mehr erzeugt. Selbst wenn eine Vielzahl von Datei- und FAT-Abschnitten zufällig in einer Vielzahl von Bereichen gespeichert werden, können daher diesen Bereichen aufeinanderfolgende logische Adressen zugeteilt werden, um das Problem von Overheads, die beim Ausgeben von Lesebefehlen erzeugt werden, zu lösen, und es zu ermöglichen, die Erzeugung von Cache-Fehlschüssen zu vermeiden.
  • Die von der Vor-Löschen-Steuereinheit 29 durchgeführte Verarbeitung zum Lösen des Problems der Fragmentierung unter Verwendung logischer Adressen wird mit Verweis auf die im Flussdiagramm von 28 gezeigte Prozedur erklärt. Auf 29, die tatsächliche Objekte zeigt, denen die Variablen t, u, v und y in dem Flussdiagramm entsprechen, wird während dieser Erklärung ebenfalls verwiesen. In Schritt S50 setzt die Vor-Löschen-Steuereinheit 29 Anfangswerte für die Variablen x und y (x=1, y=1). Dies bedeutet, dass eine Verabeitung auf einem ersten Abschnitt einer ersten Datei durchzuführen ist. Als Nächstes vergleicht die Vor-Löschen-Steuereinheit 29 in Schritt S51 Positionen einer logischen Adresse s, die einem Block entspricht, der eine y-ten Abschnitt einer x-ten Datei speichert, und einer logischen Adresse t, die einem Block entspricht, der einen y+1-ten Abschnitt der x-ten Datei speichert, um festzustellen, ob diese Blöcke zusammenhängend sind. Wenn, wie in 29A gezeigt, der y-te Abschnitt und der y+1-te Abschnitt in nicht zusammenhängenden löschbaren Blöcken in der Reihenfolge y -> y+1 gespeichert sind, Ja in Schritt S52, geht die Vor-Löschen-Steuereinheit 29 zu Schritt S54.
  • Wenn die Abschnitte in der Reihenfolge y+1 -> y gespeichert sind, wie in 29B gezeigt, geht die Vor-Löschen-Steuereinheit 29 zu Schritt S53 und teilt der logischen Adresse t eine physikalische Adresse u und der logischen Adresse s eine physikalische Adresse v zu. Als Folge ändert sich die Zuordnung von physikalischen Adressen zu logischen Adressen, wie durch die Pfeile rv1 und rv2 in 29B gezeigt. Als Nächstes entscheidet in Schritt S54 die Vor-Löschen-Steuereinheit 29, ob die logische Adresse des löschbaren Blocks, der den y-ten Abschnitt speichert, und die logische Adresse des löschbaren Blocks, der den y+1-ten Abschnitt speichert, aufeinanderfolgend sind. Wenn der löschbare Block, der den y+1-ten Abschnitt speichert, unmittelbar dem löschbaren Block folgt, der den y-ten Abschnitt speichert, wie in 29C gezeigt, ist eine Beziehung s+1=t hergestellt, sodass Schritt S54 Ja ist und die Verarbeitung zu Schritt S56 geht. Wenn die löschbaren Blöcke, die den y-ten Abschnitt und den y+1-ten Abschnitt speichern, unzusammenhängend sind, wird die Beziehung s+1=t nicht hergestellt, sodass Schritt S54 Nein ist und die Verarbeitung zu Schritt S55 geht. Hier wird, wenn eine physikalische Adresse, die einer logischen Adresse s+1 entspricht, w ist, in Schritt S55 die physikalische Adresse v des löschbaren Blocks, der den y+1-ten Abschnitt speichert, der logischen Adresse s+1 zugeteilt, und die physikalische Adresse w wird der logischen Adresse t zugeteilt. Wenn die Verarbeitung von Schritt S55 ausgeführt wird, werden, wenn der y-te und der y+1-te Abschnitt wie in 29D gezeigt gespeichert sind, Adressen-Entsprechungen wie durch die Pfeile rv3 und rv4 gezeigt geändert.
  • Sobald die obige Verarbeitung vollendet ist, entscheidet in Schritt S56 die Vor-Löschen-Steuereinheit 29, ob die Variable y eine letzte Abschnittsnummer ist. Wenn y nicht die letzte Nummer ist, inkrementiert die Vor-Löschen-Steuereinheit 29 in Schritt S57 y, und die Verarbeitung geht zu Schritt S51. Die Verarbeitung der Schritte S51 bis S57 wird für jeden der Abschnitte in einer x-ten Datei wiederholt, indem die Prüfung in Schritt S56 und die Inkrementierung von y in Schritt S57 durchgeführt werden.
  • Wenn andererseits Schritt S56 Ja ist, entscheidet in Schritt S58 die Vor-Löschen-Steuereinheit 29, ob x die letzte Dateinummer ist, und geht, wenn die Antwort Nein ist, zu Schritt S59, inkrementiert die Variable x (x <- x+1) und setzt in Schritt S60 die Variable y auf einen Anfangswert. Die Verarbeitung der Schritte S51 bis S57 wird daher für alle Dateien wiederholt, indem die Prüfung von Schritt S58 und die Inkrementierung der Variablen y in Schritt S59 durchgeführt werden.
  • Die in dieser Ausführung vorgeschlagene Lösung der durch Fragmentierung aufgeworfenen Probleme wird mit Verweis auf ein in 30 gezeigtes wirkliches Beispiel erklärt. In dem in 30A gezeigten Anfangszustand sind Datei 1-1/3, Datei 1-213 und Datei 1-3/4, die eine Datei 1 bilden, in löschbaren Blöcken gespeichert, die logischen Adressen 0000, 0001 und 0004 entsprechen. Außerdem sind Abschnitte Datei 2-1/4, Datei, 2-2/4, Datei 2-3/4 und 2-4/4, die eine Datei 2 bilden, in löschbaren Blöcken gespeichert, die logischen Adressen 0002, 0003, 0005 und 0006 entsprechen.
  • Der Abschnitt Datei 2-1/4 ist in einem löschbaren Block gespeichert, der einer logischen Adresse (logische Adresse 0002) entspricht, die der logischen Adresse 0001 folgt, in der der Dateiabschnitt Datei 1-2/3 gespeichert ist, und Abschnitt Datei 1-3/4 ist in einem löschbaren Block gespeichert, der einer logischen Adresse 0004 entspricht.
  • Wenn die Verarbeitung im Flussdiagramm von 28 auf das Beispiel in dieser Zeichnung angewandt wird, entsprechen Abschnitte Datei 1-1/3 und Datei 1-2/3 den logischen Adressen 0000 bzw. 0001, sodass diese Abschnitte in der gleichen Reihenfolge wie die entsprechenden logischen Adressen angeordnet sind und ihre Entsprechungen nicht ausgetauscht werden. Betrachtet man jedoch die Beziehung zwischen den Abschnitten Datei 1-2/3 und 1-3/3, so ist zu sehen, dass, während der löschbare Block, der den Abschnitt Datei 1-2/3 speichert, der logischen Adresse 0001 entspricht, der löschbare Block, der der nächsten logischen Adresse 0002 entspricht, Datei 2-1/4 ist. Schritt S54 ist folglich Nein, und die Verarbeitung geht zu Schritt S55. Dann werden in Schritt S55 die Entsprechung zwischen der logischen und physikalischen Adresse des löschbaren Blocks, der den Abschnitt Datei 1-3/3 speichert, und die Entsprechung zwischen der logischen und physikalischen Adresse des löschbaren Blocks, der den Abschnitt Datei 2-1/4 speichert, ausgetauscht. Als Folge können die Abschnitte Datei 1-2/3 und Datei 1-3/3 durch aufeinanderfolgende logische Adressen dargeboten werden, sodass der physikalischen Adresse 0002 des löschbaren Blocks, der den Dateiabschnitt Datei 2-1/4 speichert, die logische Adresse 0004 zugeteilt wird, und umgekehrt der physikalischen Adresse 0004 des löschbaren Blocks, der den Abschnitt Datei 1-3/3 speichert, die logische Adresse 0002 zugeteilt wird. Die Entsprechungen zwischen physikalischen und logischen Adressen, die dieser Änderung folgen, werden in 30B gezeigt. Sobald die Verarbeitung für Abschnitt Datei 1-3/3 vollendet ist, wird die Verarbeitung für Abschnitt Datei 2-2/4 durchgeführt. In 30B ist die Beziehung zwischen Abschnitten Datei 2-1/4 und Datei 2-2/4 so, dass Abschnitt Datei 2-1/4 in einem löschbaren Block gespeichert wird, der der logischen Adresse 0004 entspricht, und der nächste Abschnitt Datei 2-2/4 in einem löschbaren Block gespeichert wird, der der logischen Adresse 0003 entspricht. Die diesen Abschnitten zugeteilten logischen Adressen sollten daher in der umgekehrten Reihenfolge sein. Als Folge ist Schritt S52 Nein, und die Verarbeitung geht zu Schritt S53, wo die Reihenfolge von Adressen, die den Abschnitten Datei 2-1/4 und Datei 2-2/4 entsprechen ausgetauscht werden. Hier wird der physikalischen Adresse 0002, die einem löschbaren Block entspricht, der den Abschnitt Datei 2-1/4 speichert, die logische Adresse 0003 zugeteilt, und der physikalischen Adresse 0003, die dem löschbaren Block entspricht, der den Abschnitt Datei 2-2/4 speichert, wird die logische Adresse 0004 zugeteilt. Als Ergebnis dieser Verarbeitung werden die Dateiabschnitte, die die Dateien 1 und 2 bilden, alle durch aufeinanderfolgende logische Adressen angegeben.
  • In dieser Ausführung können, selbst wenn Dateiabschnitte in nicht aufeinanderfolgenden Speicherbereichen gespeichert werden, diesen Speicherbereichen aufeinanderfolgende logische Adressen zugeordnet werden, wodurch die Overheads, die erzeugt werden, wenn Lesebefehle ausgegeben werden, und Cache-Fehlschüsse, die auftreten, wenn die FAT und Dateien vorwegnehmend gelesen werden, verringert werden.
  • Sechste Ausführung
  • Die sechste Ausführung beschreibt eine Verbesserung, die angewandt wird, wenn eine Vielfalt von Inhalten in dem nicht flüchtigen Speicher über einen Verteilungsdienst aufgezeichnet und auf einem tragbaren Player wiedergegeben werden. In diesem Fall werden Dateien mit einer Vielfalt von Attributen wie Musik, Bilder, Spiele und Text wahrscheinlich auf der Halbleiter-Speicherkarte 100 gespeichert. Sollte es abhängig vom Typ der Datei Unterschiede dahin gehend geben, ob Dateien lesbar oder editierbar sind, muss die Dateisystem-Betriebseinheit 9 in der Zugriffsvorrichtung 200 vor dem Lesen oder Editieren den Inhalt der Datei prüfen. Wenn eine solche Prüfung jedes Mal erforderlich ist, wenn eine Datei gelesen oder editiert wird, wird die von der Dateisystem-Betriebseinheit 9 durchgeführte Verarbeitung kompliziert werden. Das bei digitalen Vielzweckplatten (DVDs) verwendete Universal-Plattenformat (UDF) legt folglich ein erweitertes Attribut für jede Datei fest, was es ermöglicht, den Typ der in einer Datei gespeicherten Daten auf einen Blick zu erkennen, ohne dass eine Notwendigkeit besteht, den Inhalt der Datei zu prüfen.
  • 31 zeigt ein Beispiel eines erweiterten Attributs. Das in der Zeichnung gezeigte Attribut ist ein neuer Typ vom erweitertem Attribut, der basierend auf einem erweiterten Implementierungsgebrauchsattribut in dem UDF gebildet wird. Das erweiterte Attribut umfasst einen Attributtyp 2000, einen Attribut-Untertyp 2010, einen reservierten Bereich 2020, eine Attributlänge 2030, eine Implementierungsgebrauchslänge 2040, einen Implementierungs-Identifizierer 2050 (diese sind identisch mit dem erweiterten Implementierungsgebrauchsattribut in dem UDF, sodass eine ausführlichere Erklärung hier weggelassen wird), sowie einen Implementierungsgebrauch 2060. Der Implementierungsgebrauch 2060 umfasst eine Vorspann-Prüfsumme 2061, die eine Prüfsumme für den Vorspannabschnitt des erweiterten Attributs speichert, einen Namen 2063, der einen Dateinamen speichert, und ein Flag 2062, das ein Dateiattribut speichert. Jedes Bit in dem Flag 2062 wird auf '0' oder '1' gesetzt, um ein Dateiattribut darzustellen. Das erste Bit von Flag 2062 gibt an, ob die entsprechende Datei eine Textdatei ist, das zweite Bit gibt an, ob die entsprechende Datei eine Bilddatei ist, und ein Bereich von dem dritten Bit an ist ein reservierter Bereich.
  • Wenn dieses erweiterte Attribut in der Halbleiter-Speicherkarte 100 gespeichert wird, tritt sofort eine Schwierigkeit zu Tage. Diese besteht dann, dass die Datenträger-Verwaltungsinformation der Halbleiter-Speicherkarte 100 mit der in dem ISO/IEC 9293 Standard dargelegten Datenstruktur, wie zuvor erklärt, kompatibel ist, sodass es keine Vorkehrung gibt, um jeder Datei ein erweitertes Attribut zuzuteilen.
  • In dieser Ausführung wird das erweiterte Attribut in wenigstens dem geschützten Bereich oder in einem Sicherungsbereich gespeichert. Der geschützte Bereich ist bereits in der zweiten Ausführung erklärt worden, sodass hier eine weitere Erklärung weggelassen wird. Der Sicherungsbereich wird getrennt von der normalen Partition im Benutzerbereich verwaltet. Wenn ein defekter Sektor im Benutzerbereich des nicht flüchtigen Speichers erscheint, wählt die Zuordnungsänderungseinheit 24 einen Sektor aus dem Sicherungsbereich aus, um den defekten Sektor zu ersetzen. 32 zeigt eine innere Struktur einer Halbleiter-Speicherkarte 100, die mit dem defekten Sektor versehen ist. Neue, erweiterte Attribute, die in einem FAT-Dateisystem nicht definiert werden können, können für jede Datei festgelegt werden, indem solche Attribute in dem geschützten Bereich oder dem Sicherungsbereich gespeichert werden. Da der von einem allgemeinen Benutzer benutzte Benutzerbereich und Benutzerdatenbereich ein herkömmliches Dateisystem verwendet, das von neu festgelegten erweiterten Attributen völlig unabhängig ist, ist das System außerdem mit anderen Systemen kompatibel. Da außerdem die Zugriffsvorrichtung 200 nur die für jeden Dateityp nötigen Operationen implementieren muss, werden durch die Zugriffsvorrichtung 200 weniger Operationen implementiert, wodurch es möglich ist, die Speichergröße der Zugriffsvorrichtung zu reduzieren. Da des Werteren der Dateityp jeder Datei bestimmt werden kann, indem nur auf die erweiterte Attributinformation und nicht auf den Inhalt der Datei Bezug genommen wird, können Hochgeschwindigkeits-Operationen verwirklicht werden.
  • Siebte Ausführung
  • Die siebte Ausführung schlägt vor, dass Dateien in einem FAT-Dateisystem als schreibverboten und leseverboten festgelegt werden, um den Dateischutz weiter zu verbessern. In einem herkömmlichen Dateisystem können Attribute für einzelne Dateien, z.B. schreibverboten und leseverboten, in den Dateieinträgen festgelegt werden. Die Dateisystem-Beriebseinheit 9 in der Zugriffsvorrichtung 200, wenn mit der Halbleiter-Speicherkarte 100 verbunden, liest und hält Datenträger-Verwaltungsinformation und nimmt Bezug auf das Dateiattribut einer bestimmten Datei, um zu entscheiden, ob die Datei gelesen oder beschrieben werden kann. Vorausgesetzt, dass das Anwendungsprogramm 8 in der Zugriffsvorrichtung 200 über die Dateisystem-Betriebseinheit 9 auf die Halbleiter-Speicherkarte 100 zugreift, sind die Attribute in den Dateieinträgen gültig. Wenn jedoch das Anwendungsprogramm 8 auf die Halbleiter-Speicherkarte 100 zugreift, indem die Dateisystem-Betriebseinheit 9 umgangen und ein Schreib- oder Lesevorgang durch Ausgeben eines Direktschreib- oder Lesebefehls an die Halbleiter-Speicherkarte 100 durchgeführt wird, werden irgendwelche in den Dateieinträgen festgelegten Schreibverbots- oder Leseverbots-Attribute bedeutungslos sein. Hier schlägt diese Ausführung vor, die Halbleiter-Speicherkarte 100 wie in 33 gezeigt zu konstruieren, sodass Schreibverbots- und Leseverbots-Attribute gültig sein werden, selbst wenn das Anwendungsprogramm 8 direkt auf die Halbleiter-Speicherkarte 100 zugreift. 33 zeigt eine innere Struktur einer Halbleiter-Speicherkarte 100 in der siebten Ausführung. Die Merkmale dieser Zeichnung sind, dass der nicht flüchtige Speicher 1 einen Sicherungsbereich aufweist, der eine Blockattributtabelle enthält.
  • Die Blockattributtabelle besteht aus besteht aus Einträgen, die in dem Datenträger reich enthaltenen löschbaren Blöcken entsprechen. Wenn ein Eintrag auf '1' gesetzt ist, ist der entsprechende Block schreibverboten, und wenn ein Eintrag auf '2' gesetzt ist, ist der Block leseverboten. Die Dateisystem-Betriebseinheit 9 und die in der fünften Ausführung offenbarte Zugriffssteuereinheit 2 führen Operationen auf der Blockattributtabelle und auf Dateieinträgen durch. Wenn das Anwendungsprogramm 8 die Dateisystem-Betriebseinheit 9 anweist, eine Datei zu öffnen, für die ein Attribut festgelegt wurde, setzt die Dateisystem-Betiebseinheit 9 das Attribut in dem Dateieintrag entsprechend dieser Datei. Wenn z.B. das Anwendungsprogramm 8 angewiesen wurde, eine Datei als schreibverboten festzulegen, wird das Attribut für den entsprechenden Dateieintrag als schreibverboten festgelegt. Wenn das Anwendungsprogramm 8 angewiesen wurde, eine Datei als leseverboten festzulegen, wird das Attribut für den entsprechenden Dateieintrag als leseverboten festgelegt. Wenn das Anwendungsprogramm 8 angewiesen wurde, ein verborgenes Attribut festzulegen, legt die Dateisystem-Betriebseinheit 9 ein Leseverbots-Attribut in dem entsprechenden Dateieintrag fest.
  • Wenn in dieser Weise Dateiattrubute in Dateieinträge gestellt werden, teilt die Dateisystem-Betriebseinheit 9 eine Datei in clusterisierte Abschnitte und zeichnet diese Abschnitte in einer Vielzahl von Clustern im Benutzerbereich auf. Nach dem Aufzeichnen der Dateiabschnitte in den Clustern stellt die Dateisystem-Betriebseinheit 9 die Dateiattribute in Einträge in der Blockattributtabelle, die jedem der löschbaren Blöcke entsprechen, in denen die Datei ge speichert ist. Wenn das Beschreiben der Datei verboten ist, stellt die Dateisystem-Betriebseinheit 9 ein Schreibverbotsattribut in Einträge, die jedem der Cluster entsprechen, die die Dateiabschnitte speichern, und stellt, wenn das Dateiattribut leseverboten ist, ein Leseverbotsattribut in Einträge, die jedem der Cluster entsprechen, die die Dateiabschnitte speichern. Wenn das Dateiattribut ein verborgenes Attribut ist, stellt die Dateisystem-Betriebseinheit 9 ein Leseverbotsattribut in Einträge, die jedem der Cluster entsprechen, die die Dateiabschnitte speichern.
  • Wenn die Datei in dieser Weise im Benutzerbereich aufgezeichnet ist, werden Daten entsprechend in der Blockattributtabelle gezeigten Attributen aus Blöcken gelesen bzw. in diese geschrieben. Mit anderen Worten, wenn ein Lesebefehl von der Zugriffsvorrichtung 200 ausgegeben wird, nimmt die Lesesteuereinheit 23 Bezug auf einen Eintrag in der Blockattributtabelle, der der Lesezieladresse entspricht. Wenn der Eintrag zeigt, dass Lesen erlaubt ist, liest die Dateisystem-Betriebseinheit 9 Daten aus dem durch die Lesezieladresse angegebenen Block, oder liest, wenn der Eintrag angibt, dass Lesen verboten ist, keine Daten aus dem durch die Lesezieladresse angegebenen Block.
  • Wenn ein Schreibbefehl von der Zugriffsvorrichtung 200 ausgegeben wird, nimmt die Schreibsteuereinheit 25 oder die Modifiziersteuereinheit 27 Bezug auf den Eintrag in der Blockattributtabelle, der der Schreibzieladresse entspricht. Wenn der Eintrag angibt, dass Schreiben erlaubt ist, schreibt die Schreibsteuereinheit 25 oder die Modiziersteuereinheit 27 Daten in den durch die Schreibzieladresse angegebenen Block, und schreibt, wenn der Eintrag angibt, dass Schreiben verboten ist, keine Daten in den durch die Schreibzieladresse angegebenen Block.
  • Diese Art von Schreib- und Lesesteuerung kann sowohl durchgeführt werden, wenn das Anwendungsprogramm 8 einen Schreib- oder Lesebefehl über die Dateisystem-Betriebseinheit 9 ausgibt als auch, wenn das Anwendungsprogramm 8 einen Schreib- oder Lesebefehl direkt unter Umgehung der Dateisystem-Betriebseinheit 9 ausgibt. Das Schreiben und Lesen von Blöcken kann daher dahin gehend eingeschränkt werden, ob die Zugriffsvorrichtung 200 Befehle über die Dateisystem-Betriebseinheit 9 ausgibt oder nicht. Die Dateisystem-Betriebseinheit 9 in der vorliegenden Ausführung wird mit Verweis auf ein wirkliches Beispiel in 34 erklärt. 34A sind in einer Datei 1 enthaltene Daten in löschbaren Blöcken mit Adressen 0000, 0002 und 0003 gespeichert, in einer Datei 2 enthaltene Daten sind in löschbaren Blöcken mit Adressen 0001 und 0004 gespeichert, in einer Datei 3 enthaltene Daten sind in einem löschbaren Block mit einer Adresse 0005 gespeichert, und in einer Datei 4 enthaltene Daten sind in einem löschbaren Block mit einer Adresse 0006 gespeichert. 34B zeigt eine Situation, wenn eine Datei 1, für die ein Schreibverbotsattribut festgelegt wurde, gespeichert wird. In einer Blockattributtabelle werden Einträge, die Blöcken entsprechen, die Abschnitte von Datei 1 speichern (Adressen 0000, 0002 und 0003) auf '1' gesetzt, um ein Schreibverbotsattribut anzugeben. Wenn die Blockattributtabelle in dieser Weise eingerichtet ist, wird die Schreibsteuereinheit 25 Befehle zum Ausführen um einer Schreibverarbeitung auf den Blöcken mit Adressen 0000, 0002 und 0003 zurückweisen.
  • 34C zeigt eine Situation, wenn eine Datei 2, für die ein Leseverbotsattribut festgelegt wurde, in dem nicht flüchtigen Speicher 1 gespeichert wird. In diesem Fall wird ein Flag, das ein Leseverbotsattribut anzeigt, in Einträgen in der Blockattributtabelle gesetzt, die der Datei 2 entsprechen. Dann wird die Datei 2 in eine Vielzahl von Abschnitten geteilt, und diese Abschnitte werden im Benutzerbereich in einer Vielzahl von Blöcken gespeichert.
  • Wenn die Dateiabschnitte von Datei 2 in Blöcken mit logischen Adressen 0001 und 0004 gespeichert werden, werden Einträge in der Blockattributtabelle, die diesen Blöcken entsprechen, auf'2' gesetzt, um ein Leseverbotsattribut anzugeben. Wenn die Blockattributtabelle in dieser Weise eingerichtet ist, weist die Lesesteuereinheit 23 Befehle zum Lesen von Daten aus Blöcken mit den Adressen 0001 und 0004 zurück.
  • In der obigen Ausführung können Leseverbots- und Schreibverbotsattribute, die jedem Block entsprechen, in der Halbleiter-Speicherkarte 100 festgelegt werden, sodass, selbst wenn das Anwendungsprogramm 8 unter Umgehung der Dateisystem-Betriebseinheit 9 direkt auf die Halbleiter-Speicherkarte 100 zugreift, ein Zugriff auf Dateien, der verboten ist, durch die Halbleiter-Speicherkarte 100 verhindert werden kann. Durch Festlegen von Leseverbots- und Schreibverbotsattributen in dieser Weise für Blöcke, die eine Datei speichern, kann daher der Schutz der Datei gewährleistet werden, und sollte die Datei urheberrechtsgeschützt sein, kann ein Urheberrechtsschutz ebenfalls erreicht werden.
  • In dieser Ausführung wird das Flag, das das Schreibverbotsattribut angibt, durch '1' dargestellt, und das Flag, das das Leseverbotsattribut angibt, wird als '2' dargestellt, aber diese sind nur Beispiel, und die Erfindung muss nicht auf solche Flags begrenzt sein. Außerdem wird in dieser Ausführung eine Blockattributtabelle verwendet, um jedem Block in dem nicht flüchtigen Speicher 1 Lese- und Schribverbotsattribute zuzuteilen, aber, vorausgesetzt dass für jeden einzelnen Block ein Attribut festgelegt werden kann, kann eine Liste oder eine ahnliche Struktur verwendet werden. In dieser Ausführung wird ein Verfahren zum Festlegen von Lese- und Schreibverbotsattributen in dem nicht flüchtigen Speicher 1 als Blockattribute beschrieben, aber Informationen anders als die in den Ausführungen beschriebenen können als Blockattribute verwendet werden. Beispiele umfassen das Verwalten von Blöcken derart, dass nur Benutzer mit einem Grundprivileg Zugriff erlangen können, oder jedem Block eine Benutzer-ID zu geben, und nur Benutzern im Besitz dieser ID zu erlauben, Zugriff zu erlangen, oder Festlegen von Zugriffsprivilegien auf Blöcke für jeden einzelnen Benutzer. In der obigen Erklärung des Dateisystems wird ein FAT-Dateisystem verwendet, aber ähnliche Wirkungen können unter Verwendung anderer herkömmlicher Dateisysteme erhalten werden, z.B. UDF, oder das in WindowsNTTM benutzte 'New Technology File System' (NTFS) oder ein maßgeschneidertes Dateisystem. Des Werteren beträgt in diesen Ausführungen die Zahl in einem löschbaren Block enthaltener Sektoren 32, aber dies ist nur ein Beispiel, und die Zahl von Sektoren in einem löschbaren Block kann größer oder kleiner sein.
  • Industrielle Anwendbarkeit
  • Die Halbleiter-Speicherkarte 100 in der oben erklärten Erfindung erhöht die Lebensdauer des nicht flüchtigen Speichers 1. Selbst wenn eine solche Halbleiter-Speicherkarte 100 über digitale Musikverteilung erlangte Musikinhalte aufzeichnet und das Aufzeichnen wiederholt, wobei diese Musikinhalte gelöscht werden, und dann andere Musikinhalte häufig aufgezeichnet werden, wird die Lebensdauer des nicht flüchtigen Speichers nicht verkürzt. Folglich kann eine einzige Halbleiter-Speicherkarte 100 wiederholt verwendet werden, um über digitale Musikdistribution erhaltene Musikinhalte aufzuzeichnen.

Claims (30)

  1. Zugriffsvorrichtung, die Dateizugriff auf eine Halbleiter-Speicherkarte durchführt, die einen Speicherbereich hat, der eine Vielzahl von Sektoren umfasst, indem Daten in jeder Gruppe von 2j Sektoren (wobei j 0 oder eine positive ganze Zahl ist) als ein Cluster verwaltet werden und ein oder mehrere Cluster als eine Datei verwaltet werden, wobei jede Gruppe von 2i aufeinanderfolgenden Sektoren in dem Speicherbereich einen Block bildet (wobei i 0 oder eine positive ganze Zahl ist) und ein Block die kleinste Einheit ist, an der Datenlöschung durchgeführt werden kann, wobei die Zugriffsvorrichtung umfasst: eine Berechnungseinheit, die so betrieben werden kann, dass sie eine Größe von Datenträger-Verwaltungsinformationen auf Basis einer Anzahl von Clustern in dem Speicherbereich berechnet, die zu verwalten sind, wobei die Datenträger-Verwaltungsinformationen eine Haupt-Boot-Partition, eine Partitionstabelle, Partitions-Boot-Sektor-Informationen, eine Dateizuordnungstabelle und einen Hauptverzeichniseintrag enthalten und die Dateizuordnungstabelle für jede Datei Verknüpfungen zwischen Clustern anzeigt, die der Datei entsprechen; eine Reservierungseinheit, die so betrieben werden kann, dass sie (1) einen ersten Bereich zum Aufzeichnen der Datenträger-Verwaltungsinformationen und (2) einen zweiten Bereich zum Aufzeichnen von Benutzerdaten reserviert, wobei der erste Bereich eine Datengröße hat, die größer ist als die berechneten Datenträger-Verwaltungsinformationen, und zwei oder mehr Blöcke enthält, und der zweite Bereich aus Blöcken besteht, die auf den ersten Bereich folgen; und eine Aufzeichnungseinheit, die so betrieben werden kann, dass sie Datenträger-Verwaltungsinformationen in dem ersten Bereich und Benutzerdaten in dem zweiten Bereich aufzeichnet und die Haupt-Boot-Partition sowie die Partitionstabelle in einem ersten Sektor eines ersten Blocks des ersten Bereiches aufzeichnet, eine vorgegebene Anzahl von Sektoren überspringt, und dann die Partitions- Boot-Sektor-Informationen, die Dateizuordnungstabelle sowie den Hauptverzeichniseintrag in folgenden Sektoren aufzeichnet, um ein Ende des ersten Bereiches auf ein Ende des Hauptverzeichniseintrages auszurichten, wobei die Partitions-Boot-Sektor-Informationen, die Dateizuordnungstabelle und der Hauptverzeichniseintrag in Blöcken aufgezeichnet werden, die sich von dem ersten Block unterscheiden.
  2. Zugriffsvorrichtung nach Anspruch 1, wobei: der erste Block des ersten Bereiches aus dem ersten Sektor und einer ersten Gruppe von Abschnitten zum Aufzeichnen eines Teils reservierter Informationen besteht und die Blöcke, die sich von dem ersten Block unterscheiden, aus Sektoren zum Aufzeichnen der Partitions-Boot-Sektor-Informationen, der Dateizuordnungstabelle und des Hauptverzeichniseintrages sowie einer zweiten Gruppe von Abschnitten zum Aufzeichnen eines anderen Teils der reservierten Informationen bestehen.
  3. Zugriffsvorrichtung nach Anspruch 1, wobei: die Berechnungseinheit so betrieben werden kann, dass sie eine Summe (SUM) berechnet, indem sie eine Anzahl von Sektoren summiert, die verwendet werden, um die Partitions-Boot-Sektor-Informationen, die Dateizuordnungstabelle und den Hauptverzeichniseintrag aufzuzeichnen; der erste Bereich aus m × 2j Sektoren besteht (wobei m eine positive ganze Zahl ist); die Reservierungseinheit so betrieben werden kann, dass sie den ersten Bereich reserviert, indem sie den Wert von m auf Basis von Gleichung 1 berechnet, NOM+SUM = 2j × m, (Gleichung 1)wobei NOM eine Anzahl von Sektoren ist; und die Aufzeichnungseinheit so betrieben werden kann, dass sie die vorgegebene Anzahl von Sektoren berechnet, indem sie von der Anzahl von Sektoren NOM 1 subtrahiert.
  4. Zugriffsvorrichtung nach Anspruch 3, wobei die Aufzeichnungseinheit so betrieben werden kann, dass sie die Anzahl von Sektoren NOM in der Partitionstabelle einstellt, wenn die Datenträger-Verwaltungsinformationen aufgezeichnet werden.
  5. Zugriffsvorrichtung nach Anspruch 3, wobei: die Anzahl von Sektoren, die verwendet werden, um die Dateizuordnungstabelle aufzuzeichnen, auf Basis der Anzahl von Clustern in dem Speicherbereich berechnet wird, die verwaltet werden müssen.
  6. Zugriffsvorrichtung nach Anspruch 5, wobei: die Dateizuordnungstabelle eine Vielzahl von Einträgen aufweist und eine Anzahl von Einträgen einer Anzahl von Clustern entspricht, die in dem zweiten Bereich aufzuzeichnen sind, und jeder Eintrag eine Verknüpfung mit einem anderen Cluster in ein und derselben Datei zeigt; die Zugriffsvorrichtung umfasst: eine Empfangseinheit, die so betrieben werden kann, dass sie Einstellungen für die Gesamtzahlen von Sektoren und Clustern in dem Speicherbereich empfängt; die Berechnungseinheit enthält: eine erste Berechnungseinheit, die so betrieben werden kann, dass sie eine Gesamtzahl von Clustern berechnet, indem sie die Gesamt-Sektorzahl durch die Anzahl von Sektoren 2j dividiert, und eine Größe der Dateizuordnungstabelle berechnet, indem sie die Gesamtzahl von Clustern mit einer Eintritts-Bitlänge multipliziert, und die Reservierungseinheit enthält: eine zweite Berechnungseinheit, die so betrieben werden kann, dass sie eine Summe (SUM) berechnet, indem sie die Größe der Dateizuordnungstabelle zu der Anzahl von Sektoren addiert, die die Partitions-Boot-Sektor-Informationen bzw. den Hauptverzeichniseintrag bilden, und den Wert von m berechnet, indem sie die Summe (SUM) in Gleichung 1 einsetzt.
  7. Zugriffsvorrichtung nach Anspruch 6, wobei: der Speicherbereich einen geschützten Bereich, auf den nur eine Vorrichtung zugreifen kann, die an die Halbleiter-Speicherkarte angeschlossen ist, wenn eine Authentizität der angeschlossenen Vorrichtung bestätigt worden ist, und einen Benutzerdatenbereich enthält, auf den die angeschlossene Vorrichtung unabhängig davon zugreifen kann, ob die Authentizität der angeschlossenen Vorrichtung bestätigt worden ist oder nicht; die Empfangseinheit so betrieben werden kann, dass sie von einer Quelle außerhalb der Zugriffsvorrichtungen Einstellungen für die Anzahl von Sektoren und Clustern empfängt, die jeweils dem geschützten Bereich und dem Benutzerdatenbereich zuzuordnen sind; die erste Berechnungseinheit so betrieben werden kann, dass sie eine Größe einer Dateizuordnungstabelle jeweils für den geschützten Bereich und den Benutzerdatenbereich auf Basis der empfangenen Einstellungen berechnet, und die zweite Berechnungseinrichtung so betrieben werden kann, dass sie zwei Summen (SUM) jeweils für den geschützten Bereich bzw. den Benutzerdatenbereich berechnet, indem jeweils sie die Größe des geschützten Bereiches und die Größe des Benutzerdatenbereiches zu der Anzahl von Sektoren, die die Partitions-Boot-Sektor-Informationen bilden, und der Anzahl von Sektoren, die den Hauptverzeichniseintrag bilden, addiert und den Wert von m jeweils für den geschützten Bereich und den Benutzerdatenbereich berechnet, indem sie jede der Summen (SUM) in Gleichung 1 einsetzt.
  8. Zugriffsvorrichtung nach Anspruch 1, wobei: Cluster in dem geschützten Bereich sich von Clustern in dem Benutzerdatenbereich hinsichtlich der Größe unterscheiden.
  9. Zugriffsvorrichtung nach Anspruch 6, wobei die Aufzeichnungseinheit so betrieben werden kann, dass sie durchführt: (a) eine erste Verarbeitung zum Aufzeichnen von Benutzerdaten, die in eine Vielzahl von Abschnitten unterteilt sind, in dem zweiten Bereich als eine Vielzahl von Clustern, wobei jeder Abschnitt in einem der Vielzahl von Clustern in dem zweiten Bereich aufgezeichnet wird; (b) eine zweite Verarbeitung zum Setzen einer Vielzahl von Einträgen in der Dateizuordnungstabelle, wobei jeder Eintrag eine Verknüpfung zwischen Clustern zeigt, und (c) eine dritte Verarbeitung zum Aufzeichnen eines Dateinamens und einer Positionsinformation, die eine Position eines ersten Clusters in der Datei anzeigt, in den Hauptverzeichniseintrag.
  10. Zugriffsvorrichtung nach Anspruch 9, wobei: ein Teil des Dateinamens in dem Benutzerdatenbereich aufgezeichnet wird.
  11. Aufzeichnungsmedium, das ein Programm in einem computerlesbaren Format aufzeichnet, das dazu dient, einen Computer zu veranlassen, Dateizugriff auf eine Halbleiter-Speicherkarte durchzuführen, die einen Speicherbereich aufweist, der eine Vielzahl von Sektoren umfasst, indem Daten in jeder Gruppe von 2j Sektoren (wobei j 0 oder eine positive ganze Zahl ist) als ein Cluster verwaltet werden und ein oder mehrere Cluster als eine Datei verwaltet werden, wobei jede Gruppe von 2i aufeinanderfolgende Sektoren in dem Speicherbereich einen Block bildet (wobei i 0 oder eine positive ganze Zahl ist) und ein Block eine kleinste Einheit ist, an der Datenlöschung durchgeführt werden kann, wobei das Aufzeichnungsmedium den Computer veranlasst, die folgenden Schritte durchzuführen: einen Berechnungsschritt des Berechnens der Größe von Dateiträger-Verwaltungsinformationen auf Basis einer Anzahl von Clustern in dem Speicherbereich, die zu verwalten sind, wobei die Dateiträger-Verwaltungsinformationen eine Haupt-Boot-Partition, eine Partitionstabelle, Partitions-Boot-Sektor-Informationen, eine Dateizuordnungstabelle und einen Hauptverzeichniseintrag enthalten und die Dateizuordnungstabelle für jede Datei Verknüpfungen zwischen Clustern anzeigt, die der Datei entsprechen; einen Reservierungsschritt des Reservierens (1) eines ersten Bereiches zum Aufzeichnen der Datenträger-Verwaltungsinformationen, und (2) eines zweiten Bereiches zum Aufzeichnen von Benutzerdaten, wobei der erste Bereich eine Datengröße hat, die größer ist als die berechneten Datenträger-Verwaltungsinformationen, und zwei oder mehr Blöcke enthält, und der zweite Bereich aus Blöcken besteht, die auf den ersten Bereich folgen; und einen Aufzeichnungsschritt des Aufzeichnens von Datenträger-Verwaltungsinformationen in dem ersten Bereich und Benutzerdaten in dem zweiten Bereich und des Aufzeichnens der Haupt-Boot-Partition sowie der Partitionstabelle in einem ersten Sektor eines ersten Blocks des ersten Bereiches, des Überspringens einer vorgegebenen Anzahl von Sektoren und des anschließenden Aufzeichnens der Partitions-Boot-Sektor-Informationen, der Dateizuordnungstabelle sowie des Hauptverzeichniseintrages in folgenden Sektoren, um ein Ende des ersten Bereiches auf ein Ende des Hauptverzeichniseintrages auszurichten, wobei die Partitions-Boot-Sektor-Informationen, die Dateizuordnungstabelle und der Hauptverzeichniseintrag in Blöcken aufgezeichnet werden, die sich von dem ersten Block unterscheiden.
  12. Aufzeichnungsmedium nach Anspruch 1, wobei: der erste Block des ersten Bereiches aus dem ersten Sektor und einer ersten Gruppe von Abschnitten zum Aufzeichnen eines Teils reservierter Informationen besteht und die Blöcke, die sich von dem ersten Block unterscheiden, aus Sektoren zum Aufzeichnen der Partitions-Boot-Sektor-Informationen, der Dateizuordnungstabelle und des Hauptverzeichnis-Eintrages sowie einer zweiten Gruppe von Abschnitten zum Aufzeichnen eines anderen Teils der reservierten Informationen bestehen.
  13. Aufzeichnungsmedium nach Anspruch 11, wobei: mit dem Berechnungsschritt eine Summe (SUM) berechnet wird, indem eine Anzahl von Sektoren summiert wird, die verwendet werden, um die Partitions-Boot-Sektor-Informationen, die Dateizuordnungstabelle und den Hauptverzeichniseintrag aufzuzeichnen; mit dem Rerservierungsschritt der erste Bereich reserviert wird, indem der Wert von m auf Basis von Gleichung 1 berechnet wird, NOM+SUM = 2j × m, (Gleichung 1)wobei NOM eine Anzahl von Sektoren ist; und mit dem Aufzeichnungsschritt die vorgegebene Anzahl von Sektoren berechnet wird, indem von der Anzahl von Sektoren NOM 1 subtrahiert wird.
  14. Aufzeichnungsmedium nach Anspruch 13, wobei mit dem Aufzeichnungsschritt die Anzahl von Sektoren NOM in der Partitionstabelle beim Aufzeichnen der Dateiträger-Verwaltungsinformationen eingestellt wird.
  15. Aufzeichnungsmedium nach Anspruch 13, wobei: die Anzahl von Sektoren, die verwendet werden, um die Dateizuordnungstabelle aufzuzeichnen, auf Basis der Anzahl von Clustern in dem Speicherbereich berechnet wird, die zu verwalten sind.
  16. Aufzeichnungsmedium nach Anspruch 15, wobei: die Dateizuordnungstabelle eine Vielzahl von Einträgen aufweist und eine Anzahl von Einträgen einer Anzahl von Clustern entspricht, die in dem zweiten Bereich aufzuzeichnen sind, und jeder Eintrag eine Verknüpfung zu einem anderen Cluster in ein und derselben Datei zeigt; das Programm die folgenden Schritte umfasst: einen Empfangsschritt des Empfangens von Einstellungen für die Gesamtzahl von Sektoren und Clustern in dem Speicherbereich; der Berechnungsschritt einschließt: einen ersten Berechnungsschritt des Berechnens einer Gesamtzahl von Clustern durch Dividieren der gesamten Sektorzahl durch die Anzahl von Sektoren 2j und des Berechnens einer Größe der Dateizuordnungstabelle durch Multiplizieren der Gesamtzahl von Clustern mit einer Eintritts-Bitlänge. der Reservierungsschritt einschließt: einen zweiten Berechnungsschritt des Berechnens einer Summe (SUM) durch Addieren der Größe der Dateizuordnungstabelle zu der Anzahl von Sektoren, die die Partitions-Boot-Sektor-Informationen bzw. den Hauptverzeichniseintrag bilden, und des Berechnens des Wertes von m durch Einsetzen der Summe (SUM) in Gleichung 1.
  17. Aufzeichnungsmedium nach Anspruch 16, wobei: der Speicherbereich einen geschützten Bereich, auf den nur eine Vorrichtung zugreifen kann, die an die Halbleiter-Speicherkarte angeschlossen ist, wenn eine Authentizität der angeschlossenen Vorrichtung bestätigt worden ist, und einen Benutzerdatenbereich enthält, auf den die angeschlossene Vorrichtung unabhängig davon zugreifen kann, ob die Authentizität der verbundenen Vorrichtung bestätigt worden ist oder nicht; mit dem Empfangsschritt von einer Quelle außerhalb der Zugriffsvorrichtung Einstellungen für die Anzahl von Sektoren und Clustern empfangen werden, die jeweils dem geschützten Bereich und dem Benutzerdatenbereich zuzuordnen sind; mit dem ersten Berechnungsschritt eine Größe einer Dateizuordnungstabelle jeweils für den geschützten Bereich und den Benutzerdatenbereich auf Basis der empfangenen Einstellungen berechnet wird; und mit dem zweiten Berechnungsschritt (1) zwei Summen (SUM) jeweils für den geschützten Bereich bzw. den Benutzerdatenbereich berechnet werden, indem jeweils die Größe des geschützten Bereiches und die Größe des Benutzerdatenbereiches zu der Anzahl von Sektoren, die die Partitions-Boot-Sektor-Informationen bilden, und der Anzahl von Sektoren, die den Hauptverzeichniseintrag bilden, addiert werden, und (2) der Wert von m für jeweils den geschützten Bereich und den Benutzerdatenbereich berechnet wird, indem jede der zwei Summen (SUM) in Gleichung 1 eingesetzt wird.
  18. Aufzeichnungsmedium nach Anspruch 17, wobei: Cluster in dem geschützten Bereich sich von den Clustern in dem Benutzerdatenbereich bezüglich der Größe unterscheiden.
  19. Initialisierungsverfahren zum Initialisieren eines Computers, um Dateizugriff auf eine Halbleiter-Speicherkarte durchzuführen, die einen Speicherbereich aufweist, der eine Vielzahl von Sektoren umfasst, indem Daten in jeder Gruppe von 2j Sektoren (wobei j 0 oder eine positive ganze Zahl ist) als ein Cluster verwaltet werden und ein oder mehrere Cluster als eine Datei verwaltet werden, wobei jede Gruppe von 2i aufeinanderfolgende Sektoren in dem Speicherbereich einen Block bildet (wobei i 0 und oder eine positive ganze Zahl ist) und ein Block eine kleinste Einheit ist, an der Datenlöschung durchgeführt werden kann, wobei das Initialisierungsverfahren die folgenden Schritte umfasst: einen Berechnungsschritt des Berechnens der Größe von Datenträger-Verwaltungsinformationen auf Basis einer Anzahl von Clustern in dem Speicherbereich, die zu verwalten sind, wobei die Datenträger-Verwaltungsinformationen eine Haupt-Boot-Partition, eine Partitionstabelle, Partitions-Boot-Sektor-Informationen, eine Dateizuordnungstabelle und einen Hauptverzeichniseintrag enthalten, und die Dateizuordnungstabelle für jede Datei Verknüpfungen zwischen Clustern anzeigt, die der Datei entsprechen; einen Reservierungsschritt des Reservierens (1) eines ersten Bereiches zum Aufzeichnen der Datenträger-Verwaltungsinformationen, und (2) eines zweiten Bereiches zum Aufzeichnen von Benutzerdaten, wobei der erste Bereich eine Datengröße hat, die größer ist als die berechneten Datenträger-Verwaltungsinformationen, und zwei oder mehr Blöcke enthält und der zweite Bereich aus Blöcken besteht, die auf den ersten Bereich folgen; und einen Aufzeichnungsschritt des Aufzeichnens von Datenträger-Verwaltungsinformationen in dem ersten Bereich und Benutzerdaten in dem zweiten Bereich und des Aufzeichnens der Haupt-Boot-Partition sowie der Partitionstabelle in einem ersten Sektor eines ersten Blocks des ersten Bereiches, des Überspringens einer vorgegebenen Anzahl von Sektoren und des anschließenden Aufzeichnens der Partitions-Boot-Sektor-Informationen, der Dateizuordnungstabelle sowie des Hauptverzeichniseintrages in folgenden Sektoren, um ein Ende des ersten Bereiches auf ein Ende des Hauptverzeichniseintrages auszurichten, wobei die Partitions-Boot-Sektor-Informationen, die Dateizuordnungstabelle und der Hauptverzeichniseintrag in Blöcken aufgezeichnet werden, die sich von dem ersten Block unterscheiden.
  20. Halbleiter-Speicherkarte, die einen Speicherbereich hat, der eine Vielzahl von Sektoren aufweist und Daten in jeder Gruppe von 2j Sektoren (wobei j 0 oder eine positive ganze Zahl ist) als ein Cluster und ein oder mehrere Cluster als eine Datei verwaltet, wobei jede Gruppe von 2i aufeinanderfolgenden Sektoren in dem Speicherbereich einen Block bildet (wobei i 0 oder eine positive ganze Zahl ist) und ein Block eine kleinste Einheit ist, an der Datenlöschung durchgeführt werden kann, wobei die Halbleiter-Speicherkarte umfasst: einen ersten Bereich, der zwei oder mehr Blöcke zum Aufzeichnen von Datenträger-Verwaltungsinformationen enthält; und einen zweiten Bereich, der aus Blöcken besteht, die auf den ersten Bereich folgen zum Aufzeichnen von Benutzerdaten; wobei die Datenträger-Verwaltungsinformationen eine Haupt-Boot-Partition, eine Partitionstabelle, Partitions-Boot-Sektor-Informationen, eine Dateizuordnungstabelle sowie ein Hauptverzeichniseintrag enthalten und die Dateizuordnungstabelle für jede Datei Verknüpfungen zwischen Clustern anzeigt, die der Datei entsprechen, und die Haupt-Boot-Partition sowie die Partitionstabelle in einem ersten Sektor eines ersten Blockes des ersten Bereiches aufgezeichnet werden, und, nachdem eine vorgegebene Anzahl von Sektoren übersprungen wurde, die Partitions-Boot-Sektor-Informationen, die Dateizuordnungstabelle sowie der Hauptverzeichniseintrag in folgenden Sektoren aufgezeichnet werden, um ein Ende des ersten Bereiches auf ein Ende des Hauptverzeichniseintrags auszurichten, wobei die Partitions-Boot-Sektor-Informationen, die Dateizuordnungstabelle und der Hauptverzeichnisantrag in Blöcken aufgezeichnet werden, die sich von dem ersten Block unterscheiden.
  21. Halbleiter-Speicherkarte nach Anspruch 20, wobei: der erste Block des ersten Bereiches aus dem ersten Sektor und einer ersten Gruppe von Abschnitten zum Aufzeichnen eines Teils reservierter Informationen besteht und die Blöcke, die sich von dem ersten Block unterscheiden, aus Sektoren zum Aufzeichnen der Partitions-Boot-Sektor-Informationen, der Dateizuordnungstabelle und des Hauptverzeichniseintrages sowie einer zweiten Gruppe von Abschnitten zum Aufzeichnen eines anderen Teils der reservierten Informationen bestehen.
  22. Halbleiter-Speicherkarte nach Anspruch 20, wobei: der erste Bereich aus m × 2j Sektoren besteht (wobei m eine positive ganze Zahl ist); die vorgegebene Anzahl von Sektoren berechnet wird, indem von einer Anzahl von Sektoren NOM, die die folgende Gleichung 1 erfüllt, 1 subtrahiert wird, NOM+SUM = 2j × m, (Gleichung 1)wobei SUM eine Summe ist, die berechnet wird, indem eine Anzahl von Sektoren summiert wird, die verwendet werden, um die Partitions-Boot-Sektor-Informationen, die Dateizuordnungstabelle und den Hauptverzeichniseintrag aufzuzeichnen.
  23. Halbleiter-Speicherkarte nach Anspruch 22, wobei: der Aufzeichnungseintrag die Anzahl von Sektoren NOM in der Partitionstabelle einstellt, wenn die Datenträger-Verwaltungsinformationen aufgezeichnet werden.
  24. Halbleiter-Speicherkarte nach Anspruch 22, wobei: die Anzahl von Sektoren, die verwendet werden, um die Dateizuordnungstabelle aufzuzeichnen, auf Basis der Anzahl von Clustern in dem Speicherbereich berechnet wird, die zu verwalten sind.
  25. Halbleiter-Speicherkarte nach Anspruch 24, wobei: die Dateizuordnungstabelle eine Vielzahl von Einträgen aufweist und eine Anzahl von Einträgen einer Anzahl von Clustern entspricht, die in dem zweiten Bereich aufzuzeichnen sind, und jeder Eintrag eine Verknüpfung zu einem anderen Cluster in ein und derselben Datei zeigt; eine Größe der Dateizuordnungstabelle berechnet wird, indem eine Gesamtzahl von Clustern berechnet wird, indem die Gesamt-Sektorzahl durch die Anzahl von Sektoren 2j dividiert wird und die Gesamtzahl von Clustern mit einer Eintritts-Bitlänge multipliziert wird, der Wert von m berechnet wird, indem eine Summe (SUM) berechnet wird, indem die Größe der Dateizuordnungstabelle zu der Anzahl von Sektoren addiert wird, die die Partitions-Boot-Sektor-Informationen bzw. den Hauptverzeichniseintrag bilden, und die Summe (SUM) in Gleichung 1 eingesetzt wird.
  26. Halbleiter-Speicherkarte nach Anspruch 25, wobei: die Vielzahl von Clustern in dem zweiten Bereich erzeugt werden, indem die Benutzerdaten unterteilt werden. die Vielzahl von Einträgen in der Dateizuordnungstabelle Verknüpfungen zwischen der Vielzahl von Clustern zeigen, und der Hauptverzeichniseintrag (1) einen Namen der Datei und (2) Positionsinformationen enthält, die eine Adresse des ersten Clusters von Clustern anzeigen, die die Datei bilden.
  27. Halbleiter-Speicherkarte nach Anspruch 26, wobei: ein Teil des Dateinamens in dem Benutzerdatenbereich aufgezeichnet ist.
  28. Halbleiter-Speicherkarte nach Anspruch 20, wobei: der Speicherbereich (1) einen geschützten Bereich enthält, auf den nur eine Vorrichtung zugreifen kann, die an die Halbleiter-Speicherkarte angeschlossen ist, wenn eine Authentizität der angeschlossenen Vorrichtung bestätigt worden ist.
  29. Halbleiter-Speicherkarte nach Anspruch 28, wobei: der geschützte Bereich die gleiche Datenstruktur wie der ungeschützte Bereich nach einem der Ansprüche 20–27 hat.
  30. Halbleiter-Speicherkarte nach einem der Ansprüche 20–29, wobei: Cluster in dem geschützten Bereich sich von den Clustern in dem Benutzerdatenbereich hinsichtlich der Größe unterscheiden.
DE60017870T 1999-10-21 2000-10-19 Eine halbleiterspeicherkarte-zugangsanordnung, ein rechnerlesbares aufzeichnungsmedium, initialisierungsverfahren,und eine halbleiterspeicherkarte Expired - Lifetime DE60017870T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP29963699 1999-10-21
JP29963699 1999-10-21
PCT/JP2000/007267 WO2001029670A2 (en) 1999-10-21 2000-10-19 A semiconductor memory card access apparatus, a computer-readable recording medium, an initialization method, and a semiconductor memory card

Publications (2)

Publication Number Publication Date
DE60017870D1 DE60017870D1 (de) 2005-03-10
DE60017870T2 true DE60017870T2 (de) 2005-06-23

Family

ID=17875164

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60017870T Expired - Lifetime DE60017870T2 (de) 1999-10-21 2000-10-19 Eine halbleiterspeicherkarte-zugangsanordnung, ein rechnerlesbares aufzeichnungsmedium, initialisierungsverfahren,und eine halbleiterspeicherkarte

Country Status (10)

Country Link
US (14) US6611907B1 (de)
EP (2) EP1498810B1 (de)
JP (1) JP3954790B2 (de)
CN (2) CN100442393C (de)
BR (1) BR0007239B1 (de)
CA (1) CA2355082C (de)
DE (1) DE60017870T2 (de)
MY (1) MY123682A (de)
RU (1) RU2257609C2 (de)
WO (1) WO2001029670A2 (de)

Families Citing this family (196)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100470575B1 (ko) 1995-01-31 2005-06-27 가부시끼가이샤 히다치 세이사꾸쇼 불휘발성메모리
US20040157612A1 (en) * 1997-04-25 2004-08-12 Minerva Industries, Inc. Mobile communication and stethoscope system
US7321783B2 (en) * 1997-04-25 2008-01-22 Minerva Industries, Inc. Mobile entertainment and communication device
JP4079506B2 (ja) * 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
CN100442393C (zh) 1999-10-21 2008-12-10 松下电器产业株式会社 半导体存储卡的访问装置、初始化方法和半导体存储卡
US6993130B1 (en) * 2000-02-04 2006-01-31 Xtec, Incorporated Methods and apparatus for mediametric data cryptoprocessing
JP2002268874A (ja) * 2001-03-07 2002-09-20 Toshiba Corp 乱数シード生成回路及びこれを備えたドライバ、並びに、sdメモリカードシステム
CN1287289C (zh) 2001-07-05 2006-11-29 松下电器产业株式会社 记录设备、介质以及方法
JP4151246B2 (ja) 2001-08-22 2008-09-17 ソニー株式会社 情報配信端末,コンピュータプログラムおよび情報提供方法
TW516000B (en) * 2001-09-12 2003-01-01 Winbond Electronics Corp Method for security protection of digital processing device and apparatus thereof
GB2411499B (en) * 2001-09-28 2006-02-08 Lexar Media Inc Method of writing data to non-volatile memory
PL351779A1 (en) * 2002-01-18 2003-07-28 Advanced Digital Broadcast Ltd Apparatus for storing data and method of subdividing te data storage area
US7206970B1 (en) * 2002-02-07 2007-04-17 Network Appliance, Inc. System and method for diagnostics execution and data capture in a storage system using nonvolatile memory
JP4082913B2 (ja) * 2002-02-07 2008-04-30 株式会社ルネサステクノロジ メモリシステム
JP3970070B2 (ja) * 2002-03-20 2007-09-05 富士通株式会社 自動イレーズ機能を有する不揮発性メモリ回路
JP2003296177A (ja) 2002-04-03 2003-10-17 Sony Corp 記録装置および方法、記録媒体、並びにプログラム
CN100447884C (zh) * 2002-04-05 2008-12-31 松下电器产业株式会社 记录装置、再现装置、记录方法和再现方法
JP4238514B2 (ja) * 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置
JP4206688B2 (ja) * 2002-04-15 2009-01-14 ソニー株式会社 データ処理装置及びデータ処理方法
JP3866635B2 (ja) * 2002-08-26 2007-01-10 株式会社東芝 メモリカード及び記憶領域切り替え方法
KR100973871B1 (ko) * 2002-10-17 2010-08-03 파나소닉 주식회사 파일 갱신 장치
US20060041731A1 (en) * 2002-11-07 2006-02-23 Robert Jochemsen Method and device for persistent-memory mangement
US7213119B2 (en) * 2002-12-05 2007-05-01 Canon Kabushiki Kaisha Inhibiting access to a portable storage device
AU2002353406A1 (en) * 2002-12-27 2004-07-22 Solid State System Co., Ltd. Nonvolatile memory unit with specific cache
CN100347731C (zh) 2003-01-31 2007-11-07 松下电器产业株式会社 半导体存储卡及对其进行控制的程序
CN100472644C (zh) 2003-02-04 2009-03-25 松下电器产业株式会社 半导体存储卡和控制方法
CN1809892B (zh) * 2003-06-19 2012-05-30 皇家飞利浦电子股份有限公司 通用存储装置的灵活格式化
DE60331823D1 (de) * 2003-07-14 2010-05-06 Em Microelectronic Marin Sa Schaltkreis für einen Mehrzwecktransponder und Verfahren zur Speicherverwaltung desselben
US20050027954A1 (en) * 2003-08-01 2005-02-03 Rothman Michael A. Method and apparatus to support the maintenance and reduction of FLASH utilization as it pertains to unused or infrequently referenced FLASH data
US7941554B2 (en) 2003-08-01 2011-05-10 Microsoft Corporation Sparse caching for streaming media
US7882510B2 (en) * 2003-08-06 2011-02-01 Microsoft Corporation Demultiplexer application programming interface
KR101087906B1 (ko) 2003-11-18 2011-11-30 파나소닉 주식회사 파일기록장치
EP1538507A1 (de) * 2003-12-02 2005-06-08 Axalto S.A. Flash-Speicher Zugriffsverfahren und -system
JP4608434B2 (ja) * 2003-12-03 2011-01-12 パナソニック株式会社 情報記録媒体のデータ処理装置及びデータ記録方法
US20050152251A1 (en) * 2004-01-08 2005-07-14 Victor Company Of Japan, Ltd. Method and apparatus for recording check data of file system on recording medium
JP2005222201A (ja) * 2004-02-04 2005-08-18 Matsushita Electric Ind Co Ltd メモリアクセス装置、及び半導体メモリカード
US20050182822A1 (en) * 2004-02-17 2005-08-18 Daniel Stuart W. Imaging device with memory device interface
JP2007527579A (ja) * 2004-02-23 2007-09-27 レクサー・メディア・インコーポレーテッド セキュリティで保護されたコンパクト・フラッシュ
KR100648243B1 (ko) * 2004-03-19 2006-11-24 삼성전자주식회사 낸드 플래시 메모리를 사용하는 메모리 카드
US20050257017A1 (en) * 2004-05-14 2005-11-17 Hideki Yagi Method and apparatus to erase hidden memory in a memory card
JP4661086B2 (ja) * 2004-05-24 2011-03-30 パナソニック株式会社 不揮発性記憶装置および不揮発性メモリの消去方法と書込み方法
SE527843C2 (sv) * 2004-06-03 2006-06-20 Roxtec Ab Brandskydd för kabelgenomföringar
JP2006004079A (ja) * 2004-06-16 2006-01-05 Sony Corp 記憶装置
JP4157501B2 (ja) * 2004-06-30 2008-10-01 株式会社東芝 記憶装置
JP2006023854A (ja) * 2004-07-06 2006-01-26 Sharp Corp 情報処理装置、記憶装置、記憶制御装置及びプログラム
JP2006023957A (ja) * 2004-07-07 2006-01-26 Sony Corp 半導体集積回路及び情報処理装置
US8607016B2 (en) * 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
US6967869B1 (en) * 2004-07-22 2005-11-22 Cypress Semiconductor Corp. Method and device to improve USB flash write performance
JP4667014B2 (ja) * 2004-11-18 2011-04-06 キヤノン株式会社 記憶管理装置及びその制御方法
JP4689247B2 (ja) * 2004-11-19 2011-05-25 キヤノン株式会社 カメラ及びその制御方法
US8321439B2 (en) 2004-12-17 2012-11-27 Microsoft Corporation Quick filename lookup using name hash
US8606830B2 (en) 2004-12-17 2013-12-10 Microsoft Corporation Contiguous file allocation in an extensible file system
US7873596B2 (en) 2006-05-23 2011-01-18 Microsoft Corporation Extending cluster allocations in an extensible file system
US9639554B2 (en) 2004-12-17 2017-05-02 Microsoft Technology Licensing, Llc Extensible file system
US20060242150A1 (en) * 2004-12-21 2006-10-26 Fabrice Jogand-Coulomb Method using control structure for versatile content control
US8396208B2 (en) * 2004-12-21 2013-03-12 Sandisk Technologies Inc. Memory system with in stream data encryption/decryption and error correction
US8051052B2 (en) * 2004-12-21 2011-11-01 Sandisk Technologies Inc. Method for creating control structure for versatile content control
US8504849B2 (en) 2004-12-21 2013-08-06 Sandisk Technologies Inc. Method for versatile content control
US20060239450A1 (en) * 2004-12-21 2006-10-26 Michael Holtzman In stream data encryption / decryption and error correction method
US20060242067A1 (en) * 2004-12-21 2006-10-26 Fabrice Jogand-Coulomb System for creating control structure for versatile content control
US20060242066A1 (en) * 2004-12-21 2006-10-26 Fabrice Jogand-Coulomb Versatile content control with partitioning
US20070180539A1 (en) * 2004-12-21 2007-08-02 Michael Holtzman Memory system with in stream data encryption / decryption
US8601283B2 (en) 2004-12-21 2013-12-03 Sandisk Technologies Inc. Method for versatile content control with partitioning
US20060242151A1 (en) * 2004-12-21 2006-10-26 Fabrice Jogand-Coulomb Control structure for versatile content control
JP5118494B2 (ja) * 2004-12-21 2013-01-16 サンディスク コーポレーション イン−ストリームデータ暗号化/復号の機能を有するメモリシステム
CN100541448C (zh) * 2004-12-22 2009-09-16 松下电器产业株式会社 电子设备、格式辨别系统和格式辨别方法
US7823214B2 (en) * 2005-01-07 2010-10-26 Apple Inc. Accessory authentication for electronic devices
US8321686B2 (en) 2005-02-07 2012-11-27 Sandisk Technologies Inc. Secure memory card with life cycle phases
US8108691B2 (en) 2005-02-07 2012-01-31 Sandisk Technologies Inc. Methods used in a secure memory card with life cycle phases
US8423788B2 (en) 2005-02-07 2013-04-16 Sandisk Technologies Inc. Secure memory card with life cycle phases
US20060200414A1 (en) * 2005-02-14 2006-09-07 Roberts Henry A Jr Methods of copy protecting software stored on portable memory
US8995547B2 (en) 2005-03-11 2015-03-31 Qualcomm Incorporated Systems and methods for reducing uplink resources to provide channel performance feedback for adjustment of downlink MIMO channel data rates
US8724740B2 (en) 2005-03-11 2014-05-13 Qualcomm Incorporated Systems and methods for reducing uplink resources to provide channel performance feedback for adjustment of downlink MIMO channel data rates
JP5318177B2 (ja) * 2005-03-31 2013-10-16 キヤノン株式会社 画像処理装置、画像処理装置の制御方法及びコンピュータプログラム
US7418531B2 (en) * 2005-05-04 2008-08-26 Pillar Data Systems, Inc. Quality of service for data storage volumes
JP4709583B2 (ja) * 2005-05-31 2011-06-22 株式会社東芝 データ送信装置およびデータ送信方法
US7748031B2 (en) 2005-07-08 2010-06-29 Sandisk Corporation Mass storage device with automated credentials loading
JP4781027B2 (ja) * 2005-07-15 2011-09-28 パナソニック株式会社 データ記録制御方法及びデータ記録システム
JP4679581B2 (ja) * 2005-07-29 2011-04-27 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及び不揮発性メモリのアドレス管理方法
KR100739722B1 (ko) * 2005-08-20 2007-07-13 삼성전자주식회사 플래시 메모리 관리 방법 및 플래시 메모리 시스템
US8073068B2 (en) 2005-08-22 2011-12-06 Qualcomm Incorporated Selective virtual antenna transmission
US20070041457A1 (en) 2005-08-22 2007-02-22 Tamer Kadous Method and apparatus for providing antenna diversity in a wireless communication system
US20070061597A1 (en) 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
US8966284B2 (en) 2005-09-14 2015-02-24 Sandisk Technologies Inc. Hardware driver integrity check of memory card controller firmware
JP4808016B2 (ja) * 2005-12-20 2011-11-02 日立オートモティブシステムズ株式会社 マイクロコンピュータの初期化装置および車載用制御装置
US7752391B2 (en) * 2006-01-20 2010-07-06 Apple Inc. Variable caching policy system and method
US20070174641A1 (en) * 2006-01-25 2007-07-26 Cornwell Michael J Adjusting power supplies for data storage devices
US7702935B2 (en) * 2006-01-25 2010-04-20 Apple Inc. Reporting flash memory operating voltages
US20070180186A1 (en) * 2006-01-27 2007-08-02 Cornwell Michael J Non-volatile memory management
US7861122B2 (en) * 2006-01-27 2010-12-28 Apple Inc. Monitoring health of non-volatile memory
US7426606B2 (en) * 2006-03-31 2008-09-16 Intel Corporation Method, apparatus and system for reverting FAT cluster number to file ID and offset of non-FAT flash file system
US20070230690A1 (en) * 2006-04-03 2007-10-04 Reuven Elhamias System for write failure recovery
US7835518B2 (en) * 2006-04-03 2010-11-16 Sandisk Corporation System and method for write failure recovery
JP4229140B2 (ja) * 2006-06-16 2009-02-25 ソニー株式会社 集積回路チップ、データ読み出し方法、データ書き込み方法、icカード、および携帯電話機
JP2008009933A (ja) * 2006-06-30 2008-01-17 Toshiba Corp 記憶装置とその制御方法
US8140843B2 (en) 2006-07-07 2012-03-20 Sandisk Technologies Inc. Content control method using certificate chains
US20080022395A1 (en) * 2006-07-07 2008-01-24 Michael Holtzman System for Controlling Information Supplied From Memory Device
US20080034440A1 (en) * 2006-07-07 2008-02-07 Michael Holtzman Content Control System Using Versatile Control Structure
US8266711B2 (en) * 2006-07-07 2012-09-11 Sandisk Technologies Inc. Method for controlling information supplied from memory device
US20080010458A1 (en) * 2006-07-07 2008-01-10 Michael Holtzman Control System Using Identity Objects
US8613103B2 (en) 2006-07-07 2013-12-17 Sandisk Technologies Inc. Content control method using versatile control structure
US8245031B2 (en) * 2006-07-07 2012-08-14 Sandisk Technologies Inc. Content control method using certificate revocation lists
US20080010449A1 (en) * 2006-07-07 2008-01-10 Michael Holtzman Content Control System Using Certificate Chains
US8639939B2 (en) 2006-07-07 2014-01-28 Sandisk Technologies Inc. Control method using identity objects
JP4651586B2 (ja) * 2006-07-11 2011-03-16 シャープ株式会社 録画再生装置
WO2008013228A1 (fr) * 2006-07-26 2008-01-31 Panasonic Corporation Contrôleur de mémoire, dispositif de stockage non-volatile, dispositif d'accès et système de stockage non-volatile
JP4955002B2 (ja) * 2006-08-04 2012-06-20 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP5014344B2 (ja) 2006-08-08 2012-08-29 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
CN101512931B (zh) 2006-09-06 2014-03-12 高通股份有限公司 编组天线的码字置换和精简反馈
JP2008070929A (ja) * 2006-09-12 2008-03-27 Matsushita Electric Ind Co Ltd メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
WO2008032711A1 (fr) * 2006-09-13 2008-03-20 Panasonic Corporation Contrôleur mémoire, dispositif de stockage non volatil, dispositif d'accès et système de stockage non volatil
TWI325113B (en) * 2006-10-13 2010-05-21 Data security device and the method thereof
US7515500B2 (en) * 2006-12-20 2009-04-07 Nokia Corporation Memory device performance enhancement through pre-erase mechanism
US7818701B1 (en) * 2006-12-22 2010-10-19 Cypress Semiconductor Corporation Memory controller with variable zone size
US20080158388A1 (en) * 2006-12-27 2008-07-03 Tomi Lahcanski Removable storage device providing automatic launch capability in an image processing system
US8423794B2 (en) 2006-12-28 2013-04-16 Sandisk Technologies Inc. Method and apparatus for upgrading a memory card that has security mechanisms for preventing copying of secure content and applications
JP4991320B2 (ja) * 2007-01-12 2012-08-01 株式会社東芝 ホスト装置およびメモリシステム
JP4978224B2 (ja) * 2007-02-08 2012-07-18 カシオ計算機株式会社 光電変換装置及びそれを備えた表示パネル
KR101395778B1 (ko) 2007-03-14 2014-05-19 삼성전자주식회사 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
US7913032B1 (en) 2007-04-25 2011-03-22 Apple Inc. Initiating memory wear leveling
US20080288712A1 (en) 2007-04-25 2008-11-20 Cornwell Michael J Accessing metadata with an external host
EP2177994A4 (de) * 2007-08-10 2013-08-21 Panasonic Corp Wechselbares medium, formatiereinrichtung, system, verfahren und programm
KR20090031102A (ko) * 2007-09-21 2009-03-25 삼성전자주식회사 이동식 저장 장치의 포맷 방법 및 장치
US7870351B2 (en) * 2007-11-15 2011-01-11 Micron Technology, Inc. System, apparatus, and method for modifying the order of memory accesses
US8073884B2 (en) * 2007-12-20 2011-12-06 Hewlett-Packard Development Company, L.P. System and method to derive high level file system information by passively monitoring low level operations on a FAT file system
JPWO2009096180A1 (ja) * 2008-01-30 2011-05-26 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
JP5025009B2 (ja) * 2008-02-15 2012-09-12 株式会社東芝 認証方法、ホスト計算機及び記録媒体
EP2261803B1 (de) * 2008-04-04 2021-07-07 Panasonic Corporation Zugangsvorrichtung, informationsaufzeichnungsvorrichtung, informationsaufzeichnungssystem, dateienverwaltungsverfahren und programm
US20090254729A1 (en) * 2008-04-07 2009-10-08 Skymedi Corporation Method of wear leveling for a non-volatile memory
CN101324862B (zh) * 2008-05-05 2010-06-02 青岛海信电器股份有限公司 闪存存储管理方法
US8074023B2 (en) * 2008-05-22 2011-12-06 Nuvoton Technology Corporation In-system programming to switch memory access from one area to another in memory cards
CN101630233B (zh) * 2008-07-17 2012-07-11 群联电子股份有限公司 用于闪存的数据存取方法、储存系统与控制器
TWI406175B (zh) * 2008-08-20 2013-08-21 Nuvoton Technology Corp 記憶卡以及用於記憶卡之方法
WO2010035124A1 (en) * 2008-09-29 2010-04-01 Sandisk Il Ltd. File system for storage device which uses different cluster sizes
US9104686B2 (en) 2008-12-16 2015-08-11 Sandisk Technologies Inc. System and method for host management of discardable objects
US8880776B2 (en) * 2008-12-16 2014-11-04 Sandisk Il Ltd. Data access at a storage device using cluster information
US9020993B2 (en) 2008-12-16 2015-04-28 Sandisk Il Ltd. Download management of discardable files
US9015209B2 (en) 2008-12-16 2015-04-21 Sandisk Il Ltd. Download management of discardable files
US9104618B2 (en) 2008-12-18 2015-08-11 Sandisk Technologies Inc. Managing access to an address range in a storage device
US8370603B2 (en) * 2008-12-23 2013-02-05 Apple Inc. Architecture for address mapping of managed non-volatile memory
TW201025002A (en) * 2008-12-26 2010-07-01 Asmedia Technology Inc Method of writing data into flash memory based on file system
US8205063B2 (en) * 2008-12-30 2012-06-19 Sandisk Technologies Inc. Dynamic mapping of logical ranges to write blocks
US8392687B2 (en) * 2009-01-21 2013-03-05 Micron Technology, Inc. Solid state memory formatting
US20100199060A1 (en) * 2009-02-04 2010-08-05 Panasonic Corporation Memory controller, nonvolatile memory module, access module, and nonvolatile memory system
US20100235473A1 (en) * 2009-03-10 2010-09-16 Sandisk Il Ltd. System and method of embedding second content in first content
US8321647B2 (en) * 2009-05-06 2012-11-27 Apple Inc. Multipage preparation commands for non-volatile memory systems
US8438453B2 (en) 2009-05-06 2013-05-07 Apple Inc. Low latency read operation for managed non-volatile memory
US8495332B2 (en) * 2009-07-24 2013-07-23 Apple Inc. Controller for optimizing throughput of read operations
TWI498954B (zh) * 2009-08-21 2015-09-01 Sumco Corp 磊晶矽晶圓的製造方法
US8489907B2 (en) 2009-09-16 2013-07-16 Apple Inc. Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller
US8838877B2 (en) * 2009-09-16 2014-09-16 Apple Inc. File system derived metadata for management of non-volatile memory
JP2011118623A (ja) * 2009-12-02 2011-06-16 Canon Inc データ同期装置
JP5558093B2 (ja) * 2009-12-25 2014-07-23 株式会社東芝 半導体装置及びメモリシステム
KR101467514B1 (ko) * 2010-05-14 2014-12-01 삼성전자 주식회사 사용자 응답 시간을 고려한 메모리 관리 장치 및 방법
JP5460486B2 (ja) * 2010-06-23 2014-04-02 インターナショナル・ビジネス・マシーンズ・コーポレーション データをソートする装置及び方法
US8549229B2 (en) 2010-08-19 2013-10-01 Sandisk Il Ltd. Systems and methods for managing an upload of files in a shared cache storage system
US8463802B2 (en) * 2010-08-19 2013-06-11 Sandisk Il Ltd. Card-based management of discardable files
US20120089765A1 (en) * 2010-10-07 2012-04-12 Huang Shih-Chia Method for performing automatic boundary alignment and related non-volatile memory device
JP2012084071A (ja) 2010-10-14 2012-04-26 Toshiba Corp デジタルコンテンツの保護方法、復号方法、再生装置、記憶媒体、暗号装置
WO2012089069A1 (zh) * 2010-12-29 2012-07-05 厦门松霖科技有限公司 能切换水路和调节流量的阀
EP2492816A1 (de) * 2011-02-25 2012-08-29 Siemens Aktiengesellschaft Verfahren zur Verwaltung des physikalischen Speichers einer Datenspeicherung und Datenspeicher-Verwaltungssystem
US8788849B2 (en) 2011-02-28 2014-07-22 Sandisk Technologies Inc. Method and apparatus for protecting cached streams
US9058212B2 (en) * 2011-03-21 2015-06-16 Microsoft Technology Licensing, Llc Combining memory pages having identical content
DE102011001430A1 (de) * 2011-03-21 2012-09-27 Wincor Nixdorf International Gmbh Verfahren zum Betreiben einer Geldkassette mit kundenspezifischen Schlüsseln
JP2012208584A (ja) * 2011-03-29 2012-10-25 Toshiba Corp 記憶装置およびプログラム
JP5077726B1 (ja) 2011-05-23 2012-11-21 Necインフロンティア株式会社 コンピュータ、その制御方法及びプログラム
CN102289451A (zh) * 2011-06-17 2011-12-21 奇智软件(北京)有限公司 文件或文件夹查找方法和装置
CN102314490B (zh) * 2011-08-16 2013-07-10 晨星软件研发(深圳)有限公司 一种Linux FAT文件系统修复方法及装置
US8661527B2 (en) 2011-08-31 2014-02-25 Kabushiki Kaisha Toshiba Authenticator, authenticatee and authentication method
JP5275432B2 (ja) 2011-11-11 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム
JP5204291B1 (ja) 2011-12-02 2013-06-05 株式会社東芝 ホスト装置、装置、システム
JP5112555B1 (ja) 2011-12-02 2013-01-09 株式会社東芝 メモリカード、ストレージメディア、及びコントローラ
JP5204290B1 (ja) * 2011-12-02 2013-06-05 株式会社東芝 ホスト装置、システム、及び装置
JP5100884B1 (ja) 2011-12-02 2012-12-19 株式会社東芝 メモリ装置
JP5275482B2 (ja) 2012-01-16 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム
CN103246617B (zh) * 2012-02-07 2016-08-17 宇龙计算机通信科技(深圳)有限公司 移动终端和基于Android系统的数据保存方法
JP5687639B2 (ja) * 2012-02-08 2015-03-18 株式会社東芝 コントローラ、データ記憶装置及びプログラム
US20140229657A1 (en) * 2013-02-08 2014-08-14 Microsoft Corporation Readdressing memory for non-volatile storage devices
US9201811B2 (en) 2013-02-14 2015-12-01 Kabushiki Kaisha Toshiba Device and authentication method therefor
US8984294B2 (en) 2013-02-15 2015-03-17 Kabushiki Kaisha Toshiba System of authenticating an individual memory device via reading data including prohibited data and readable data
US9336131B1 (en) * 2013-04-16 2016-05-10 Veritas Technologies, LLC Systems and methods for enabling virtual environments to mount non-native storage disks
US9678689B2 (en) * 2013-05-29 2017-06-13 Microsoft Technology Licensing, Llc Storage systems and aliased memory
JP6213040B2 (ja) * 2013-08-19 2017-10-18 富士通株式会社 半導体記憶装置および半導体記憶装置の制御方法
JP6017392B2 (ja) * 2013-09-27 2016-11-02 株式会社東芝 情報処理装置、ホストデバイス、及びシステム
US9785547B2 (en) * 2014-02-13 2017-10-10 Hitachi, Ltd. Data management apparatus and method
KR102196971B1 (ko) 2014-03-28 2020-12-31 삼성전자주식회사 스토리지 시스템, 그것의 쓰기 방지 수행 방법, 그리고 그것의 쓰기 방지 인증 방법
US9984007B2 (en) 2014-03-28 2018-05-29 Samsung Electronics Co., Ltd. Storage system and method for performing and authenticating write-protection thereof
US10257192B2 (en) 2014-05-29 2019-04-09 Samsung Electronics Co., Ltd. Storage system and method for performing secure write protect thereof
TWI531963B (zh) * 2015-06-04 2016-05-01 Accelstor Inc Data storage systems and their specific instruction enforcement methods
CN105303208B (zh) * 2015-10-26 2019-01-25 新大陆数字技术股份有限公司 一种ic卡管理方法及系统
US20170220284A1 (en) * 2016-01-29 2017-08-03 Netapp, Inc. Block-level internal fragmentation reduction using a heuristic-based approach to allocate fine-grained blocks
TWI637264B (zh) * 2016-05-20 2018-10-01 慧榮科技股份有限公司 資料儲存裝置之資料頁對齊方法及其查找表的製作方法
US11054991B2 (en) * 2018-03-21 2021-07-06 Western Digital Technologies, Inc. Data storage system scale-out with local address remapping
CN110442301A (zh) * 2018-05-05 2019-11-12 南京橡东信息科技有限公司 一种用于内网安全的u盘分区的方法及装置
CN111045962B (zh) * 2019-12-18 2023-06-09 湖南国科微电子股份有限公司 一种sd卡数据保密方法、系统、设备及计算机介质
CN113253945B (zh) * 2021-07-08 2021-09-28 成都易我科技开发有限责任公司 磁盘卷变簇的方法、装置及电子设备

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69033438T2 (de) * 1989-04-13 2000-07-06 Sandisk Corp Austausch von fehlerhaften Speicherzellen einer EEprommatritze
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
WO1993021579A1 (en) * 1992-04-21 1993-10-28 Storage Technology Corporation Method for managing data records in a cached data subsystem with non-volatile memory
JPH07219720A (ja) 1993-10-01 1995-08-18 Hitachi Maxell Ltd 半導体メモリ装置ならびにその制御方法
JPH07225727A (ja) * 1994-02-14 1995-08-22 Fujitsu Ltd 計算機システム
RU2103732C1 (ru) 1995-06-08 1998-01-27 Дьяков Юрий Александрович Устройство для выполнения платежей и услуг с помощью электронной карточки с документированием операций
US6125435A (en) * 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US5867641A (en) * 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup system and method
RU2094846C1 (ru) 1996-03-28 1997-10-27 Акционерное общество открытого типа Страховая компания "Росгал" Финансовая система безналичных платежей
JPH10124384A (ja) 1996-08-28 1998-05-15 Toshiba Corp 不揮発性半導体メモリの制御方法
US5845322A (en) * 1996-09-17 1998-12-01 Vlsi Technology, Inc. Modular scalable multi-processor architecture
US6182188B1 (en) * 1997-04-06 2001-01-30 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
JP3588231B2 (ja) 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
JP4079506B2 (ja) 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
US6134581A (en) * 1997-10-06 2000-10-17 Sun Microsystems, Inc. Method and system for remotely browsing objects
US6295575B1 (en) * 1998-06-29 2001-09-25 Emc Corporation Configuring vectors of logical storage units for data storage partitioning and sharing
EP2200032A3 (de) * 1998-09-18 2010-09-22 Kabushiki Kaisha Toshiba Informationsaufzeichnungsverfahren, Informationsaufzeichnungsvorrichtung und Informationsaufzeichnungsmedium
US6308264B1 (en) * 1998-09-30 2001-10-23 Phoenix Technologies Ltd. Dual use master boot record
US6278678B1 (en) * 1999-02-12 2001-08-21 Sony Corporation Editing apparatus, editing method, and recording medium
JP3389186B2 (ja) * 1999-04-27 2003-03-24 松下電器産業株式会社 半導体メモリカード及び読み出し装置
JP3417889B2 (ja) * 1999-09-20 2003-06-16 克彦 長岡 糞尿処理工程などで用いる台車走行装置
CN100442393C (zh) * 1999-10-21 2008-12-10 松下电器产业株式会社 半导体存储卡的访问装置、初始化方法和半导体存储卡
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
JP2001307334A (ja) * 2000-04-21 2001-11-02 Toshiba Corp 情報記憶媒体、情報記録方法、及び情報再生方法
CN1277267C (zh) * 2000-05-31 2006-09-27 松下电器产业株式会社 制作信息记录介质的方法、信息记录方法、信息记录装置、信息再现方法和信息再现装置
CN1287289C (zh) * 2001-07-05 2006-11-29 松下电器产业株式会社 记录设备、介质以及方法
JP2003196142A (ja) * 2001-12-25 2003-07-11 Sony Corp ライトワンス型メモリ装置及びファイル管理方法
US7123556B2 (en) * 2002-01-22 2006-10-17 Matsushita Electric Industrial Co., Ltd. Multi-layered information recording medium with spare defect management areas
JP2005108304A (ja) * 2003-09-29 2005-04-21 Toshiba Corp 半導体記憶装置及びその制御方法
KR100527276B1 (ko) * 2004-06-04 2005-12-13 주식회사 르노소프트 시스템 변경 데이터를 시스템 영역 내에서 비선점적으로관리하는 컴퓨터 하드디스크 시스템 데이터 보호 장치 및그 방법
JP4991320B2 (ja) * 2007-01-12 2012-08-01 株式会社東芝 ホスト装置およびメモリシステム

Also Published As

Publication number Publication date
EP1498810A1 (de) 2005-01-19
CN1341237A (zh) 2002-03-20
RU2257609C2 (ru) 2005-07-27
US8015349B2 (en) 2011-09-06
US20110283076A1 (en) 2011-11-17
CA2355082A1 (en) 2001-04-26
WO2001029670A3 (en) 2001-09-13
MY123682A (en) 2006-05-31
BR0007239B1 (pt) 2014-03-18
WO2001029670A2 (en) 2001-04-26
US6823422B2 (en) 2004-11-23
US8176239B2 (en) 2012-05-08
US8751734B2 (en) 2014-06-10
EP1145126A2 (de) 2001-10-17
US20130268778A1 (en) 2013-10-10
US7398353B2 (en) 2008-07-08
JP2001188701A (ja) 2001-07-10
US20030200411A1 (en) 2003-10-23
BR0007239A (pt) 2001-10-30
US6611907B1 (en) 2003-08-26
US20070033335A1 (en) 2007-02-08
EP1145126B1 (de) 2005-02-02
CN100442393C (zh) 2008-12-10
CN1674159A (zh) 2005-09-28
US20100205361A1 (en) 2010-08-12
CA2355082C (en) 2008-09-23
US20140237203A1 (en) 2014-08-21
US6829675B2 (en) 2004-12-07
US8473671B2 (en) 2013-06-25
US6829676B2 (en) 2004-12-07
US7899982B2 (en) 2011-03-01
US8990487B2 (en) 2015-03-24
US20120191905A1 (en) 2012-07-26
US20030196064A1 (en) 2003-10-16
US20030196028A1 (en) 2003-10-16
US7734864B2 (en) 2010-06-08
US20080209115A1 (en) 2008-08-28
EP1498810B1 (de) 2018-12-26
US20030196027A1 (en) 2003-10-16
DE60017870D1 (de) 2005-03-10
US7143261B2 (en) 2006-11-28
US20110125958A1 (en) 2011-05-26
US20050060513A1 (en) 2005-03-17
JP3954790B2 (ja) 2007-08-08
US6829674B2 (en) 2004-12-07
CN1203395C (zh) 2005-05-25

Similar Documents

Publication Publication Date Title
DE60017870T2 (de) Eine halbleiterspeicherkarte-zugangsanordnung, ein rechnerlesbares aufzeichnungsmedium, initialisierungsverfahren,und eine halbleiterspeicherkarte
DE102020106971A1 (de) Datenschreibverwaltung im nichtflüchtigen speicher
US7461198B2 (en) System and method for configuration and management of flash memory
DE60319407T2 (de) Verfolgen der am häufigsten gelöschten blöcke eines nichtflüchtigen speichersystems
DE102006005876A1 (de) Flashspeicher-Steuervorrichtung, Vorrichtung zum Steuern eines Flashspeichers, Flashspeicher-System und Verfahren zum Verwalten von Abbildungsdaten eines Flashspeichers
DE102009048179A1 (de) Prozess und Verfahren für eine Löschstrategie in Festkörperplatten
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
EP1883906A1 (de) Tragbarer datenträger mit sicherer datenverarbeitung
DE102020103846A1 (de) Verfahren zum Betreiben eines Speichersystems mit Gegenmaßnahme gegen Replay-Angriff und Speichersystem, das dasselbe durchführt
DE102017104698A1 (de) Elektroniksteuervorrichtung und Informationsspeicherverfahren dafür
DE102013100820B4 (de) Verfahren zum sicheren Löschen eines nichtflüchtigen Halbleiter-Massenspeichers, Computersystem sowie Computerprogrammprodukt

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PANASONIC CORP., KADOMA, OSAKA, JP