JP3954790B2 - 半導体メモリカードについてのアクセス装置、コンピュータ読取可能な記録媒体、及び初期化方法。 - Google Patents

半導体メモリカードについてのアクセス装置、コンピュータ読取可能な記録媒体、及び初期化方法。 Download PDF

Info

Publication number
JP3954790B2
JP3954790B2 JP2000321738A JP2000321738A JP3954790B2 JP 3954790 B2 JP3954790 B2 JP 3954790B2 JP 2000321738 A JP2000321738 A JP 2000321738A JP 2000321738 A JP2000321738 A JP 2000321738A JP 3954790 B2 JP3954790 B2 JP 3954790B2
Authority
JP
Japan
Prior art keywords
sectors
area
file
sector
calculated
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
JP2000321738A
Other languages
English (en)
Other versions
JP2001188701A (ja
Inventor
卓治 前田
照人 廣田
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
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2000321738A priority Critical patent/JP3954790B2/ja
Publication of JP2001188701A publication Critical patent/JP2001188701A/ja
Application granted granted Critical
Publication of JP3954790B2 publication Critical patent/JP3954790B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/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

【0001】
【発明の属する技術部分野】
本発明は、EEPROM等の不揮発メモリを内蔵した半導体メモリカードをアクセスするアクセス装置、半導体メモリカードについての初期化プログラムを記録したコンピュータ読取可能な記録媒体、初期化方法、及び半導体メモリカードに関し、特に、不揮発メモリに対するデータ書換効率を向上させる改良に関する。
【0002】
【従来の技術】
小型・軽量であることを長所とする半導体メモリカードは、様々な技術分野において、記録媒体としての確固たる地位を築きつつある。半導体メモリカードは、EEPROMと呼ばれる不揮発メモリを内蔵しており、半導体メモリカードと接続した機器は、この不揮発メモリに対するアクセスを行うことにより、半導体メモリカードを記録媒体として利用する。EEPROMにおいて白紙の状態にあるセクタに関しては、磁気ディスク、光ディスク同様、データを直接書き込むことができる。一方、既にデータが書かれているセクタに対しては、一旦書込先に記録されているデータを消去して、白紙の状態に戻してからデータ書き込みを行わねばならない。多くの半導体メモリカードに内蔵されているNAND型と呼ばれるEEPROMにあっては、セクタを白紙の状態に戻すという作業を32個のセクタに対して一括して行う必要があるので(この不揮発メモリにおいて32個のセクタ群は消去可能ブロックと呼ばれる。)、半導体メモリカードは、消去可能ブロックをアクセス単位とした領域管理を実現するべく、専用の制御回路を内蔵している。そして消去可能ブロックの状態管理、及び、消去可能ブロックに対するデータの読み出し、データ書き込みをこの制御回路に委ねている。
【0003】
以上のことから、半導体メモリカードは、磁気ディスク、光ディスク型の記録媒体とは全く異なる独特のハードウェア構造(物理層)を有している。その反面、図35に示すような物理層・ファイルシステム層・応用層からなるレイヤモデルにて、データ管理を行っている点は、磁気ディスク、光ディスクと共通しているといえる。図36は、物理層のレイアウトを詳細に示す図である。図36において、物理層におけるボリューム領域は、消去可能ブロックを複数配置してなる。各消去可能ブロックは、32個のセクタからなり、16KByteのデータ長を有している。図37に、ファイルシステム層のレイアウトを詳細に示す。図37に示すファイルシステム層のレイアウトは、俗にFAT型ファイルシステムと呼ばれるものである。FAT型ファイルシステムにおいて、ボリューム領域における領域管理は、クラスタとよばれる単位を用いて行われる。ボリューム領域の先頭にはボリューム管理情報が配置され、ボリューム管理情報の直後にはユーザデータの記録のための領域であるユーザ領域が配置される。ボリューム管理情報は、マスタブートレコード、パーティションテーブル、パーティションブートセクタ、二重化ファイルアロケーションテーブル(FAT)、ルートディレクトリエントリからなる。このうち、二重化ファイルアロケーションテーブルは、ボリューム領域に含まれる複数のクラスタに対応づけられ、クラスタと、クラスタとの間のリンク関係を示す。こうしたファイルシステム層を設けることにより、応用層では、ディレクトリ、ファイルからなる階層構造にて、データが格納されることなる。レイヤモデルの導入により、アクセス装置は、物理層の違いを意識せずに、磁気ディスク、光ディスク型の記録媒体をアクセスするのと同じ手順を経て、半導体メモリカードをアクセスすることができる。
【0004】
【発明が解決しようとする課題】
ところで、ファイルシステムのボリューム領域に、データを格納するにあたって、ボリューム領域のデータサイズをユーザが任意に決める機会が多々ある。
ユーザの要望に応じてボリューム領域のサイズを変化させた場合、ボリューム領域に含まれるクラスタ数が増減する。クラスタ数が増減すれば、それらクラスタに対応するエントリーからなるFATのサイズも増減し、このFATを含むボリューム管理情報のサイズも、増減することなる。こうしてボリューム管理情報のサイズが増減すると、ボリューム管理情報に後続するユーザ領域の先頭アドレスも、変動することなる。ユーザ領域の先頭アドレスは、ボリューム領域のサイズに応じて変動するものなので、無論このユーザ領域に含まれる各クラスタの先頭アドレスもユーザ領域のサイズに応じて変動する。
【0005】
クラスタの先頭アドレスが、ユーザ領域のサイズに応じて変動するとなると、2つの消去可能ブロックの境界をまたぐように、クラスタが配置されたり、ボリューム管理情報の終端部分と、ユーザ領域の先頭に位置するクラスタとが同じ消去可能ブロックに配置されることも有り得る。ボリューム管理情報の終端部分と、ユーザ領域の先頭に位置するクラスタとが同じ消去可能ブロックに配置された状態のボリューム領域のレイアウトを図38に示す。図38のようにクラスタが配置されれば、このクラスタに格納されたデータを書き換えたい場合、このクラスタが配置されている2つの消去可能ブロックを読み出して、2つの消去可能ブロックを白紙の状態に戻さねばならない。一方不揮発メモリは、絶縁層に浮遊ゲートを埋設してなる記憶素子から構成されており、かかる構造の記憶素子は、数万回の消去を限界としているので、1つのクラスタの書き換えのために、2つの消去可能ブロックを消去するような現象が多く発生すれば、不揮発メモリ自体の寿命を著しく縮める結果となる。
【0006】
仮に32個のセクタを1つのクラスタとして管理する場合、クラスタに対するデータの書き込みは、書込先が消去済みならば32×200μ秒(200μ秒は、セクタ1つ当たりの書き込みに要する時間)にて完遂するが、書込先の消去を先に行ってからデータ書き込みを行う場合は、これに約2m秒の消去時間が追加される。クラスタが2つの消去可能ブロックの境界を跨いでいるため、2つのブロックの消去が必要となると、書込先の消去に、4m秒が費やされることなり、データ書き込み時間の長期化が顕著化してしまう。
【0007】
本発明の目的は、消去可能ブロックに対する書き換えのための処理時間の低減化を図り、また不揮発メモリについての高寿命化を実現するようなデータ格納フォーマットを半導体メモリカード上に形成するアクセス装置を提供することである。
【0008】
【課題を解決するための手段】
SD(Secure Digital)メモリカードと呼ばれるタイプの半導体メモリカードの実用にあたっては、上述したような、処理時間の低減化及び不揮発メモリについての高寿命化といった問題の解決が強く迫られる。その理由は以下の通りである。SDメモリカードには、データの暗号化に用いられた暗号鍵や、著作物の再生の際の課金に用いられる課金情報等、ユーザへの公開が望ましくない情報を格納しておくための領域(プロテクト領域という)が一般ユーザが使用できる領域とは別に、ボリューム領域上に設けられる。非公開が要求されるデータの量は、アプリケーションプログラムの種別毎に異なるので、プロテクト領域のサイズは、アプリケーションプログラムの種別に応じて変化させねばならない。プロテクト領域のサイズが変化するとなると、ボリューム領域のレイアウトは、アプリケーションプログラムの種別に応じて変化することなる。アプリケーションプログラムの種別に応じて、ボリューム領域のレイアウトを変化させるとなると、クラスタが、消去可能ブロックの境界を跨ぐようなレイアウトが多く発生しうるので、上述した目的の達成は強く望まれる。
【0009】
こうした目的達成のため、半導体メモリカードについてのアクセス装置は、複数のセクタからなり、それら複数のセクタのうち連続する2個のセクタ(iは、0以上の整数)がデータ消去の最小単位であるブロックとしてグループ化されているメモリ領域を有する半導体メモリカードにおいて、複数のセクタのうち2 j 個のセクタ (j は、 0 以上の整数 ) に格納されるデータ群をクラスタとして管理し、1つ以上のクラスタをファイルとして管理することにより、ファイルアクセスを実現するアクセス装置であって、前記メモリ領域において管理されるべきクラスタ数に基づいて、同一ファイルとして管理される前記クラスタ間のリンク関係をファイル毎に示すファイルアロケーションテーブルのデータサイズを算出し、マスタブートレコード、パーティションテーブル、パーティションブートセクタ、ファイルアロケーションテーブル及びルートディレクトリエントリを含むボリューム管理情報のデータサイズを算出する算出手段と、算出されたボリューム管理情報のデータサイズを上回り、尚且つ、2以上のブロックからなる第1領域を、ボリューム管理情報の記録のために確保し、第1領域に後続するブロックからなる第2領域を、ユーザデータの記録のために確保する確保手段と、前記第1の領域の先頭ブロックの先頭セクタに前記マスタブートレコードと前記パーティションテーブルを記録し、前記先頭セクタから所定数のセクタを隔てて前記先頭ブロックとは異なるブロックに前記パーティションブートセクタ、前記ファイルアロケーションテーブル、及び前記ルートディレクトリエントリを前記第1の領域の末尾と前記ルートディレクトエントリの末尾が一致するように記録し、第2領域にユーザデータを記録する記録手段とを備え、
前記算出手段は、前記メモリ領域に含まれる総セクタ数と、前記1つのクラスタに含まれるセクタ数とを用いて、ファイルアロケーションテーブルを構成するセクタ数 Size1 を算出して、パーティションブートセクタのセクタ数 RSC と、ルートディレクトリエントリのセクタ数 RDE と、二重化されたファイルアロケーションテーブルのセクタ数 Size1 × 2 との総和である SUM を求め、前記確保手段は、 NOM SUM =m×2 j に基づき数値mを算出すると共に、 NOM を算出し、総セクタ数と前記算出したボリューム管理情報の大きさ (NOM+SUM) に基づいてファイルアロケーションテーブルの大きさ Size2 を算出し、前記算出されたセクタ数 Size2 が、セクタ数 Size1 と等しいか否かを判定し、等しいなら、第1領域の確保を行うが、等しくないなら、セクタ数 Size2 をセクタ数 Size1 に代入することで SUM を更新して、 NOM の算出をやり直し、前記記録手段は、前記算出されたセクタ数 NOM から、先頭セクタのセクタ数を引き、これにより得られた数値を前記所定のセクタ数として算出することを特徴としている。
【0010】
【発明の実施の形態】
以降、図面を参照しながら、半導体メモリカード、半導体メモリカード及びアクセス装置からなるシステムについての実施形態について説明する。
図1は、半導体メモリカードの外観形状を示す図であり、図2(a)、図2(b)は、アクセス装置の外観形状を示す図である。図3(a)は、半導体メモリカード100及びアクセス装置の内部構成を示す図である。
【0011】
半導体メモリカード100は、図1に示すような外観形状を有しており、長さ32.0 mm、幅24.0 mm、厚さ2.1 mmといった大きさ(切手サイズの大きさ)のカード型記録媒体である。ユーザはこの半導体メモリカード100を指先で把持することができる。半導体メモリカード100には、アクセス装置との接続のための9本のコネクタが設けられており、側面には、記憶内容の上書きを許可するか禁止するかを操作者が設定することができるプロテクトスイッチ101が設けられている。半導体メモリカード100は、図3(a)の下半分に示すように、NAND型EEPROMである不揮発メモリ1と、アクセス装置から発せられるコマンドに従って、不揮発メモリに対するデータ書き込み、不揮発メモリからのデータ読み出し、データ消去を行うアクセス制御部2と、不揮発メモリから読み出されたデータを書き換える際、データの一時格納に用いられるワークメモリ3とを含む。
【0012】
次にアクセス装置について説明する。アクセス装置は、図2(a)に示すような民生用音響機器、図2(b)に示すようなパソコン等の情報機器であり、図3(a)の上半分に示すように、半導体メモリカード100を接続するためのカードコネクタ4と、半導体メモリカード100をアクセスするための各種ソフトウェアを格納した二次記憶装置5と、アクセス装置における統合制御を行うCPU6と、半導体メモリカード100をアクセスする際、FATやルートディレクトリエントリの一時的な格納に用いられる一次記憶装置7とからなる。図3(b)は、アクセス装置にて用いられるソフトウェアのレイヤモデルを示す図である。本図に示すように、アクセス装置のソフトウェアは、映像再生、音声再生等のアクセス装置固有の処理を行うアプリケーションプログラム8と、ファイルの読み出し、書き込み、ファイルの削除、ファイルの書き換えといったファイルシステムに対する操作を、アプリケーションプログラム8からの指示に従って実行するファイルシステム操作部9と、半導体メモリカード100に対して読出コマンド、書込コマンドを発行することにより、ファイルシステムに対する操作を実践するデバイスドライバ10とからなる。
【0013】
続いて、不揮発メモリ1におけるデータ格納フォーマットの一例について説明する。不揮発メモリ1は、図4に示したようなフォーマットで、データ格納を行う。図4において、不揮発メモリの全体はボリューム領域と称される。ボリューム領域は、複数のクラスタにより管理される領域であり、パーティション管理領域と、パーティション(パーティションは、レギュラー領域と呼ばれる)とからなる。図4の右段に示すように、パーティションは、システム領域と、ユーザ領域とに区分けされる。
【0014】
ユーザ領域の先頭アドレスは、システム領域の直後であるが、システム領域における二重化FATのサイズは、ユーザ領域のサイズに応じて増減し得るので、これに応じてユーザ領域の先頭アドレスが変動する点は、従来技術で述べた通りである。ボリューム領域における各セクタは、ボリューム領域の先頭を基準とした物理アドレスにて指示される。
【0015】
以降、ボリューム領域に含まれる各領域について説明してゆく。図5は、ボリューム領域に含まれる『パーティション管理領域』、『システム領域』、『ユーザ領域』の構成を示す図である。
『パーティション管理領域』は、マスタブートレコード&パーティションテーブルセクタと、Reserved情報1/2,2/2とからなる。マスタブートレコード&パーティションテーブルセクタの構成を詳細に表したものが図6(a)である。図6(a)では、"<"型の矢印を用いて、マスタブートレコード&パーティションテーブルセクタの内容を階層的に表現している。矢印ky1に示すように、マスタブートレコード&パーティションテーブルセクタは、マスタブートレコード(Master Boot Record)、4つのパーティションテーブル(Partition Table1,2,3,4)、Signature Wordからなる。
【0016】
『マスタブートレコード』は、自身に後続する領域が"物理的な一つの媒体(物理媒体)"であることをアクセス装置に認識させるための標識である。本図では、ボリューム領域にマスタブートレコードが1つだけ存在するので、ボリューム領域において1つの物理媒体がアクセス装置により認識され得るが、仮にボリューム領域にマスタブートレコードを2つ配せば、2つの物理媒体がアクセス装置により認識される。
【0017】
『パーティションテーブル』は、パーティションに関する情報が記述されたテーブルであり、矢印ky2に示すように、本半導体メモリカード100を起動ドライブとして用いる際、0x80が設定される"Boot Indicator"と、パーティションの開始ヘッダを特定する"Starting Head"と、パーティションの開始セクタ・開始シリンダを特定する"Starting Sector/Starting Cylinder"と、パーティションのサイズが32680Byteより少ない場合、01が設定され、65536Byteより少ない場合、04が設定されることにより、ファイルシステムのタイプを示す"SystemID"と、"Ending Head"と、パーティションの終了セクタ・終了シリンダを特定する"Ending Sector/Ending Cylinder"と、このパーティションの開始セクタまでの相対セクタ数を示す"Relative Sector"と、パーティションのセクタ数が設定される"Total Sector"とからなる。
【0018】
続いて半導体メモリカード100のパーティションについて説明する。パーティションは、システム領域及びユーザ領域からなるが、ユーザ領域と、システム領域の順に、これらの領域の説明を行う。ユーザ領域の説明にあたっては、図7(c)を引用する。
『ユーザ領域』は、クラスタを最小単位にして、ファイルが格納される領域である。図7(c)における破線の引き出し線ff2は、ユーザ領域に含まれる複数のクラスタ002,003,004,005・・・・・を示す。図中の番号002,003,004,005,006,007,008・・・・・・・は、各クラスタを識別するために付与された3桁の16進数表記のクラスタ番号を示す。データ領域に対するアクセスは、クラスタを最小単位として行われるので、データ領域の内部位置は、これらのクラスタ番号を用いて、指示される。
【0019】
システム領域は、パーティションブートセクタ、二重化FAT、ルートディレクトリエントリからなる。パーティションブートセクタの説明にあたっては図6(b)を、二重化FATの説明にあたっては図7(a)を、RDEの説明にあたっては図7(b)を引用するものとして、これらの領域について順次説明する。
パーティションブートセクタは、図6(b)に示すような情報項目を有するExtend FDC記述子が設定される。図6(b)によれば、Extend FDC記述子は、Jump Command,Creating System Identifier,一セクタのサイズ(Sector Size), 一クラスタ当たりのセクタ数(Sector per Cluster),Reserved Sector Count,二重化FATに含まれるFAT数(Numbr of FATs),ルートディレクトリエントリのデータ長(Number of Root-directory Entries),Total Sectors,Medium Identifier,FAT1つ当たりのセクタ数(Sector Per FAT),Sector Per Track,Number of Sides,Number of Hidden Sectors,システム領域及びユーザ領域における総セクタ数(Total Sectors),Physical Disk Number,Extended Boot Record Signature,Volume ID Number,ボリュームラベル(Volume Label),File System Type,Signature Word等の項目が設定される。
【0020】
『二重化ファイルアロケーションテーブル(FAT)』は、ISO/IEC 9293に準拠した2つのFATからなる。各FATは、各クラスタに対応づけられた複数のFATエントリーからなる。各FATエントリーは、対応するクラスタが使用中であるか、未使用であるかを示すものであり、対応するクラスタが未使用であれば、そのファイルエントリーには、"0"が設定され、対応するクラスタが使用中であれば、クラスタ番号が設定される。このクラスタ番号は、対応するクラスタが読み出された場合、次にどのクラスタを読み出せばよいかといったクラスタ間のリンク関係を示す。図7(a)の破線の引き出し線ff1は、FATに含まれる複数のFATエントリー002,003,004,005・・を示す。このFATエントリーに付与された数値『002,003,004,005・・』は、各FATエントリーがどのクラスタに対応づけられているか、つまり、各FATエントリーが対応づけられているクラスタのクラスタ番号を示す。
【0021】
『ルートディレクトリエントリ』は、ルートディレクトリに存在する複数ファイルについてのファイルエントリーを複数含む。各ファイルエントリーは、存在するファイルの「ファイル名」と、そのファイルの「ファイル拡張子」と、ファイルの先頭部が格納されている「ファイル最初のクラスタ番号」と、そのファイルについての「ファイル属性」と、ファイルが記録された「記録時刻」と、ファイルの「記録日付」と、ファイルのデータ長である「ファイル長」とを含む。
【0022】
ここで、ルートディレクトリにAOB001.SA1というファイルを格納する場合、AOB001.SA1がどのように格納されるか、即ち、ファイル格納方式の一例を図8を参照しながら説明する。上述したようにデータ領域の最小アクセス単位はクラスタであるので、AOB001.SA1は、クラスタサイズを最小単位にしてデータ領域に格納せねばならない。AOB001.SA1は、先ずクラスタサイズに分割されて、各クラスタに書き込まれる。図8は、AOB001.SA1をクラスタサイズに合わせて5つに分割し、各分割部分を、クラスタ003,004,005,00A,00Cに格納する状態を想定した図である。
【0023】
AOB001.SA1が分割格納されると、ディレクトリエントリー及びFATは、図9のように設定されねばならない。
図9は、AOB001.SA1が複数のクラスタに記録されている場合のディレクトリエントリー及びFATについての設定例を示す図である。本図においてAOB001.SA1の先頭部分がクラスタ003に記録されている場合、ルートディレクトリエントリーにおける『最初のクラスタ番号』には、その先頭部分が格納されているクラスタについてのクラスタ番号003が記載される。以降、AOB001.SA1の後続する部分は、クラスタ004、クラスタ005に格納されていることがわかる。AOB001.SA1の先頭部分を格納しているクラスタ003には、FATエントリー003(004)が対応しているが、このFATエントリーは、AOBファイルの後続する部分を格納しているクラスタ004を示すものである。またこれに後続している部分を格納しているクラスタ004,005には、FATエントリー004(005),FATエントリー005(00A)が対応しているが、これのFATエントリーは、AOBファイルの次の後続する部分を格納しているクラスタ005,00Aを示すものである。
【0024】
これらFATエントリーに記載されたクラスタ番号を矢印fk1,fk2,fk3,fk4,fk5・・・・・に示すように順次読みとってゆけば、AOB001.SA1の分割部分を全て読み取ることができる。以上の説明により、半導体メモリカード100のユーザ領域は、クラスタを最小単位としてアクセスされ、また各クラスタにはそれぞれFATエントリーが対応づけられていることがわかる。尚、AOBファイルの末尾の部分を格納したクラスタ(図9の一例では、クラスタ00C)に対応づけられているFATエントリーには、そのクラスタがファイルの最終部分を格納していることを示すクラスタ番号『FFF』が記述される。
【0025】
これまでの説明は、不揮発メモリにおけるファイルシステムの構成を一通り解説にしたに過ぎない。ここからの説明が、本実施形態において特に主眼とするところである。クラスタの境界と、消去可能ブロックの境界とをどのように整合させたか、システム領域−ユーザ領域間の境界を、消去可能ブロックの境界とどのように整合させたかの説明を行う。境界整合を実現するため、本実施形態では、2つの改良を行っている。1つ目の改良は、クラスタのサイズを、消去可能ブロックのサイズの1/n(nは、1,2,4,8,16,32)に設定するという改良である。図10(a)は、消去可能ブロックと、クラスタとの関係を示す図であり、クラスタサイズは、消去可能ブロックのサイズである16KByteの1/nの大きさ(32セクタの1/n)に定める。図10(b)は、n=1と定められた場合のクラスタを示す図であり、図10(c)は、n=16と定められた場合のクラスタを示す図である。
【0026】
2つ目の改良は、ボリューム領域において、クラスタのm倍のサイズの領域を、ボリューム管理情報の記録に割り当てるという改良である。図11(a)は、s個の消去可能ブロックに含まれるs n個のクラスタのうち、m個のクラスタをボリューム管理情報の記録に割り当てる場合を想定した図である。m個のクラスタをボリューム管理情報の記録に割り当てれば、s個の消去可能ブロックの内部領域のうち、m/nの部分が、ボリューム管理情報に占有されることなり、残る(s・n-m)/nの内部領域が、ユーザ領域に割り当てられることなる。
【0027】
ボリューム管理情報を、クラスタのm倍のサイズに設定することにより、s個の消去可能ブロックには、ボリューム管理情報と、s・n-m個のクラスタとが詰め込まれ、クラスタが2つの消去可能ブロックの境界を跨ぐことはない。
図11(b)は、n=1と設定された場合、ボリューム管理情報の記録にどれだけのクラスタが割り当てられるかを示す図であり、図11(c)は、n=16と設定された場合、ボリューム管理情報の記録にどれだけのクラスタを割り当てるかを示す図である。これらの図からも明らかなように、ボリューム管理情報の設定により複数のクラスタが、複数の消去可能ブロックに詰め込まれているので、何れのクラスタも消去可能ブロックの境界を跨ぐことはない。先の図5では、かかるサイズ調整がなされたボリューム領域のレイアウトをより詳細に示している。図5において、パーティション管理領域のサイズはNOM、パーティションブートセクタのサイズはRSC、二重化FATのサイズは、Size1×2、ルートディレクトリエントリのサイズはRDE、総セクタサイズをTS、クラスタに含まれるセクタの個数はSCと表現している。
【0028】
この図5において、二重化FATに含まれるFATのサイズSize1は、TSに依存したものとなる。具体的にいうなら、以下の数式11により算出される値となる。
{数式11}
FAT12の場合:Size1=(((((TS-(RSC+RDE))/SC)+2)×12/8)+511)/512
FAT16の場合:Size1=(((((TS-(RSC+RDE))/SC)+2)×16/8)+511)/512
ここでFAT12とは、FATエントリー1つ当たりに12ビットを割り当てることをいい、FAT16とは、FATエントリー1つ当たりに16ビットを割り当てることをいう。
【0029】
数式11において、(TS-(RSC+RDE))は、ユーザ領域の記録に必要なクラスタ数であり、これにインディケータ数2を加算して、FATエントリーのバイト長(12又は16)を乗じ、且つ8で割ることにより、FATのバイト長が算出される。この算出結果に、オフセット値である511Byteを足し合わせ、セクタのバイト長512で割れば、1つ当たりのFATを格納するのに必要なセクタ数を算出することができる。尚、このオフセット値511は、例えば、FATのデータ長が1Byteと算出された場合、セクタ数が0個と算出されるのを防ぐ目的で設けられている。FATのデータ長が1Byteと算出された場合、オフセット無しでFATのデータ長を512で割れば、FATのセクタ数が0に算出されてしまう。FATのデータ長が1Byteと算出された場合でも、1セクタ以上のSize1を導き出すため、数式11では、オフセット値511を加算している。
【0030】
図5において特に注意すべきは、パーティション管理領域のサイズであるNOMである。NOMは、パーティション管理領域と、システム領域とが、互いに異なるクラスタに属するように、"SC+α"という値に設定される。NOMの設定により、パーティション管理領域と、システム領域を異なるクラスタに配置する理由は、システム領域が配置されたクラスタの書き換えに失敗した際、その失敗がパーティション管理領域に波及するのを避けるためである。つまり書き換え失敗にて、パーティション管理領域におけるマスタブートレコード、パーティションテーブルが破壊されれば、この半導体メモリカード100は、正規の記録媒体として、アクセス装置により認識されなくなる。そうした最悪ケースの発生を避けるため、NOMをSC+αに設定している。
【0031】
SC+αのαをどのように設定するかであるが、αは、以下に示すように、RSCと、Size1×2と、RDEとの和がSCの整数倍になるように、(RSC+RDE+Size1×2)をSCで割り、その余りをSCから引くことにより求められる。これらのことを勘案すると、NOMは、数式12に示すように算出される。
{数式12}
NOM=(SC-(RSC+RDE+Size1×2)%SC)+SC
こうしてαに定めると、パーティション管理領域及びユーザ領域は、複数の消去可能ブロックに丁度収まる形となり、システム領域と、ユーザ領域との境界が、消去可能ブロックの境界と一致することなる。こうした境界一致がはかれるので、後続する全てのクラスタの境界は、消去可能ブロックの境界に一致することになる。
【0032】
ここでSC=32セクタ(16KByte)、RDEを32セクタ、RSCを1セクタとし、TSを65600とした場合、NOM、Size1がどのように算出されるかを説明する。二重化ファイルアロケーションテーブルのタイプがFAT12であるとすると、数式11によりSize1は、Size1=(((((TS-(RSC+RDE))/SC)+2)×12/8)+511)/512
=(((((65600-(1+32))/SC)+2)×12/8)+511)/512
=7セクタと算出される。
【0033】
また数式12により、NOMは、
NOM=(SC-(RSC+RDE+Size1×2)%SC)+SC
=(32-(1+32+7×2)%32)+32
=49セクタと算出される。算出された大きさで、パーティション管理領域と、システム領域と、クラスタを作図して得られたのが図12である。PSN000からPSN031までのセクタには、マスタブートレコード&パーティションテーブルセクタとReserved情報1/2とが配置され、PSN032からPSN063までのセクタには、Reserved情報2/2とパーティションブートセクタと二重化FATとが配置される。またPSN064からPSN095までのセクタは、ルートディレクトリエントリが配置される。ボリューム領域におけるセクタは、32個単位で1つの消去可能ブロックを形成するので、マスタブートレコード、パーティションテーブル、Reserved情報1/2は、1番目の消去可能ブロック001に配置され、Reserved情報2/2、パーティションブートセクタ、二重化FATは2番目の消去可能ブロック002に、ルートディレクトリエントリは、3番目の消去可能ブロック003に配置される。ルートディレクトリエントリは、同じサイズの消去可能ブロックに格納されるので、ユーザ領域と、システム領域の境界は、消去可能ブロックの境界と整合することなる。
【0034】
以上のボリューム領域のレイアウトは、アクセス装置におけるファイルシステム操作部9が、不揮発メモリの初期化処理を行うことにより実現される。この初期化処理の手順を示したのが図13のフローチャートであり、以降、図13のフローチャートを参照しながら、ボリューム領域の初期化手順について説明する。
ステップS1では、フォーマットすべき領域の大きさ(TS)や半導体メモリカード100の全体容量、アクセス装置にて動作するオペレーションシステム、ユーザによる指定に応じて、クラスタサイズを決定する。
【0035】
クラスタサイズが決定されれば、ステップS2において、クラスタサイズSCと、フォーマットサイズTSとから、FAT12、FAT16の何れかを使用するかを一意に決める。FAT12、FAT16の何れかが決定されればステップS3において、ルートディレクトリエントリのRDEを決定する(本実施形態では、RDEを32セクタに固定する。)。その後、ファイルシステム操作部9はステップS4において、パーティションブートセクタのRSCを決定し(尚本実施形態では、RSCを1セクタに固定する。)、ステップS5では、RDE及びRSCが算出されれば、数式11にてFATのデータ長を計算する。ステップS6において、ファイルシステム操作部9は、マスタブートレコードとパーティションブートセクタとが別のクラスタになるように、数式12にてNOMを計算する。
【0036】
以上のステップS5〜ステップS6は、数式11、数式12に示した計算と何等変わるところはない。以降のステップS7、ステップS8、ステップS9がこのフローチャートで初めてあかされる処理である。ステップS7において、下記の数式13にて、ユーザ領域のクラスタ数CNを算出する。
{数式13}
CN=(TS-(RSC+RDE+Size1×2+NOM))/SC
ステップS8において、下記の数式14にて、FATのデータ長を算出する。
【0037】
{数式14}
FAT12の場合:Size2=(((CN+2)×12/8)+511)/512
FAT16の場合:Size2=(((CN+2)×16/8)+511)/512
ステップS9では、ステップS5にて算出されたSize1と、ステップS8にて算出されたSize2との比較を行い、同一値であれば計算を終了する。異なっていれば、ステップS10においてSize2をSize1に代入して、ステップS6に移行し、NOMを計算しなおす。代入によりSize1は別の値になるので、ステップS6に移行することにより、異なるNOMが算出される。そうして算出されたNOMに基づいて、ステップS8においてSize2が再度算出され、Size1とSize2との一致が判定されれば、ステップS9がYesとなり処理を終える。
【0038】
以上の手順を経て、算出されたNOMは、パーティションテーブルにおいてパーティションの開始セクタまでの相対セクタ数を示す"Relative Sector"に設定される、またTSが、パーティションテーブルにおいて"Total Sector"に設定される。
SCは、パーティションブートセクタにおいて一クラスタ当たりのセクタ数を示す『Sector per Cluster』に設定される。またセクタ数を表すRDEは、1セクタ当たりのバイト長(512Byte)を乗じ、更に32Byteで除されることにより、エントリー数に変換され、パーティションブートセクタにおける『Number of Root-directory Entries』に設定される。Size1は、パーティションブートセクタにおいてFAT1つ当たりのセクタ数を示す『Sector Per FAT』に設定される。アクセス装置は、パーティションテーブル及びパーティションブートセクタに設定されたこれらの値を参照して、二重化FAT、ルートディレクトリエントリ、ユーザ領域の所在を特定する。
【0039】
以上で、図13のフローチャートの説明を終える。続いてTSを65568セクタと決定した場合、パーティション管理領域と、システム領域のサイズがどのように算出されるかの計算例を以下に示す。
TSが65568であるので、ステップS1では、クラスタサイズは32セクタと決定される。クラスタサイズが32セクタと決定されたので、ステップS2において、クラスタサイズSCと、フォーマットサイズTSとから、FAT12を使用すると決定する。本実施形態では、RDEは32セクタに固定されており、RSCは1セクタに固定されているので、ステップS3、ステップS4での計算は行われない。ステップS5では、数式11、数式12にてFATのデータ長を計算する。ここでFATはFAT12なので、
Size1=(((((TS-(RSC+RDE))/SC)+2)×12/8)+511)/512
=(((((65568-(1+32))/SC)+2)×12/8)+511)/512
=7セクタと算出される。
【0040】
Size1が算出されれば、ステップS6において、マスタブートレコードとパーティションブートセクタとが別のクラスタになるように、数式12にてNOMを計算する。
NOM=(SC-(RSC+RDE+Size1×2)%SC)+SC
=(32-(1+32+7×2)%32)+32
=49セクタと算出される。
【0041】
NOMが算出されれば、ステップS7において、数式13にてレギュラー領域におけるクラスタ数の計算を行う。
CN=(TS-(RSC+RDE+Size1×2+NOM))/SC
CN=(65568-(1+32+7×2+49))/32
=2046セクタと算出される。
【0042】
ステップS8において、数式14にて、FATのデータ長を算出する。
FAT12の場合:Size2=(((CN+2)×12/8)+511)/512
Size2=(((2046+2)×12/8)+511)/512
Size2=6
ステップS9では、ステップS5にて算出されたSize1と、ステップS8にて算出されたSize2との比較を行う。ここで、Size1は7セクタと、Size2は6セクタと算出され、これらは同一値ではないので、ステップS10に移行して、Size2をSize1に代入して再度ステップS6に移行し、NOMを計算しなおす。
【0043】
NOM=(SC-(RSC+RDE+Size1×2)%SC)+SC
=(32-(1+32+6×2)%32)+32
=51セクタと算出される。NOMが算出されれば、ステップS7において、レギュラー領域におけるクラスタ数の計算を行う。
CN=(TS-(RSC+RDE+Size1×2+NOM))/SC
CN=(65568-(1+32+6×2+49))/32
=2046セクタと算出される。
【0044】
ステップS8において、FATのデータ長を算出する。
FAT12の場合:Size2=(((CN+2)×12/8)+511)/512
Size2=(((2046+2)×12/8)+511)/512
Size2=6
こうした計算の後、ステップS9においてSize1とSize2との比較がなされるが、Size1、Size2は一致しているので、本フローチャートの処理を終了する。
【0045】
以上のように本実施形態によれば、パーティション領域のサイズと、システム領域のサイズとが消去可能ブロックの整数倍の大きさになるように、NOMを算出するので、1つのクラスタが2つの消去可能ブロックに跨って格納されることはない。クラスタの境界と、消去可能ブロックの境界との整合、ボリューム管理情報の境界と、消去可能ブロックの境界との整合が図られるので、1つのクラスタを書き換えたり、上書きしたりする際、消去すべき消去可能ブロックの数は1つで済み、消去可能ブロックの消去回数を低減させることができる。消去回数の低減により、半導体メモリカード100にデータを書き込む際の時間を短縮することができ、また、不揮発メモリ自体の長寿命化を実現することができる。
【0046】
(第2実施形態)
第2実施形態は、一般ユーザがアクセスすることができる領域(ユーザデータ領域)と、一般ユーザによるアクセスに制限を課し、データをセキュアに格納することができる領域(プロテクト領域)とにボリューム領域を区分することを提案する。
【0047】
第2実施形態に係るアクセス装置及び半導体メモリカード100の構成を図14に示す。図14に示す内部構成が、図3(a)に示した内部構成と異なるのは、不揮発メモリ1内にプロテクト領域が設けられ、半導体メモリカード100及びアクセス装置にセキュア処理部11、セキュア処理部12が加えられている点である。
【0048】
プロテクト領域に対する読み書きをセキュアに行うために設けられたセキュア処理部11について説明する。セキュア処理部11の構成は、図15に示す通りであり、システム領域13、Hidden領域14、AKE処理部15、Ks復号化部16、Ks暗号化部17からなる。
システム領域13は、Media Key Block(MKB)と、Media-IDとを格納した読出専用領域であり、ここに格納されたMKB、Media-IDを書き換えることはできない。半導体メモリカード100がアクセス装置と接続され、MKBとMedia-IDとがアクセス装置により読み出された場合、これらを読み出したアクセス装置が、MKB、Media-IDと、自身が所持しているデバイス鍵Kdとを用いて所定の演算を正しく行えば、アクセス装置は正しい暗号鍵Kmuを所持することができる。
【0049】
Hidden領域14は、正解値となる暗号鍵Kmu、即ち、アクセス装置が正常なデバイス鍵Kdを用いて正常な演算を行なった場合、得られるべき暗号鍵Kmuを格納している領域である。
Authentication and Key Exchange(AKE)処理部15は、アクセス装置と半導体メモリカード100との間でチャレンジ・レスポンス型の相互認証を行って、相手側の正当性を認証し、相手側が不当であれば処理を中断するが、相手側が正当であればアクセス装置と半導体メモリカード100との間で暗号鍵(セッション鍵Ks)を共有する。アクセス装置による認証は3つのフェーズ(アクセス装置側で乱数を発生させ、得られた乱数をKmuを用いて暗号化して、チャレンジ値Aとして半導体メモリカード100に送信するChallenge1フェーズ、半導体メモリカード100側でこのチャレンジ値Aを半導体メモリカード100内のKmuを用いて復号化し、得られた値をレスポンス値Bとしてアクセス装置に送信するResponse1フェーズ、アクセス装置側で保持していたチャレンジ値Aをアクセス装置側のKmuで復号化して、半導体メモリカード100から送信されたレスポンス値Bと比較するVerify1フェーズ)からなる。
【0050】
半導体メモリカード100による認証は3つのフェーズ(半導体メモリカード100で乱数を発生させ、得られた乱数をKmuを用いて暗号化して、この値をチャレンジ値Cとしてアクセス装置に送信するChallenge2フェーズ、アクセス装置側においてこのチャレンジ値Cをアクセス装置内のKmuを用いて復号化し、得られた値をレスポンス値Dとして半導体メモリカード100に送信するResponse2フェーズ、半導体メモリカード100側で保持していたチャレンジ値Cを半導体メモリカード100側のKmuで復号化して、アクセス装置から送信されたレスポンス値Dと比較するVerify2フェーズ)からなる。
【0051】
この際、アクセス装置が不正な暗号鍵Kmuを用いて相互認証を行えば、フェーズVerify1,2において、チャレンジ値Aとレスポンス値Bとの不一致、チャレンジ値Cとレスポンス値Dとの不一致が判定され、相互認証が中断することなる。逆に相手側の正当性が認証されれば、AKE処理部15は、上述したチャレンジ値Aと、チャレンジ値Cとの排他的論理和をとり、これをKmuにて暗号化することにより、セッション鍵Ksを得る。
【0052】
Ks復号化部16は、半導体メモリカード100と接続されたアクセス装置から、プロテクト領域に書き込むべきデータであって、暗号化されたものが出力された場合、それらデータがセッション鍵Ksを用いて暗号化されているものとして、セッション鍵Ksを用いることにより復号を行う。そうして復号により得られたデータが本来のデータであるとして、プロテクト領域に書き込む。
【0053】
Ks暗号化部17は、半導体メモリカード100と接続されたアクセス装置から、データを読み出す旨の読出コマンドが出力されると、セッション鍵Ksを用いてプロテクト領域に格納されているデータを暗号化した後に、そのコマンドを発行したアクセス装置に出力する。プロテクト領域に対するデータ読み書きには、Ks復号化部16による復号化と、Ks暗号化部17による暗号化とが伴うので、プロテクト領域は、半導体メモリカード100と接続しているアクセス装置がAKEプロセスを正しく行った場合のみ、正規にアクセスされることなる。
【0054】
続いて、第2実施形態に係るボリューム領域のフォーマットについて説明する。プロテクト領域が設けられたボリューム領域を詳細に示したのが、図16である。図16において、ボリューム領域全体のサイズをVolume_Sizeとすると、ボリューム領域の先頭からのVolume_Size×(1-β)までがユーザデータ領域に、ユーザデータ領域の直後からのVolume_Size×βがプロテクト領域に割り当てられる。このβは、0.01を最小とした値に設定される。例えば、Volume_Sizeが64MByteであり、βが0.01ならば、プロテクト領域は、640KByteに設定されることなる。これらユーザデータ領域及びプロテクト領域のフォーマットは、ファイルシステム操作部9が図9に示した初期化手順を実行することにより実現される。
【0055】
ユーザデータ領域の総データTSを124160セクタと決定した場合、ユーザデータ領域において、パーティション管理領域と、システム領域のサイズがどのように算出されるかの計算例を以下に示す。
TSが124160であるので、ステップS1ではクラスタサイズが32セクタと決定される。クラスタサイズが32セクタと決定されたので、ステップS2において、クラスタサイズSCと、フォーマットサイズTSとから、FAT12を使用すると決める。本実施形態では、RDEは32セクタに固定であり、RSCは1セクタに固定なので、ステップS3、ステップS4での計算は行われない。ステップS5では、数式11、数式12にてFATのデータ長を計算する。ここでFATはFAT12なので、
Size1=(((((TS-(RSC+RDE))/SC)+2)×12/8)+511)/512
=(((((124160-(1+32))/32)+2)×12/8)+511)/512
=12セクタと算出される。Size1が算出されれば、ステップS6において、マスタブートレコードとパーティションブートセクタとが別のクラスタになるように、数式12にてNOMを計算する。
【0056】
NOM=(SC-(RSC+RDE+Size1×2)%SC)+SC
=(32-(1+32+12×2)%32)+32
=39セクタ と算出される。NOMが算出されれば、ステップS7において、レギュラー領域におけるクラスタ数の計算を行う。
CN=(TS-(RSC+RDE+Size1×2+NOM))/SC
CN=(124160-(1+32+12×2+39))/32
=3877セクタと算出される。 ステップS8において、数式13にて、FATのデータ長を計算する。
【0057】
Size2=(((CN+2)×12/8)+511)/512
Size2=(((3877+2)×12/8)+511)/512
Size2=12と算出される。ステップS9では、ステップS5にて算出されたSize1と、ステップS8にて算出されたSize2との比較を行う。ここで、Size1は12セクタと算出され、Size2は12セクタと算出されるので、両者の一致がステップS9において算出される。これにより、本フローチャートの手順を終える。以上の計算にて算出されたTS、Size1、NOMの大きさで、システム領域と、パーティション管理領域を作図するとユーザデータ領域のレイアウトは、図17のように表現される。本図と図12とを比較すると、図12と比べて二重化ファイルアロケーションテーブルのサイズは増大しているが(14→24セクタ)、Reserved情報1/2,2/2のサイズが縮小しているため(17→7セクタ)、パーティション管理領域と、システム領域は、丁度3つの消去可能ブロックに収まっている。
【0058】
続いて、プロテクト領域のTSを1280セクタと決定した場合、パーティション管理領域と、システム領域がどのように算出されるかの計算例を以下に示す。
TSが1280であるので、ステップS1では、クラスタサイズは2セクタ(1KByteであり、ユーザデータ領域のサイズの1/16にすぎない)と決定される。クラスタサイズが2セクタと決定されたので、ステップS2において、クラスタサイズSCと、フォーマットサイズTSとから、FAT12を使用すると決定する。本実施形態では、RDEは32セクタに固定であり、RSCは1セクタに固定なので、ステップS3、ステップS4での計算は行われない。ステップS5では、数式11,数式12にてFATのデータ長を計算する。ここでFATはFAT12なので、
Size1=(((((TS-(RSC+RDE))/SC)+2)×12/8)+511)/512
=(((((1280-(1+32))/2)+2)×12/8)+511)/512
=2セクタと算出される。Size1が算出されれば、ステップS6において、マスタブートレコードとパーティションブートセクタとが別のクラスタになるように、数式12にてNOMを計算する。これによりNOMは、
NOM=(SC-(RSC+RDE+Size1×2)%SC)+SC
=(2-(1+32+2×2)%2)+2
=3セクタと算出される。NOMが算出されれば、ステップS7において、ユーザ領域におけるクラスタ数の計算を行う。これによりクラスタ数CNは、
CN=(TS-(RSC+RDE+Size1×2+NOM))/SC
CN=(1280-(1+32+2×2+3))/32
=620セクタと算出される。ステップS8において、FATのデータ長を算出する。
【0059】
FAT12の場合:Size2=(((CN+2)×12/8)+511)/512
Size2=(((620+2)×12/8)+511)/512
Size2=2
ステップS9では、ステップS5にて算出されたSize1と、ステップS8にて算出されたSize2との比較を行う。ここで、Size1は2セクタと算出され、Size2は2セクタと算出されるので、計算を終える。
【0060】
以上の計算にて算出されたTS、Size1、NOMの大きさで、システム領域と、パーティション管理領域を作図するとプロテクト領域のレイアウトは、図18のように表現される。本実施形態では、ユーザデータ領域と、プロテクト領域の双方が、パーティション管理領域と、システム領域と、ユーザ領域を有しているため、独立した物理媒体としてアクセス装置により認識されることなる。クラスタサイズに違いはあるものの、ユーザデータ領域と、プロテクト領域の双方とも、クラスタの境界と、消去可能ブロックの境界とが整合している。
【0061】
以上のように本実施形態によれば、ボリューム領域に、ユーザデータ領域と、プロテクト領域という2つの領域を設ける場合でも、消去可能ブロックの境界と一致させるので、クラスタの書き換えを短期間に完遂することができる。また、消去可能ブロックの消去回数を削減することも可能なので、不揮発メモリの寿命をいたずらに縮めることもない。
【0062】
(第3実施形態)
第3実施形態は、消去可能ブロックを、論理アドレス・物理アドレスを用いて管理し、消去可能ブロックに格納されたデータを消去する場合の改良に関する。第3実施形態におけるアクセス制御部2の構成を図19に示す。図19に示すようにアクセス制御部2は、コマンド解読部21、論理・物理アドレス変換部22、読出制御部23、割当変更部24、書込制御部25、消去制御部26、及び書換制御部27からなる。
【0063】
コマンド解読部21は、アクセス装置から発行されたコマンドを受け取って、当該コマンド発行の際の内容を解読する。受け取ったコマンドが読出コマンドなら、不揮発メモリ1からのデータ読み出しを行うよう読出制御部23に命じ(Read)、受け取ったコマンドが、データが既に書き込まれているブロックをアクセス先とした書込コマンドなら、不揮発メモリ1へのデータ書き込みを行うよう書込制御部25に命じる(Write)。消去済みブロックをアクセス先とした書込コマンドなら、不揮発メモリ1に格納されたデータについての書き換えを行うよう書換制御部27に命じる(Modify)。状態取得コマンドなら後述する消去済みフリーリストを読み出すよう割当変更部24に命じる。消去コマンドなら、指定された消去可能ブロックを消去するよう割当変更部24に命じる。
【0064】
論理・物理アドレス変換部22は、各消去可能ブロックについての論理アドレスと物理アドレスとの対応関係を示すアドレス対応表を有しており、アクセス先の指定となる論理アドレスがアクセス装置から発行されれば、本アドレス対応表に示される対応関係を参照して、そのアクセスコマンドにて指定された論理アドレスを物理アドレスに変換して、読出制御部23、割当変更部24、書換制御部27に出力する。
【0065】
読出制御部23は、アクセス装置から読出コマンドが発行された場合、不揮発メモリ1において、その読出先に格納されているデータをアクセス装置に読み出すよう、制御を行う。
割当変更部24は、消去済みについての物理アドレスを先入先出し式に配置した消去済みフリーリストを保持しており、アクセス装置から書込コマンドが発行された場合、書込先にて指定された論理アドレスに対応する物理アドレスが消去済みフリーリストに存在するか否かを判定する。消去済みフリーリストに存在すると判定されれば、対応する物理アドレスを書込制御部25に出力すると共に、消去済みフリーリストから、その対応する物理アドレスを削除する。書込先論理アドレスに対応する物理アドレスが、未消去ブロックを指示するものであれば、消去済みフリーリストにおいて先頭に位置する物理アドレスをその書込先にて指定された論理アドレスに割り当てて書込制御部25に出力すると共に、書込先論理アドレスにそれまで割り当てられていた物理アドレスを、消去済みフリーリストの最後尾に追加する。また、アクセス装置から状態取得コマンドが発行されると、消去済みフリーリストに示される物理アドレスを論理アドレスに置き換えて、論理アドレスの羅列により消去済みの消去可能ブロックを表した消去済みフリーリストをアクセス装置に出力する。更にアクセス装置から論理アドレスが指定された消去コマンドが発行されれば、その論理アドレスに対応する物理アドレスを消去済みフリーリストに追加するよう制御を行う。
【0066】
書込制御部25は、書込コマンドによりブロックへの書き込みが命じられば、割当変更部24から出力された物理アドレスに従って、不揮発メモリ1に対するデータ書き込みを行う。
消去制御部26は、消去済みフリーリストにおいて、未消去ブロックの物理アドレスが追加されたか否かを一定期間毎に監視(ポーリング)しており、消去済みフリーリストに物理アドレスが追加されれば、その物理アドレスにて指示される消去可能ブロックを消去する。
【0067】
書換制御部27は、既にデータが書き込まれている消去可能ブロックの書き換えが書込コマンドにより命じられれば、不揮発メモリ1からワークメモリ3へとデータ読み出しを行い、ワークメモリ3において、データ書き換えを行った後、ワークメモリ3から不揮発メモリ1へのデータ書き込みを行う。書換制御部27による書き換え処理は、割当変更部24との協調制御により実現される。書換制御部27によるデータ書き換えの手順の推移を時系列に表したのが図20(a)〜(d)である。
【0068】
図20(a)は初期状態であり、網掛けがなされたブロック(物理アドレス0000,0001,0002,0004,0007〜0015のブロック)にデータが格納され、物理アドレス0003,0005,0006のブロックが消去済みであることを示す。消去済みフリーリストには、消去済みブロックの物理アドレス0003,0005,0006が配置される。論理アドレス−物理アドレスの対応を示すアドレス対応表は、論理アドレス0001,0002,0003,0004,0005がそれぞれ、物理アドレス0001,0002,0003,0004,0005に対応するよう設定されている。
【0069】
この際、論理アドレス0001の消去可能ブロックに別の値を書き込む旨の書込コマンドがアクセス装置から発行されれば、書込制御部25は図20(a)において実線の矢印▲1▼Readに示すように、論理アドレス0001のブロックに書き込まれたデータを不揮発メモリからワークメモリに転送し、ワークメモリにおいて、論理アドレス0001のブロックに書き込まれていたデータの書き換えを行う(▲2▼Modify)。
【0070】
続く図20(b)では、破線の矢印BN1に示すように、消去済みフリーリストにおいて先頭に位置する物理アドレス0003を取り出し、実線の矢印(▲3▼Write)に示すように、この物理アドレス0003に指定されたブロックに対するデータ書き込みを行う。その後、図20(c)において、物理アドレス0001のブロックを、データ消去の対象にするべく、実線の矢印▲4▼に示すように、物理アドレス0001を消去済みフリーリストに配する。
【0071】
最後に、図20(d)に示すように、論理アドレス−物理アドレスの対応関係の入れ替えを行う。即ち、物理アドレス0003を論理アドレス0001に割り当て、物理アドレス0001を論理アドレス0003に割り当てる。こうした物理アドレス0003へのデータ書き込みと、物理アドレス−論理アドレスの対応関係の入れ替えとを行えば、論理アドレス0001へのデータの上書きが実現されることなる。
【0072】
続いてアクセス装置の内部構成について説明する。図21は、第3実施形態におけるアクセス装置の、ファイルシステム操作部9の内部構成を示す図である。本図においてファイルシステム操作部9は、ファイル削除部28、先行消去制御部29を含む。
ファイル削除部28は、一次記憶装置7に読み出されたFATを更新して、半導体メモリカード100に書き込むことにより、ファイルの削除を行う。アプリケーションプログラム8から、ファイルを削除する旨の指示がなされれば、該当するファイルの分割部分が格納されているクラスタに対応するFATエントリーを"0"に設定することによりファイル削除を実行する。こうしたファイル削除により、ファイルが格納されたクラスタは、未使用に設定されることなる。しかし、ファイルの分割部分を格納していたクラスタ(消去可能ブロック)が、白紙の状態に戻った訳ではないので、別のファイルを同じクラスタに記録する場合には、そのクラスタを一旦消去せねばならない。従って、古いファイルを削除し、新たなファイルを記録しようとする機会が多ければ多い程、消去のために多くの処理時間が費やされることなる。
【0073】
先行消去制御部29は、アプリケーションプログラム8からの指示が無い状態において、状態取得コマンドを半導体メモリカード100に発行して、消去済みフリーリストを半導体メモリカード100から読み出すよう命じる。コマンドを発行した後、消去済みフリーリストが出力されれば、ファイルシステム操作部9はこれをうけとって消去済みフリーリストと、FATとを照合することにより、FATにおいて未使用ブロックと設定されているクラスタに対応する消去可能ブロック(1つの消去可能ブロックが複数のクラスタから構成される場合は、未使用クラスタのみからなる消去可能ブロック)を特定する。そうして特定された未使用クラスタのみからなるブロックのうち、消去済みフリーリストに存在しないものを更に特定する。特定された消去可能ブロックは、いわば未使用未消去ブロックであり、そうして特定された未使用未消去ブロックの消去を命じるべく、消去コマンドを半導体メモリカード100に対して発行する。この消去コマンドは、論理アドレスの指定を含み、この論理アドレスに対応する物理アドレスを消去済みフリーリストに加えよと命じる旨を含む。こうした消去コマンド発行の際の発行により、物理アドレスが消去済みフリーリストに加えられれば、消去制御部26がポーリングを行うことにより、他の未使用未消去ブロックと同様、消去コマンドにて指定されたブロックが消去されることなる。以上の先行消去制御部29による処理手順を詳細に表したのが、図22のフローチャートであり、以降このフローチャートを参照しながら、先行消去制御部29の処理を詳細に説明する。
【0074】
本実施形態において先行消去制御部29が起動されれば、ステップS21〜ステップS22からなるループ処理に移行する。ステップS21において先行消去制御部29は、アプリケーションプログラム8からのアクセス指示が有ったかどうかの判定を行い、ステップS22において先行消去制御部29は、所定の監視期間が経過したかを判定する。アプリケーションプログラム8から指示があれば、ステップS23に移行して、指示に従ったファイルシステム操作及び半導体メモリカード100に対するアクセスを行う。所定の監視期間が経過したなら、ステップS22からステップS24への移行を行い、消去済みフリーリストを読み出す旨の状態取得コマンドを半導体メモリカード100に対して発行する。その後、ステップS25において消去済みフリーリストの読出待ち状態となり、消去済みフリーリストが読み出されれば、ステップS26において、FATにおいて未使用と設定されているクラスタからなる消去可能ブロックであって、消去済みフリーリストに存在しないものの論理アドレスを全て特定する。
【0075】
ステップS27では、未使用未消去ブロックが存在するか否かの判定を行い、未使用未消去ブロックが存在しなければ、何の処理をも行わずに、ステップS21−ステップS22のループ処理に戻る。未使用未消去ブロックが存在すれば、ステップS28〜ステップS30からなるループ処理を行う。即ち、ステップS26にて特定された未使用未消去ブロックの物理アドレスの全てに対して、未使用未消去ブロックを指定した消去コマンドを半導体メモリカード100に対して発行するのである。そうすると、半導体メモリカード100の内部では、これらの未使用未消去ブロックの物理アドレスが消去済みフリーリストに追加され、消去の対象となる。
【0076】
以上に示した先行消去制御部29の処理についての理解を深めるべく、本実施形態における先行消去制御部29の動作を図23(a)、(b)を参照しながら説明する。図23(a)に示す初期状態では、物理アドレス0001の消去可能ブロックがFATにおいて使用中と設定され、物理アドレス0003,0005,0006が、消去済みブロックのアドレスとして消去済みフリーリストに配置されている。ファイルシステムにおいて網掛けが付されたブロック(物理アドレス0000,0001,0002,0004)にはデータが書き込まれている。この状態において、アプリケーションプログラム8からの指示が存在せず、また、所定の監視時間が経過すれば(ステップS21-No、ステップS22-Yes)、アクセス装置内のファイルシステム操作部9が、半導体メモリカード100に対して状態取得コマンドを発行することにより、消去済みフリーリストを読み出し(ステップS24)、読み出された消去済みフリーリストとFATとの照合を行う(ステップS25)。その結果、FATにおいて未使用と設定されているブロックであって、消去済みフリーリスト内に論理アドレスが存在しないもの(物理アドレス0000,0002,0004の消去可能ブロック)が特定されることなる(ステップS26)。これらのブロックは未使用であることから、ファイルシステム操作部9は消去コマンドを半導体メモリカード100に発行することにより、これらの消去可能ブロックに対するデータの消去を行う(ステップS28〜ステップS30)。そうすると、図23(b)に示すように、物理アドレス0000,0002,0004が消去済みフリーリストに追加され、これらのアドレスにて指示される消去可能ブロックが消去されることなる。
【0077】
以上のように本実施形態によれば、アクセス装置は、半導体メモリカード100から消去済みフリーリストを読み出し、FATと、消去済みフリーリストとの照合により、未使用未消去ブロックを特定して、そのブロックの消去を半導体メモリカード100に命じるので、ファイルシステム操作部9がアプリケーションプログラム8からの指示を待っている状態等に、未使用ブロックの消去が可能となり、未使用ブロックの消去を効率良く行うことができる。
【0078】
また未使用ブロックの消去がアクセス装置の空き時間に行えるので、ブロックの消去が行なえる機会が大幅に増える。そのため、消去済みフリーリストにおける物理アドレスの個数が欠乏することは無くなり、ブロックの書き換えや上書きを行う場合の処理効率が大幅に向上されることなる。
尚、本実施形態においてアクセス装置が、半導体メモリカード100から消去済みフリーリストを読み出して未消去未使用ブロックを特定したが、半導体メモリカード100においてアクセス制御部2内の消去制御部26が、FATを参照することにより、未消去未使用ブロックを特定して、消去してもよい。アクセス制御部2が消去済みフリーリストに含まれる物理アドレスを論理アドレスに変換して、アクセス装置に引き渡したが、消去済みフリーリストとアドレス対応表とをアクセス装置に引き渡して、物理アドレスから論理アドレスへの変換をアクセス装置に行わせてもよい。データ消去処理はファイル削除時に行ってもよいし、他のコマンドの実行中に並行処理してもよい。また消去済みの消去可能ブロックの物理アドレスを管理する消去済みフリーリストの代わりに、未消去ブロックの消去可能ブロックの物理アドレスを管理する未消去フリーリストなど、その他の情報を用いてもよい。更に本実施形態では、FATを用いて説明を行ったが、リストなど他の形態でもよい。
【0079】
(第4実施形態)
第4実施形態は、第3実施形態において消去済みフリーリストを用いて実現した処理を、消去済みフリーテーブルを用いて実現する場合の改良に関する。第4実施形態におけるアクセス制御部2の内部構成を、図24に示す。本図を図19と比較すると、図19における消去済みフリーリストが図24では、「消去済みフリーテーブル」に置き換えられていることがわかる。第4実施形態に係る消去済みフリーテーブルは、各ブロックに対応するエントリーからなり、対応するブロックが消去済みであれば値"1"が設定され、未消去ブロックならば、"0"の値が設定される。"1","0"の設定により、消去済みフリーテーブルには、各ブロックの消去状況が表現される。
【0080】
消去済みフリーリストが消去済みフリーテーブルに置き換えられているため、第4実施形態における書込制御部25、消去制御部26は以下の処理を行うことが第3実施形態と異なる。
第4実施形態における書込制御部25は、アクセス装置から書込コマンドが発行された場合、消去済みフリーテーブルを参照して、そのコマンド発行の際の書込先が消去済みであるか、未使用ブロックであるかを判定する。そして書込先ブロックが消去済みであれば、その書込先ブロックに対するデータ消去を消去制御部26に行わせてから、データ書き込みを行う。つまり、第4実施形態の書込制御部25は、データ書き込みに先立って、データ消去を行う。
【0081】
続いて、第4実施形態に係る先行消去制御部29の処理について説明する。第4実施形態における先行消去制御部29は、第3実施形態同様、アプリケーションプログラム8からの指示を待っている状態において消去可能ブロックの消去を行う。その消去手順は、第3実施形態に示したものと同一であり、図25に示されるものとなる。図25のフローチャートは、図22における『消去済みフリーリスト』を『消去済みフリーテーブル』に置き換えたものであり、その処理内容には大差はないので詳細説明は省略する。続いて、第4実施形態における先行消去制御部29の処理を、図26を参照しながら説明する。
【0082】
図26(a)に示す初期状態は、アドレス0001のブロックが使用中領域として管理されており、消去済みフリーテーブルにおいて、アドレス0003,0005,0006のブロックがデータ消去済み領域として管理されている。不揮発メモリの網掛けの部分(アドレス0000,0001,0002,0004)にデータが記録されている。この初期状態では、未使用であるにも関わらずデータが書かれている領域が存在しており、それらの未使用領域にデータ書き込みが発生した場合、データ消去処理が必要となる。そこで本実施形態では、アプリケーションプログラム8からの指示が存在せず、監視期間が経過した状態において(ステップS21-No、ステップS22-Yes)、先行消去制御部29は、状態取得コマンドを半導体メモリカードに対して発行する(ステップS24)。消去済みフリーテーブルが読み出されれば、これを自身が有しているFATと照合し、FATにより未使用領域となっている領域で、かつ消去済みフリーテーブルで管理されていない消去可能ブロックを検索する(ステップS26)。図26の例では、FATに"0"が設定されており、消去済みフリーテーブルに"0"が設定されているアドレス0000,0002,0004の領域が未消去未使用ブロックに該当する。これらの領域は未使用であることからデータを消去しても構わないため、消去コマンドの発行により、消去済みフリーテーブルの該当アドレスに消去済みであることを意味する値"1"に設定させる(ステップS28〜ステップS30)。このようにすることで、未使用ブロックのデータはすべて消去され、消去済みフリーテーブルで消去済みブロックとして管理される。よって以降の未使用領域の割当てによるデータ書き込みは、すべて消去処理なしでおこなわれることになり、高速にデータ書き込みを行うことができる。
【0083】
(第5実施形態)
第5実施形態は、ファイルを格納する際のフラグメンテーションの解消を提案するものである。一般にファイルを格納する際のフラグメンテーションとは、ファイルを複数に分割して、その分割により得られた分割部分が不連続な領域に格納されることをいう。光ディスク、磁気ディスク等の記録媒体において、不連続な領域に複数の分割部分が格納されれば、それら不連続領域から分割部分を読み出すために、多くのディスクシークが発生し、読み出し処理が長期化してしまう。そうしたフラグメンテーションの解消のため、ファイルシステム操作部9では、それら不連続領域に格納された分割部分を読み出して、連続領域に格納し直すという処理を行う。以上の処理を経れば、ファイルを構成する分割部分の読み出しは、全くディスクシークを伴うことなくスムーズに行われることなり、結果として、データ読み出しの高速化が実現される。以上がディスクにおけるフラグメンテーションの解消についての概要である。これに対して、半導体メモリカード100におけるフラグメンテーションの発生を考える。半導体メモリカード100からのデータ読み出しには、ディスクシークといった処理は不要なので、ファイルを構成する分割部分が不連続に格納されたからといって、ディスクシークにより、処理が長期化することは有り得ない。
【0084】
ディスクシークが発生しないとはいえ、フラグメンテーションが存在していれば、以下に示す(1.コマンド発行の際のオーバーヘッド)、(2.FAT読み込みの際のキャッシュミス)が増大することにより、ファイルの読み出し時間が長大化してしまう。
(1.コマンド発行の際のオーバーヘッド)
フラグメンテーションの有無がコマンド発行の際のオーバーヘッドとどのような因果関係にあるかは、図27(a)、(b)を用いて説明すれば理解が容易である。図27(a)は、48KByteのファイルを構成する16KByteの分割部分が3つの領域にバラバラに配置されている状態を表している。図27(b)は、48KByteのファイルが連続領域に配置された状態を示す。図27(a)、図27(b)において、ファイルシステム操作部9が不揮発メモリに対してデータの読み込みを実行する読出コマンドを、Read(add,size)の形式で発行するものとする。ここで、addは読み込み先の論理アドレスを示し、sizeは読み込みサイズを示す。各読出コマンドは、データ長に比例したデータ読み込み時間と、読出コマンドを発行するために必要な一定のオーバーヘッド時間がかかる。図27(a)のようなデータ配置では、Read(0000,16KByte),Read(0002,16KByte),Read(0004,16KByte)というように、3回の読出コマンドの発行により、ファイルを読み出さねばならない。そうすると、36m秒(=(8+4)×3)の読み出し時間が費やされる。一方、図27(b)のようなデータ配置では、Read(0000,48KByte)というように、1回のコマンド発行にて、48KByteのデータを読み出せばよい。読み出し時間は、28m秒(=(8×3+4))となる。これらのことからコマンド実行に伴うオーバーヘッドは、ファイルを構成する分割部分が多くの領域にバラバラに配置される程、増大することなる。
【0085】
(2.FATキャッシュ)
FATのキャッシュとは、半導体メモリカード100においてシステム領域に配置されているFATを、アクセス装置の内部メモリに先行的に読み出しておき、内部メモリに対するアクセスにて、FATの参照を高速に行うことである。かかるFATのキャッシュは、アクセス装置が携帯機器であり、アクセス装置の内部メモリの規模が小さい場合に、頻繁に行われる。FATのキャッシュは、FATが連続している領域に配置されているとして、FATを分割することにより得られた分割部分を格納している連続領域を順次読み出してゆくことにより行われる。しかし、FATのフラグメンテーションが発生している場合において、FATのキャッシュを行おうとすると、FATを構成する分割部分と、そうでない分割部分とが内部メモリに順次読み出されることなる。FATの構成部分でないデータが内部メモリに読み出されるということは、目的としないデータが内部メモリに多く読み出されることを意味し、キャッシュミスが発生していることになる。キャッシュミスが多く発生すれば、それだけ内部メモリへの読み出し回数が増大することになるので、FATの読み出しをいたずらに長期化させる結果となる。
【0086】
こうした2つの問題があるからといって、ディスクを対象としたフラグメンテーションの解消を半導体メモリカード100に対し実行するのは賢明ではない。何故なら、半導体メモリカード100では、ブロックに格納されているデータの書き換えにあたっては、それまで格納されたいたデータを一旦消去する必要があり、そうした消去のため、ディスク以上の処理時間が費やされるからである。そこで本実施形態では、フラグメンテーション発生時におけるコマンドオーバーヘッド及びキャッシュミスの増大への対処法として、物理アドレス、論理アドレスの対応関係を変更するという考えを提案する。つまりファイル、FATの分割部分の物理的な配置は変化させず、これらを格納したブロックが、連続した論理アドレスにて指示されるように、物理アドレス、論理アドレスの対応関係を変化させるのである。
【0087】
図27(a)のように、48KByteのファイルを構成する3つの分割部分が、3つの領域に配置される場合、それら分割部分を格納したブロックが連続した論理アドレスにて指示されれば、アクセス装置が複数の論理アドレスのうち先頭のものと、データ長48KByteとを指定した読出コマンドを一回発行することにより、それら3つの領域(ブロック)に格納された分割部分をまとめて読み出すことができる。またFATが3つに分割され、3つの領域に格納されている場合、これら3つのブロックを連続した論理アドレスにて指示すれば、これら連続論理アドレスを読出先とした読出コマンドを順次発行することにより、バラバラに格納されたFATを内部メモリに順次読み出してゆくことができ、キャッシュミスが生じることはない。
【0088】
ファイル、FATを分割することにより得られた複数の分割部分が複数の領域にバラバラに格納されている場合であっても、これらの領域に連続した論理アドレスを割り当てれば、読出コマンド発行に伴うオーバーヘッドを解消することができ、またキャッシュミスの発生を防ぐことができる。
以上説明した論理アドレスのフラグメーション解消処理は、先行消去制御部29が図28のフローチャートに示す手順を実行することにより、実現される。尚、本フローチャートの説明にあたって、図29の説明図を引用するものとする。図29は、フローチャートにおける変数s、変数t、変数u、変数v、変数yが具体的にどのようなものを対象としているかを示す図である。ステップS50において、ファイルシステム操作部9は、変数x、変数yのそれぞれの初期化を行う(x←1,y←1)。これにより、1番目のファイルの1番目の分割部分が処理対象となる。続いてステップS51では、x番目のファイルのy番目の分割部分を格納したブロックの論理アドレスsと、x番目のファイルのy+1番目の分割部分を格納したブロックの論理アドレスtとの前後比較を行う。図29(a)のように、y番目の分割部分と、y+1番目の分割部分とが、隔てられた消去可能ブロックに格納されているが、y番目、y+1番目の順に分割部分が格納されている場合、ステップS52がYesとなり、そのままステップS54に移行する。
【0089】
図29(b)のように、y+1番目の分割部分、y番目の分割部分の順で、分割部分が格納されているのであれば、ステップS53に移行して、物理アドレスuを論理アドレスtに割り当て、物理アドレスvを論理アドレスsに割り当てる。これにより、図29(b)の矢印rv1,rv2に示すように、物理アドレス−論理アドレス間の割り当て変更がなされる。続くステップS54では、y番目の分割部分が格納された消去可能ブロックの論理アドレスと、y+1番目の分割部分が格納された消去可能ブロックの論理アドレスとが連続しているかを判定する。図29(c)のようにy番目の分割部分を格納した消去可能ブロックの直後の消去可能ブロックに、y+1番目の分割部分が格納されている場合、s+1=tという関係が成立するので、ステップS54がYesとなり、ステップS56に移行する。図29(d)のように、y番目の分割部分を格納した消去可能ブロックと、y+1番目の分割部分を格納した消去可能ブロックとが隔てられている場合、s+1=tという関係が成立しないので、ステップS54がNoとなり、ステップS55に移行する。ここで論理アドレスs+1に対応する物理アドレスを物理アドレスwとすると、ステップS55では、y+1番目の分割部分を格納した消去可能ブロックについての物理アドレスvを論理アドレスs+1に割り当て、物理アドレスwを論理アドレスtに割り当てる。y番目の分割部分、y+1番目の分割部分が図29(d)のように格納されている状態において、ステップS55の処理が実行されれば、矢印rv3,rv4に示すように、アドレスの対応関係の変更がなされる。
【0090】
以上の処理を終えれば、ステップS56において変数yがラストナンバーになったか否かを判定し、そうでなければ、ステップS57において変数yをインクリメントしたステップS51に移行する。ステップS56におけるチェックと、ステップS57における変数yのインクリメントとにより、x番目ファイルを構成する全ての分割部分を対象として、ステップS51〜ステップS57の処理は繰り返される。
【0091】
一方、ステップS56においてYesと判定されれば、ステップS58においてxがラストナンバーであるかが判定され、Noならば、ステップS59に移行して、変数xをインクリメントし(x←x+1)、ステップS60において変数yを初期化する。ステップS58におけるチェックと、ステップS59における変数yのインクリメントとにより、全てのファイルを対象として、ステップS51〜ステップS57の処理は繰り返される。
【0092】
図30に示す具体例を交えて、本実施形態におけるフラグメーションの解消を説明する。図30(a)に示す初期状態において、論理アドレス0000,0001,0004に対応する消去可能ブロックにはfile1を構成する分割部分(file1・1/3、file1・2/3、file1・3/3)が格納される。また、論理アドレス0002,0003,0005,0006に対応する消去可能ブロックには、file2を構成する分割部分(file2・1/4、file2・2/4、file2・3/4、file2・4/4)が格納されている。
【0093】
file1・2/3を格納した論理アドレス0001の次アドレス(論理アドレス0002)に対応する消去可能ブロックには、file2・1/4が格納されており、またfile1・3/3は、論理アドレス0004に対応する消去可能ブロックに格納されている。
本図に対して図28のフローチャートを適用すると、file1・1/3とfile1・2/3との関係を考えると、論理アドレス0000,0001というように、論理アドレスの順番に分割部分が配置されているので、対応関係の入れ替えは行われない。一方、file1・2/3とfile1・3/3との関係を考えると、file1・2/3が格納されている消去可能ブロックには、論理アドレス0001が対応しており、これの次の論理アドレス0002には、file2・1/4が格納された消去可能ブロックが対応しているので、ステップS54がNoとなり、ステップS55に移行する。そしてステップS55においてfile1・3/3が格納された論理アドレス、物理アドレスの対応関係と、file2・1/4が格納された論理アドレス、物理アドレスの対応関係とを入れ替えることにより、このfile1・2/3と、file1・3/3とが連続の論理アドレスにて指示されるようにする。即ち、file2・1/4が格納された消去可能ブロックについての物理アドレス0002に論理アドレス0004を割り当て、逆にfile1・3/3が格納された消去可能ブロックについての物理アドレス0004に論理アドレス0002を割り当てる。かかる変更後の論理アドレス−物理アドレスの対応関係は図30(b)の通りとなる。file1・3/3の処理が済んだので、file2のfile2・1/4に処理を移す。図30(b)において、file2・1/4とfile2・2/4との間の関係を考えると、file2・1/4は、論理アドレス0004に対応する消去可能ブロックに格納されており、また直後の分割部分file2・2/4は、論理アドレス0003に対応する消去可能ブロックに格納されているので、分割部分に付されるべき論理アドレスの順序が逆になっている。そのため、ステップS52がNoとなり、ステップS53に移行してfile2・1/4とfile2・2/4との前後関係を入れ替える。これにより、図30(c)に示すように、file2・1/4を格納した消去可能ブロックに対応する物理アドレス0002が、論理アドレス0003に割り当てられ、file2・2/4を格納した消去可能ブロックに対応する物理アドレス0003が、論理アドレス0004に割り当てられることなる。結果として、file1、file2を構成する分割部分は、全て連続する論理アドレスにて指示されることなる。
【0094】
以上のように本実施形態によれば、ファイルを構成する分割部分が連続な領域に格納されなくても、それら連続領域に連続した論理アドレスを割り当てるので、読出コマンド発行の際のオーバーヘッドや、FAT、ファイルをキャッシュする際のキャッシュミスを低減することができる。
(第6実施形態)
第6実施形態は、配信サービスにおいて不揮発メモリに様々なコンテンツを記録し、携帯型プレーヤで再生する場合の改良に関する。不揮発メモリに様々なコンテンツを記録する場合、音楽、映像、ゲーム、テキスト等、様々な属性を有するファイルが半導体メモリカード100に格納されることを想定せねばならない。読み出しの可否や編集の可否が、音楽、映像、ゲーム、テキストの種別毎に異なる場合、アクセス装置のファイルシステム操作部9は、ファイル読み出しや編集にあたって、ファイルの中身を調べて、それから読み出し処理や編集処理を行う必要がある。ファイルの読み出しや編集を行う度に、そのような中身の調査が必要となると、ファイルシステム操作部9の処理が複雑になってしまう。そこでDVD等に採用されているUDF(universal disk format)ファイルシステムでは、ファイルの中身を調べることなく、そのファイルに格納されたデータの種別が一目瞭然となるよう、ファイルに拡張属性を設定している。
【0095】
拡張属性の一例を図31に示す。図31は、UDFのImplementation Use Extended Attributeを用いて規定された新たな拡張属性であり、Attribute Type200,Attribute SubType2010,Reserved2020,Attribute Length2030,Implementation Use Length2040,Implementation Identifier2050(これらは、UDFのImplementation UseExtended Attributeと同一であるため、説明は省略する)、Implementation Use2060からなる。Implementation Use2060は、拡張属性のヘッダ部分のチェックサムが格納されるHeaderChecksum2061、ファイル名が格納されるName2063、ファイルの属性が格納されるFlag2062とからなる。Flag2062は、各ビットが0であるか、1であるかによりファイルの属性を表す。0ビット目は、対応するファイルがテキストファイルであるか否かを示し、1ビット目は、対応するファイルが音楽ファイルであるか否かを示す。2ビット目は、対応するファイルが映像ファイルであるか否かを示し、3ビット目以降は予備の領域となっている。
【0096】
こうした拡張属性を、半導体メモリカード100に格納させようとすると、1つの問題に直面する。それは、これまでの実施形態で説明してきたように、半導体メモリカード100のボリューム管理情報は、IS0/IEC9293のデータ構造に準じているので、各ファイルに拡張属性を設定する余地が存在しないという点である。
【0097】
そこで本実施形態では、プロテクト領域及び代替領域に拡張属性を格納する。プロテクト領域については、既に第2実施形態で説明済みなので説明を省略する。代替領域は、ユーザ領域の通常パーティションとは別に管理される領域であり、割当変更部24は、不揮発メモリのユーザ領域に欠陥セクタが現れた場合、この代替領域から、セクタを選んで、この欠陥セクタに置き換えるという動作を行う。図32は、代替領域が設けられた半導体メモリカード100の内部構成を示す図である。拡張属性をプロテクト領域又は代替領域に格納することにより、FAT型ファイルシステムで定義されていない新たな拡張属性を各ファイルに設定することができる。また、通常ユーザが使用するユーザ領域と、ユーザデータ領域において、新しく設定した拡張属性とはまったく独立して、従来のファイルシステムを使用することが可能であるため、他のシステムとの互換性が生じる。さらに、アクセス装置には各属性のファイルに必要な操作のみを実装することが可能になるため、アクセス装置に実装する操作の量を減らすことができ、アクセス装置のメモリ量を低減することができる。加えて、各ファイルの中身を参照して各ファイルの属性を判定するのではなく、拡張属性のみを参照して判定することが可能であるため、高速な動作が実現できる。
【0098】
(第7実施形態)
FAT型ファイルシステムにおい、書込禁止、読出禁止等の属性をファイルに設定することにより、ファイルの保護を、より強固にすることを提案する。一般にFAT型ファイルシステムでは、書込禁止や読込禁止といったファイル毎の属性を、ファイルエントリーに設定することができる。アクセス装置のファイルシステム操作部9は、半導体メモリカード100と接続された際、ボリューム管理情報を読み出して保持し、このファイルエントリに設定されたファイル属性を参照して、ファイルに対する読み書きを行うか否かの判定を行う。アクセス装置におけるアプリケーションプログラム8が、ファイルシステム操作部9を通じて半導体メモリカード100をアクセスするというルールを遵守していれば、ファイルエントリに設定された属性は有効なものとなる。しかしアクセス装置内部のアプリケーションプログラム8がファイルシステム操作部9を介さずに、半導体メモリカード100を直接アクセスする場合、つまりアプリケーションプログラム8が直接、半導体メモリカード100に対して読出コマンド、書込コマンドを発行することにより、半導体メモリカード100に対するデータ読み書きを行おうとする場合、ファイルエントリにおいて設定された書込禁止属性、読出禁止属性は無意味なものとなる。そこで本実施形態では、ファイルシステム操作部9を介さずに、アプリケーションプログラム8が直接半導体メモリカード100をアクセスしようとする場合であっても、読出禁止、書込禁止といった属性が有効に活用されるよう、半導体メモリカード100を図33のように構成している。図33は、第7実施形態に係る半導体メモリカード100の内部構成を示す図である。本図において特徴的なのは、不揮発メモリ1に、代替領域が設けられ、この代替領域にブロック属性テーブルが設けられている点である。
【0099】
ブロック属性テーブルは、ボリューム領域に含まれる消去可能ブロックに対応づけられたエントリーからなり、エントリーが"1"に設定されれば、対応するブロックは書込禁止に設定される。またエントリーが"2"に設定されれば、対応するブロックは、読出禁止に設定される。第5実施形態におけるファイルシステム操作部9及びアクセス制御部2は、ファイルエントリーに対する操作と共に、ブロック属性テーブルに対する操作をも行う。アプリケーションプログラム8がファイルオープンをファイルシステム操作部9に命じ、そのファイルに、属性の設定を命じた場合、ファイルシステム操作部9は、このファイルに対応するファイルエントリーに属性を設定する。例えば、読出禁止の設定をアプリケーションプログラム8が命じたなら、ファイルエントリーにおいて、その属性を読出禁止に設定する。書込禁止の設定をアプリケーションプログラム8が命じたなら、ファイルエントリーにおいて、その属性を書込禁止に設定する。隠れ属性の設定をアプリケーションプログラム8が命じたなら、ファイルシステム操作部9は、隠れ属性を、そのファイルエントリーに設定する。
【0100】
このようにして、ファイルのファイルエントリーに、属性が設定されたなら、ファイルシステム操作部9は、ファイルをクラスタサイズに分割し、分割により得られた分割部分のそれぞれをユーザ領域における複数クラスタに記録する。クラスタの記録に伴い、ブロック属性テーブルにおいて、各消去可能ブロックに相当するエントリーを、そのファイルの属性に応じて設定する。そのファイルが書込禁止であれば、そのファイルの分割部分を格納したクラスタに対応するエントリーに書込禁止属性を設定し、またファイルの属性が読出禁止であれば、そのファイルの分割部分を格納したクラスタに対応するエントリーに読出禁止属性を設定する。ファイルの属性が隠れ属性であれば、そのファイルの分割部分を格納したクラスタに対応するエントリーに読出禁止属性を設定する。
【0101】
こうして、ファイルがユーザ領域に記録されれば、ブロック属性テーブルに示された属性に従い、ブロックからのデータ読み出し、及び、ブロックに対するデータ書き込みを行う。即ち、読出制御部23は、アクセス装置から読出コマンドが発行されれば、ブロック属性テーブルにおいて、その読出先アドレスに対応するエントリーを参照し、当該エントリーが読み書き可能を示しているのなら、読出先アドレスにて示されるブロックにデータ読み出しを行い、また読出禁止属性を示しているのなら、データ読み出しを行わない。
【0102】
書込制御部25、書換制御部27は、アクセス装置から書込コマンドが発行されれば、ブロック属性テーブルにおいて、その書込先アドレスに対応するエントリーを参照し、当該エントリーが読み書き可能を示しているのなら、書込先アドレスにて示されるブロックにデータ書き込みを行い、また書込禁止属性を示しているのなら、データ書き込みを行わない。
【0103】
以上のようなブロックに対する読み書き制御は、アプリケーションプログラム8がファイルシステム操作部9を介して書込コマンド、読出コマンドを発行する場合も、ファイルシステム操作部9を介さずに読出コマンド、書込コマンドを発行する場合も可能であるので、アクセス装置からのコマンド発行がファイルシステム操作部9を介しているか否かに拘らず、ブロックに対する読み書きに制限を課すことができる。図34に示す具体的を交えながら、本実施形態に係るファイルシステム操作部9の処理を説明する。図34(a)において、消去可能ブロックにおけるアドレス0000,0002,0003にfile1のデータが、アドレス0001,0004にfile2のデータが、アドレス0005にfile3のデータが、アドレス0006にfile4のデータが格納されている。
【0104】
図34(b)は、書込禁止属性が設定されたfile1を不揮発メモリ1に格納する場合を想定した図である。ブロック属性テーブルにおいて、file1の各分割部分を格納したブロック(アドレス0000,0002,0003)に対応するエントリーは、書込禁止属性を示す値"1"が設定される。ブロック属性テーブルがこのように設定されれば、書込制御部25は、アドレス0000,0002,0003に対する書き込みが命じられても、それらブロックに対する書き込み処理を拒否する。
【0105】
図34(c)は、読込禁止属性が設定されたfile2を不揮発メモリ1に格納する場合を想定した図である。file2に読み込み禁止属性が設定された場合、ブロック属性テーブルにおいて、file2に対するファイルエントリーに読み込み禁止属性を示すフラグが設定される。そしてfile2は、複数に分割され、ユーザ領域における複数のブロックに格納される。
【0106】
file2の分割部分が論理アドレス0001,0004に格納された場合、ブロック属性テーブルにおいて、これらのブロックに対応するエントリーには、読み込み禁止属性を示す値"2"が設定される。ブロック属性テーブルがこのように設定されれば、読出制御部23は、たとえアクセス装置からブロックの読み出しが命じられたとしても、アドレス0001,0004からのデータ読み出しを拒否する。
【0107】
以上のように本実施形態によれば、アクセス装置のアプリケーションプログラム8がファイルシステム操作部9を介さずに半導体メモリカード100をアクセスしようとしても、半導体メモリカード100には、各ブロックに対応づけて、読出禁止、書込禁止が設定されているので、そのようなアクセスを拒否することができる。ファイルを格納したブロックに、読出禁止、書込禁止といった属性を設定することにより、ファイルの保護を確実にすることができ、またファイルに著作物が収録されている場合、その著作権を保護することができる。
【0108】
なお、本実施形態においては書込禁止属性を示すフラグに"1"、読み込み禁止属性を示すフラグに"2"を使用したが、これらのフラグは一例であり、本発明はこれらに限定されるものではない。また本実施形態では、不揮発メモリの各ブロックに読み書き禁止属性を付加するために、ブロック属性テーブルを使用したが、各ブロック毎に属性を設定できるものであれば、リスト構造を使用するなど、他の形態で実現してもよい。また、本実施形態では、不揮発メモリのブロック属性として、読み書き禁止属性を設定する方法について説明したが、root特権を持つユーザのみがアクセスできるブロックを管理する▲1▼、各ユーザIDが所有するブロックはそのユーザIDを持つユーザのみがアクセスする▲2▼、ユーザ毎にブロックのアクセス権を設定する▲3▼など、ブロック属性として、本実施例以外の情報を使用してもよい。以上、ファイルシステムの説明においては、FATファイルシステムを用いたが、UDFやWindosNTに採用されているNew Technology File System(NTFS)など、その他の従来のファイルシステムや独自のファイルシステムを用いて同様の効果をあげてもよい。また、消去可能ブロックを構成するセクタ数を32個としたのは、あくまでも一例に過ぎず、消去可能ブロックを構成するセクタ数が、これより増減してよいことはゆうまでもない。
【0109】
以上説明したように本発明に係る半導体メモリカード100は、不揮発メモリ1に対する高寿命化を実現できる。よって、電子音楽配信にて取得した音楽コンテンツを記録し、それからその音楽コンテンツを削除して、改めて別の音楽コンテンツを記録するというような「重ね録り」が多く発生した場合も、不揮発メモリの寿命を縮めることはないので、電子音楽配信にて取得した音楽コンテンツの記録に、一枚の半導体メモリカード100を繰り返し用いることができる。
【0110】
【発明の効果】
以上説明したように、本発明に係る半導体メモリカードのアクセス装置は、複数のセクタからなり、それら複数のセクタのうち連続する2のi乗個のセクタ(iは、0以上の整数)がデータ消去の最小単位であるブロックとしてグループ化されているメモリ領域を有する半導体メモリカードにおいて、複数のセクタのうち2のj乗個のセクタ(jは、0以上の整数)に格納されるデータ群をクラスタとして管理し、1つ以上のクラスタをファイルとして管理することにより、ファイルアクセスを実現する装置であり、前記メモリ領域において管理されるべきクラスタ数に基づいて、同一ファイルとして管理される前記クラスタ間のリンク関係をファイル毎に示すファイルアロケーションテーブルのデータサイズを算出し、ファイルアロケーションテーブルを含むボリューム管理情報のデータサイズを算出する算出手段と、算出されたボリューム管理情報のデータサイズを上回り、尚且つ、m×2のj乗個のセクタからなる第1領域を(mは、1以上の整数)、ボリューム管理情報の記録のために確保し、第1領域に後続するセクタからなる第2領域を、ユーザデータの記録のために確保する確保手段と、確保された第1領域にボリューム管理情報を記録し、第2領域にユーザデータを記録して、これらをクラスタとして管理する記録手段とを備えることを特徴としている。このアクセス装置によれば、メモリ領域においてm×2のj乗個のセクタからなる第1領域を、ボリューム管理情報の記録のために確保するので、1つのクラスタが2つの消去可能ブロックに跨って格納されることはない。クラスタの境界と、消去可能ブロックの境界との整合、ボリューム管理情報の境界と、消去可能ブロックの境界との整合が図られるので、1つのクラスタを書き換えたり、上書きしたりする際、消去するべき消去可能ブロックの数は1つで済み、消去可能ブロックの消去回数を低減させることができる。消去回数の低減により、半導体メモリカードにデータを書き込む際の時間を短縮することができ、また、不揮発メモリ自体の長寿命化を実現することができる。
【0111】
ここで前記ボリューム管理情報は、前記ファイルアロケーションテーブルの他に、マスタブートレコード、パーティションテーブル、パーティションブートセクタ、及びルートディレクトリエントリを含み、
前記記録手段は、マスタブートレコード及びパーティションテーブルを第1領域における先頭セクタに記録すると共に、先頭セクタから所定のセクタ数だけ隔てて、パーティションブートセクタ、ファイルアロケーションテーブル、ルートディレクトリエントリを記録することにより、第1領域の末尾とルートディレクトリエントリの末尾とを一致させてもよい。ドライブの先頭を示すマスタブートレコードから、パーティション領域の先頭を示すパーティションブートセクタまでのセクタ数を調整することにより、ボリューム管理情報を、m×2のj乗個のセクタからなる第1領域に収めるので、FAT型ファイルシステムを実行する機器との互換性を保つことができる。
【0112】
ここで前記算出手段は、
パーティションブートセクタの記録に必要なセクタ数と、ファイルアロケーションテーブルの記録に必要なセクタ数と、ルートディレクトリエントリの記録に必要なセクタ数との総和SUMを算出し、
前記確保手段は、以下の{数式1}に基づき数値mを算出して、第1領域の確保を行い、
前記記録手段は、以下の{数式1}を満たすセクタ数NUMから、先頭セクタのセクタ数を引き、これにより得られた数値を前記所定のセクタ数として算出してもよい。
【0113】
{数式1}
NUM+SUM = 2のj乗×m
ファイルアロケーションテーブルのサイズが変動するような場合であっても、消去可能ブロックのサイズの整数倍であって、ボリューム管理情報のサイズを越える最小のサイズの第1領域を確保するので、ファイルアロケーションテーブルサイズがどのように算出されようとも、必要最小限のサイズの第1領域を確保することができる。
【0114】
ここで前記記録手段は、ボリューム管理情報の記録にあたって、セクタ数NUMから、1を引いたセクタ数を、パーティションテーブルに設定してもよい。セクタ数NOMから1を引いたセクタ数がパーティションテーブルに設定されるので、第1領域のサイズが変化して、第2領域の先頭アドレスが変動した場合でも、アクセス装置は、このパーティションテーブルを参照することにより、ユーザ領域を確実にアクセスすることができる。
【図面の簡単な説明】
【図1】半導体メモリカードの外観形状を示す図である。
【図2】(a)(b)アクセス装置の外観を示す図である。
【図3】(a)半導体メモリカード及びアクセス装置の内部構成を示す図である。(b)アクセス装置にて用いられるソフトウェアのレイヤモデルを示す図である。
【図4】不揮発メモリ1がISO/IEC9293に準じたフォーマットでデータ格納を行う際のフォーマットを示した図である。
【図5】ボリューム領域に含まれるパーティション管理領域と、システム領域と、ユーザ領域の構成を示す図である。
【図6】(a)マスタブートレコード&パーティションテーブルセクタの構成を表した図である。(b)パーティションブートセクタの構成を示す図である。
【図7】(a)二重化FATの構成を示す図である。
(b)ルートディレクトリエントリの構成を示す図である。
(c)ユーザ領域の構成を示す図である。
【図8】ファイル格納方式の一例を示す図である。
【図9】 AOB001.SA1が複数のクラスタに記録されている場合のディレクトリエントリー及びFATについての設定例を示す図である。
【図10】(a)消去可能ブロックと、クラスタとの関係を示す図である。
(b)n=1と定められた場合のクラスタを示す図である。
(c)n=16と定められた場合のクラスタを示す図である。
【図11】(a)s個の消去可能ブロックのうち、m個のクラスタをボリューム管理情報の記録に割り当てる場合を想定した図である。
(b)n=1と設定された場合、ボリューム管理情報の記録にどれだけのクラスタが割り当てられるかを示す図である。
(c)n=16と設定された場合、ボリューム管理情報の記録にどれだけのクラスタを割り当てるかを示す図である。
【図12】数式11、数式12で算出された大きさで、パーティション管理領域と、システム領域と、クラスタを作図して得られた図である。
【図13】ボリューム領域の初期化手順を示したフローチャートである。
【図14】第2実施形態に係るアクセス装置及び半導体メモリカードの構成を示す図である。
【図15】セキュア処理部11の内部構成を示す図である。
【図16】プロテクト領域が設けられたボリューム領域を詳細に示した図である。
【図17】ユーザデータ領域におけるレイアウトの一例を示す図である。
【図18】プロテクト領域のレイアウトの一例を示す図である。
【図19】第3実施形態に係るアクセス制御部2の内部構成を示す図である。
【図20】(a)〜(d)消去可能ブロックの書き換えが行われる際の一連の手順を示す図である。
【図21】第3実施形態に係るファイルシステム操作部9の内部構成を示す図である。
【図22】第3実施形態に係る先行消去制御部29による処理手順を詳細に表したフローチャートである。
【図23】(a)(b)第3実施形態に係る消去可能ブロックの消去手順を示す図である。
【図24】第4実施形態におけるアクセス制御部2の内部構成を示す図である。
【図25】第4実施形態に係るファイルシステム操作部9による処理手順を詳細に表したフローチャートである。
【図26】(a)(b)第4実施形態に係る消去可能ブロックの消去手順を示す図である。
【図27】フラグメンテーションの有無がコマンド発行の際のオーバーヘッドとどのような因果関係にあるかを示す図である。
【図28】論理アドレスのフラグメーション解消処理の処理手順を示す図である。
【図29】(a)〜(d)図28のフローチャートにおいて、示さていれる変数s、変数t、変数u、変数v、変数yが具体的にどのようなモデルを想定しているかを示す図である。
【図30】第5実施形態におけるフラグメーションの解消がどのように行われるかを示す図である。
【図31】 UDFのImplementation Use Extended Attributeを用いて規定された新たな拡張属性を示す図である。
【図32】代替領域が設けられた半導体メモリカードの内部構成を示す図である。
【図33】第6実施形態に係る半導体メモリカードの内部構成を示す図である。
【図34】第7実施形態に係るファイルシステム操作部9の処理内容を示す説明図である。
【図35】物理層、ISO9293に準じたファイルシステム層、応用層からなるレイヤモデルを示す図である。
【図36】物理層、ファイルシステム層のフォーマットを示す図である。
【図37】物理層、ファイルシステム層のフォーマットを示す図である。
【図38】ボリューム管理情報の終端部分と、ユーザ領域の先頭に位置するクラスタとが同じ消去可能ブロックに配置された状態のボリューム領域のレイアウトを示す図である。
【符号の説明】
1 不揮発メモリ
2 アクセス制御部
3 ワークメモリ
4 カードコネクタ
5 二次記憶装置
7 一次記憶装置
8 アプリケーションプログラム
9 ファイルシステム操作部
10 デバイスドライバ
11 セキュア処理部
13 システム領域
14 Hidden領域
15 AKE処理部
16 Ks復号化部
17 Ks暗号化部
21 コマンド解読部
22 物理アドレス変換部
23 読出制御部
24 割当変更部
25 書込制御部
26 消去制御部
27 書換制御部
28 ファイル削除部
29 先行消去制御部
100 半導体メモリカード
101 プロテクトスイッチ

Claims (15)

  1. 複数のセクタからなり、それら複数のセクタのうち連続する2個のセクタ(iは、0以上の整数)がデータ消去の最小単位であるブロックとしてグループ化されているメモリ領域を有する半導体メモリカードにおいて、
    複数のセクタのうち2j個のセクタ(jは、0以上の整数)に格納されるデータ群をクラスタとして管理し、1つ以上のクラスタをファイルとして管理することにより、ファイルアクセスを実現するアクセス装置であって、
    前記メモリ領域において管理されるべきクラスタ数に基づいて、同一ファイルとして管理される前記クラスタ間のリンク関係をファイル毎に示すファイルアロケーションテーブルのデータサイズを算出し、マスタブートレコード、パーティションテーブル、パーティションブートセクタ、ファイルアロケーションテーブル及びルートディレクトリエントリを含むボリューム管理情報のデータサイズを算出する算出手段と、
    算出されたボリューム管理情報のデータサイズを上回り、尚且つ、2以上のブロックからなる第1領域を、ボリューム管理情報の記録のために確保し、第1領域に後続するブロックからなる第2領域を、ユーザデータの記録のために確保する確保手段と、
    前記第1の領域の先頭ブロックの先頭セクタに前記マスタブートレコードと前記パーティションテーブルを記録し、前記先頭セクタから所定数のセクタを隔てて前記先頭ブロックとは異なるブロックに前記パーティションブートセクタ、前記ファイルアロケーションテーブル、及び前記ルートディレクトリエントリを前記第1の領域の末尾と前記ルートディレクトエントリの末尾が一致するように記録し、第2領域にユーザデータを記録する記録手段とを備え、
    前記算出手段は、前記メモリ領域に含まれる総セクタ数と、前記1つのクラスタに含まれるセクタ数とを用いて、ファイルアロケーションテーブルを構成するセクタ数 Size1 を算出して、
    パーティションブートセクタのセクタ数 RSCと、ルートディレクトリエントリのセクタ数 RDE と、二重化されたファイルアロケーションテーブルのセクタ数 Size1 × 2 との総和である SUM を求め、
    前記確保手段は、NOM+SUM=m×2jに基づき数値mを算出すると共に、 NOM を算出し、総セクタ数と前記算出したボリューム管理情報の大きさ (NOM+SUM) に基づいてファイルアロケーションテーブルの大きさ Size2 を算出し、前記算出されたセクタ数 Size2 が、セクタ数 Size1 と等しいか否かを判定し、等しいなら、第1領域の確保を行うが、等しくないなら、セクタ数 Size2 をセクタ数 Size1 に代入することで SUM を更新して、 NOM の算出をやり直し、
    前記記録手段は、前記算出されたセクタ数NOMから、先頭セクタのセクタ数を引き、これにより得られた数値を前記所定のセクタ数として算出する
    ことを特徴とするアクセス装置。
  2. 前記第1領域を構成する2以上のブロックのうち先頭のブロックは、マスタブートレコード及びパーティションテーブルが記録された先頭セクタと、第1の予約領域とからなり、
    第1領域を構成する2以上のブロックのうち残りのブロックは、第2の予約領域と、パーティションブートセクタ、ファイルアロケーションテーブル及びルートディレクトリエントリーが記録された領域とからなる
    ことを特徴とする請求項1記載のアクセス装置。
  3. 前記記録手段は、ボリューム管理情報の記録にあたって、セクタ数NOMを、パーティションテーブルに設定する
    ことを特徴とする請求項1記載のアクセス装置。
  4. 前記ファイルアロケーションテーブルの記録に必要なセクタ数は、前記メモリ領域において管理されるべきクラスタ数に基づいた値である
    ことを特徴とする請求項1記載のアクセス装置。
  5. 前記ファイルアロケーションテーブルは、前記第2領域に格納され得る複数クラスタの総数に相等しい数のエントリーからなり、各エントリーは、同一ファイルとして管理されるクラスタ間のリンク関係を示し、
    前記アクセス装置は更に、
    メモリ領域における総セクタ数の設定を受け付ける受付手段を備え、
    前記算出手段は、
    受け付けた総セクタ数を、クラスタに対応する j 個のセクタ数で割ることにより、総クラスタ数を算出し、算出された総クラスタ数にエントリー1つ当たりのビット長を乗ずることにより、ファイルアロケーションテーブルのサイズを算出する第1算出部を備え、
    前記確保手段は
    算出されたファイルアロケーションテーブルのサイズと、パーティションブートセクタを構成するセクタ数と、ルートディレクトリエントリを構成するセクタ数との総和SUMをNOM+SUM=m×2jに適用することにより、数値mを算出する第2算出部
    を備えることを特徴とする請求項1記載のアクセス装置。
  6. 前記メモリ領域には、
    半導体メモリカードと接続している機器の正当性が認証された場合のみ、当該機器によりアクセスされるプロテクト領域と、
    機器の正当性が認証されるか否かに拘らず、当該機器によりアクセスされるユーザデータ領域とが存在し、
    前記受付手段は、
    プロテクト領域及びユーザデータ領域のそれぞれに割り当てるべき、総セクタ数の設定をアクセス装置外部から受け付けて、
    前記第1算出部は、
    プロテクト領域及びユーザデータ領域のそれぞれについての総セクタ数及びクラスタ数の設定に基づいて、それらの領域におけるファイルアロケーションテーブルのサイズを算出し、
    前記第2算出部は、
    プロテクト領域及びユーザデータ領域のそれぞれについて算出されたファイルアロケーションテーブルのサイズと、パーティションブートセクタを構成するセクタ数と、ルートディレクトリエントリを構成するセクタ数との総和SUMをNOM+SUM=m×2jに適用することにより、プロテクト領域及びユーザデータ領域のそれぞれについての数値mを算出する
    ことを特徴とする請求項5記載のアクセス装置。
  7. 前記プロテクト領域のクラスタサイズと、前記ユーザデータ領域のクラスタサイズとは、互いに異なる
    ことを特徴とする請求項6記載のアクセス装置。
  8. 前記記録手段は、
    ユーザデータを第2領域に記録するにあたって、前記ユーザデータを複数に分割することにより得られた複数の分割部分を、複数のクラスタとして第2領域に記録する処理(1)と、
    前記複数のクラスタ間のリンク関係を示す複数のエントリーをファイルアロケーションテーブルに設定する処理(2)と、
    前記ファイルについてのファイル名と、そのファイルを構成するクラスタのうち、先頭のものの所在を示す位置情報とを前記ルートディレクトリエントリに記録する処理(3)とを行う
    ことを特徴とする請求項5記載のアクセス装置。
  9. 前記確保手段は更に、第1領域と、第2領域とは別に予備領域をメモリ領域に確保し、
    前記記録手段は、
    第2領域に記録されたユーザデータを拡張属性が設定されたファイルとして管理する際、予備領域に、当該拡張属性を示す属性情報を記録する
    ことを特徴とする請求項1記載のアクセス装置。
  10. 前記半導体メモリカードは更に、複数のブロックのそれぞれに対応づけられた複数の属性エントリーからなる属性テーブルを保持しており、
    第2領域に記録されたユーザデータは、書込禁止属性が設定されたファイルを構成する1つ以上のクラスタとして管理されており、
    前記記録手段は、
    前記属性テーブルにおける複数の属性エントリーのうち、当該クラスタを格納する2のj乗個のセクタのみからなるブロックに対応するものに、書き込み禁止属性を設定する
    ことを特徴とする請求項1記載のアクセス装置。
  11. 前記ボリューム管理情報は、ファイルアロケーションテーブルを含み、
    前記ファイルアロケーションテーブルは、未使用のクラスタに対応するエントリーが、第1の値が設定され、使用中のクラスタに対するエントリーが、第1の値以外の値が設定され、
    前記半導体メモリカードは更に、
    メモリ領域に含まれる複数のブロックのうち、消去済みブロックを特定する物理アドレスからなる消去済みフリーリストを保持しており、
    前記アクセス装置は
    ファイルアロケーションテーブルにおいて未使用と設定されているクラスタを格納する2のj乗個のセクタのみを含むブロックであって、消去済みフリーテーブルにおいて未消去と設定されているものを特定する特定手段と
    特定された消ブロックを消去する消去手段と
    を備えることを特徴とする請求項1記載のアクセス装置。
  12. 前記ファイルアロケーションテーブルの複数のエントリーのうち未使用のクラスタに対応するものは、第1の値が設定され、使用中のクラスタに対するエントリーには、第1の値以外の値が設定され、
    半導体メモリカードは、各ブロックに対応づけられたエントリーとからなる消去済みフリーテーブルを保持し、
    各エントリーは、各ブロックが消去済みであるか、未消去であるかを示し、
    前記アクセス装置は
    ファイルアロケーションテーブルにおいて未使用と設定されているクラスタを格納する2のj乗個のセクタのみを含むブロックであって、消去済みフリーテーブルにおいて未消去と設定されているものを特定する特定手段と、
    特定されたブロックを消去する消去手段と
    を備えることを特徴とする請求項1記載のアクセス装置。
  13. 前記各ブロックには、ユーザデータを分割することにより得られた複数の分割部分が格納され、
    前記半導体メモリカードは、複数の分割部分が格納されたブロックに付された物理アドレスと、論理アドレスとの対応関係を示すテーブルを保持しており、
    前記アクセス装置は
    テーブルにおいて各分割部分を格納した複数ブロックについての複数の物理アドレスが、不連続な複数の論理アドレスに割り当てられている場合、これら複数ブロックについての複数の物理アドレスに、連続する複数の論理アドレスを割り当てる割当手段と、
    連続する複数の論理アドレスのうち、先頭のものを指定した読出コマンドを半導体メモリカードに発行することにより、連続する複数の論理アドレスが割り当てられた複数のブロックから、分割部分を読み出すコマンド発行手段と
    を備えることを特徴とする請求項1記載のアクセス装置。
  14. 複数のセクタからなり、それら複数のセクタのうち連続する2個のセクタ(iは、0以上の整数)がデータ消去の最小単位であるブロックとしてグループ化されているメモリ領域を有する半導体メモリカードにおいて、
    複数のセクタのうち2j個のセクタ(jは、0以上の整数)に格納されるデータ群をクラスタとして管理し、1つ以上のクラスタをファイルとして管理することにより、ファイルアクセスを実現するコンピュータに、初期化処理を行わせる初期化プログラムをコンピュータ読取可能な形式で記録している記録媒体であって、
    前記メモリ領域において管理されるべきクラスタ数に基づいて、同一ファイルとして管理される前記クラスタ間のリンク関係をファイル毎に示すファイルアロケーションテーブルのデータサイズを算出し、マスタブートレコード、パーティションテーブル、パーティションブートセクタ、ファイルアロケーションテーブル及びルートディレクトリエントリを含むボリューム管理情報のデータサイズを算出する算出ステップと、
    算出されたボリューム管理情報のデータサイズを上回り、尚且つ、2以上のブロックからなる第1領域を、ボリューム管理情報の記録のために確保し、第1領域に後続するブロックからなる第2領域を、ユーザデータの記録のために確保する確保ステップと、
    前記第1の領域の先頭ブロックの先頭セクタに前記マスタブートレコードと前記パーティションテーブルを記録し、前記先頭セクタから所定数のセクタを隔てて前記先頭ブロックとは異なるブロックに前記パーティションブートセクタ、前記ファイルアロケーションテーブル、及び前記ルートディレクトリエントリを前記第1の領域の末尾と前記ルートディレクトエントリの末尾が一致するように記録し、第2領域にユーザデータを記録する記録ステップとを有し、
    前記算出ステップが前記メモリ領域に含まれる総セクタ数と、前記1つのクラスタに含まれるセクタ数とを用いて、ファイルアロケーションテーブルを構成するセクタ数 Size1 を算出して、
    パーティションブートセクタのセクタ数 RSC と、ルートディレクトリエントリのセクタ数 RDE と、二重化されたファイルアロケーションテーブルのセクタ数 Size1 × 2 との総和である SUM を求め、
    前記確保ステップは、 NOM SUM =m×2 j に基づき数値mを算出すると共に、 NOM を算出し、総セクタ数と前記算出したボリューム管理情報の大きさ (NOM+SUM) に基づいてファイルアロケーションテーブルの大きさ Size2 を算出し、前記算出されたセクタ数 Size2 が、セクタ数 Size1 と等しいか否かを判定し、等しいなら、第1領域の確保を行うが、等しくないなら、セクタ数 Size2 をセクタ数 Size1 に代入することで SUM を更新して、 NOM の算出をやり直し、
    前記記録ステップは、前記算出されたセクタ数 NOM から、先頭セクタのセクタ数を引き、これにより得られた数値を前記所定のセクタ数として算出する
    手順をコンピュータに行せる初期化プログラムが記録されていることを特徴とするコンピュータ読取可能な記録媒体。
  15. 複数のセクタからなり、それら複数のセクタのうち連続する2個のセクタ(iは、0以上の整数)がデータ消去の最小単位であるブロックとしてグループ化されているメモリ領域を有する半導体メモリカードにおいて、
    複数のセクタのうち2j個のセクタ(jは、0以上の整数)に格納されるデータ群をクラスタとして管理し、1つ以上のクラスタをファイルとして管理することにより、ファイルアクセスを実現するコンピュータに、初期化処理を行わせる初期化方法であって、
    前記メモリ領域において管理されるべきクラスタ数に基づいて、同一ファイルとして管理される前記クラスタ間のリンク関係をファイル毎に示すファイルアロケーションテーブルのデータサイズを算出し、マスタブートレコード、パーティションテーブル、パーティションブートセクタ、ファイルアロケーションテーブル及びルートディレクトリエントリを含むボリューム管理情報のデータサイズを算出する算出ステップと、
    算出されたボリューム管理情報のデータサイズを上回り、尚且つ、2以上のブロックからなる第1領域を、ボリューム管理情報の記録のために確保し、第1領域に後続するブロックからなる第2領域を、ユーザデータの記録のために確保する確保ステップと、
    前記第1の領域の先頭ブロックの先頭セクタに前記マスタブートレコードと前記パーティションテーブルを記録し、前記先頭セクタから所定数のセクタを隔てて前記先頭ブロックとは異なるブロックに前記パーティションブートセクタ、前記ファイルアロケーションテーブル、及び前記ルートディレクトリエントリを前記第1の領域の末尾と前記ルートディレクトエントリの末尾が一致するように記録し、第2領域にユーザデータを記録する記録ステップとを有し、
    前記算出ステップは、前記メモリ領域に含まれる総セクタ数と、前記1つのクラスタに含まれるセクタ数とを用いて、ファイルアロケーションテーブルを構成するセクタ数 Size1 を算出して、
    パーティションブートセクタの記録に必要なセクタ数RSCと、ルートディレクトリエントリのセクタ数 RDE と、二重化されたファイルアロケーションテーブルのセクタ数 Size1 × 2 との総和である SUM を求め、
    前記確保ステップは、NOM+SUM=m×2jに基づき数値mを算出すると共に、 NOM を算出し、総セクタ数と前記算出したボリューム管理情報の大きさ (NOM+SUM) に基づいてファイルアロケーションテーブルの大きさ Size2 を算出し前記算出されたセクタ数 Size2 が、セクタ数 Size1 と等しいか否かを判定し、等しいなら、第1領域の確保を行うが、等しくないなら、セクタ数 Size2 をセクタ数 Size1 に代入することで SUM を更新して、 NOM の算出をやり直し、
    前記記録ステップは、前記算出されたセクタ数NOMから、先頭セクタのセクタ数を引き、これにより得られた数値を前記所定のセクタ数として算出する
    ことを特徴とする初期化方法。
JP2000321738A 1999-10-21 2000-10-20 半導体メモリカードについてのアクセス装置、コンピュータ読取可能な記録媒体、及び初期化方法。 Expired - Lifetime JP3954790B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000321738A JP3954790B2 (ja) 1999-10-21 2000-10-20 半導体メモリカードについてのアクセス装置、コンピュータ読取可能な記録媒体、及び初期化方法。

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP29963699 1999-10-21
JP11-299636 1999-10-21
JP2000321738A JP3954790B2 (ja) 1999-10-21 2000-10-20 半導体メモリカードについてのアクセス装置、コンピュータ読取可能な記録媒体、及び初期化方法。

Publications (2)

Publication Number Publication Date
JP2001188701A JP2001188701A (ja) 2001-07-10
JP3954790B2 true JP3954790B2 (ja) 2007-08-08

Family

ID=17875164

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000321738A Expired - Lifetime JP3954790B2 (ja) 1999-10-21 2000-10-20 半導体メモリカードについてのアクセス装置、コンピュータ読取可能な記録媒体、及び初期化方法。

Country Status (10)

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

Families Citing this family (196)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100478172B1 (ko) * 1995-01-31 2005-03-23 가부시끼가이샤 히다치 세이사꾸쇼 반도체 메모리 장치
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 株式会社東芝 不揮発性半導体メモリシステムの制御方法
EP1145126B1 (en) 1999-10-21 2005-02-02 Matsushita Electric Industrial Co., Ltd. A semiconductor memory card access apparatus, a computer-readable recording medium, an initialization method, and a semiconductor memory card
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メモリカードシステム
MXPA03011964A (es) 2001-07-05 2004-03-26 Matsushita Electric Ind Co Ltd Aparato, medio, metodo de grabacion y programa de computadora relacionado.
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
JP4082913B2 (ja) * 2002-02-07 2008-04-30 株式会社ルネサステクノロジ メモリシステム
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
JP3970070B2 (ja) * 2002-03-20 2007-09-05 富士通株式会社 自動イレーズ機能を有する不揮発性メモリ回路
JP2003296177A (ja) 2002-04-03 2003-10-17 Sony Corp 記録装置および方法、記録媒体、並びにプログラム
WO2003085666A1 (fr) * 2002-04-05 2003-10-16 Matsushita Electric Industrial Co., Ltd. Support d'enregistrement
JP4238514B2 (ja) * 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置
JP4206688B2 (ja) * 2002-04-15 2009-01-14 ソニー株式会社 データ処理装置及びデータ処理方法
JP3866635B2 (ja) * 2002-08-26 2007-01-10 株式会社東芝 メモリカード及び記憶領域切り替え方法
ATE382891T1 (de) * 2002-10-17 2008-01-15 Matsushita Electric Ind Co Ltd Vorrichtung zur dateiaktualisierung
CN1879091A (zh) * 2002-11-07 2006-12-13 皇家飞利浦电子股份有限公司 用于持久性存储器管理的方法和设备
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
ATE373852T1 (de) 2003-01-31 2007-10-15 Matsushita Electric Ind Co Ltd Halbleiterspeicherkarte und programm zu ihrer steuerung
DE602004010458T2 (de) 2003-02-04 2008-04-30 Matsushita Electric Industrial Co., Ltd., Kadoma Halbleiterspeicherkarte und rechnerlesbares programm
US7814291B2 (en) * 2003-06-19 2010-10-12 Koninklijke Philips Electronics N.V. Flexible formatting for universal storage device
EP1498841B1 (fr) * 2003-07-14 2010-03-24 EM Microelectronic-Marin SA Circuit transpondeur multi-applications et procédé de gestion de la mémoire d'un tel circuit transpondeur
US7941554B2 (en) 2003-08-01 2011-05-10 Microsoft Corporation Sparse caching for streaming media
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
US7882510B2 (en) * 2003-08-06 2011-02-01 Microsoft Corporation Demultiplexer application programming interface
US7610434B2 (en) 2003-11-18 2009-10-27 Panasonic Corporation File recording apparatus
EP1538507A1 (fr) * 2003-12-02 2005-06-08 Axalto S.A. Procédé de contrôle d'acces dans une memoire flash et systeme pour la mise en oeuvre d'un tel procédé
US20070162707A1 (en) * 2003-12-03 2007-07-12 Matsushita Electric Industrial Co., Ltd. Information recording medium data processing apparatus and data recording method
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
EP2506486A1 (en) 2004-02-23 2012-10-03 Lexar Media, Inc. Secure compact flash
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 キヤノン株式会社 カメラ及びその制御方法
US9639554B2 (en) 2004-12-17 2017-05-02 Microsoft Technology Licensing, Llc Extensible file system
US7873596B2 (en) 2006-05-23 2011-01-18 Microsoft Corporation Extending cluster allocations in an extensible file system
US8606830B2 (en) 2004-12-17 2013-12-10 Microsoft Corporation Contiguous file allocation in an extensible file system
US8321439B2 (en) 2004-12-17 2012-11-27 Microsoft Corporation Quick filename lookup using name hash
US8504849B2 (en) 2004-12-21 2013-08-06 Sandisk Technologies Inc. Method for versatile content control
US8051052B2 (en) * 2004-12-21 2011-11-01 Sandisk Technologies Inc. Method for creating control structure for versatile content control
US8601283B2 (en) 2004-12-21 2013-12-03 Sandisk Technologies Inc. Method for versatile content control with partitioning
US20060242066A1 (en) * 2004-12-21 2006-10-26 Fabrice Jogand-Coulomb Versatile content control with partitioning
US20060242067A1 (en) * 2004-12-21 2006-10-26 Fabrice Jogand-Coulomb System for creating control structure for versatile content control
US20060239450A1 (en) * 2004-12-21 2006-10-26 Michael Holtzman In stream data encryption / decryption and error correction method
US8396208B2 (en) * 2004-12-21 2013-03-12 Sandisk Technologies Inc. Memory system with in stream data encryption/decryption and error correction
US20060242151A1 (en) * 2004-12-21 2006-10-26 Fabrice Jogand-Coulomb Control structure for versatile content control
US20070180539A1 (en) * 2004-12-21 2007-08-02 Michael Holtzman Memory system with in stream data encryption / decryption
WO2006071725A2 (en) * 2004-12-21 2006-07-06 Sandisk Corporation Memory system with in-stream data encryption/decryption
US20060242150A1 (en) * 2004-12-21 2006-10-26 Fabrice Jogand-Coulomb Method using control structure for versatile content control
WO2006068190A1 (ja) * 2004-12-22 2006-06-29 Matsushita Electric Industrial Co., Ltd. 電子機器、フォーマット判別システム、フォーマット判別方法
US7823214B2 (en) * 2005-01-07 2010-10-26 Apple Inc. Accessory authentication for electronic devices
US8423788B2 (en) 2005-02-07 2013-04-16 Sandisk Technologies Inc. Secure memory card with life cycle phases
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
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 삼성전자주식회사 플래시 메모리 관리 방법 및 플래시 메모리 시스템
US20070041457A1 (en) 2005-08-22 2007-02-22 Tamer Kadous Method and apparatus for providing antenna diversity in a wireless communication system
US8073068B2 (en) 2005-08-22 2011-12-06 Qualcomm Incorporated Selective virtual antenna transmission
US8966284B2 (en) 2005-09-14 2015-02-24 Sandisk Technologies Inc. Hardware driver integrity check of memory card controller firmware
US20070061597A1 (en) 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
JP4808016B2 (ja) * 2005-12-20 2011-11-02 日立オートモティブシステムズ株式会社 マイクロコンピュータの初期化装置および車載用制御装置
US7752391B2 (en) * 2006-01-20 2010-07-06 Apple Inc. Variable caching policy system and method
US7702935B2 (en) * 2006-01-25 2010-04-20 Apple Inc. Reporting flash memory operating voltages
US20070174641A1 (en) * 2006-01-25 2007-07-26 Cornwell Michael J Adjusting power supplies for data storage devices
US7861122B2 (en) * 2006-01-27 2010-12-28 Apple Inc. Monitoring health of non-volatile memory
US20070180186A1 (en) * 2006-01-27 2007-08-02 Cornwell Michael J Non-volatile memory management
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
US7835518B2 (en) * 2006-04-03 2010-11-16 Sandisk Corporation System and method for write failure recovery
US20070230690A1 (en) * 2006-04-03 2007-10-04 Reuven Elhamias System for write failure recovery
JP4229140B2 (ja) * 2006-06-16 2009-02-25 ソニー株式会社 集積回路チップ、データ読み出し方法、データ書き込み方法、icカード、および携帯電話機
JP2008009933A (ja) * 2006-06-30 2008-01-17 Toshiba Corp 記憶装置とその制御方法
US8639939B2 (en) 2006-07-07 2014-01-28 Sandisk Technologies Inc. Control method using identity objects
US8266711B2 (en) * 2006-07-07 2012-09-11 Sandisk Technologies Inc. Method for controlling information supplied from memory device
US8245031B2 (en) * 2006-07-07 2012-08-14 Sandisk Technologies Inc. Content control method using certificate revocation lists
US20080034440A1 (en) * 2006-07-07 2008-02-07 Michael Holtzman Content Control System Using Versatile Control Structure
US20080010458A1 (en) * 2006-07-07 2008-01-10 Michael Holtzman Control System Using Identity Objects
US20080022395A1 (en) * 2006-07-07 2008-01-24 Michael Holtzman System for Controlling Information Supplied From Memory Device
US8613103B2 (en) 2006-07-07 2013-12-17 Sandisk Technologies Inc. Content control method using versatile control structure
US8140843B2 (en) 2006-07-07 2012-03-20 Sandisk Technologies Inc. Content control method using certificate chains
US20080010449A1 (en) * 2006-07-07 2008-01-10 Michael Holtzman Content Control System Using Certificate Chains
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
WO2008016081A1 (fr) * 2006-08-04 2008-02-07 Panasonic Corporation Contrôleur de mémoire, dispositif de mémoire non-volatile, dispositif d'accès et système de mémoire non-volatile
JP5014344B2 (ja) 2006-08-08 2012-08-29 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
EP2060022B1 (en) 2006-09-06 2016-02-17 Qualcomm Incorporated Codeword permutation and reduced feedback for grouped antennas
JP2008070929A (ja) * 2006-09-12 2008-03-27 Matsushita Electric Ind Co Ltd メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JPWO2008032711A1 (ja) * 2006-09-13 2010-01-28 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
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 삼성전자주식회사 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
US20080288712A1 (en) 2007-04-25 2008-11-20 Cornwell Michael J Accessing metadata with an external host
US7913032B1 (en) 2007-04-25 2011-03-22 Apple Inc. Initiating memory wear leveling
US8156257B2 (en) * 2007-08-10 2012-04-10 Panasonic Corporation Removeable medium, formatting device, formatting system, formatting method, and formatting program
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 株式会社東芝 認証方法、ホスト計算機及び記録媒体
WO2009122743A1 (ja) * 2008-04-04 2009-10-08 パナソニック株式会社 アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム
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
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
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
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
US20100235329A1 (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 デジタルコンテンツの保護方法、復号方法、再生装置、記憶媒体、暗号装置
US9222586B2 (en) * 2010-12-29 2015-12-29 Xiamen Solex High-Tech Industries Co., Ltd. Valve for switching waterways and adjusting flow
EP2492816A1 (en) * 2011-02-25 2012-08-29 Siemens Aktiengesellschaft Method for managing physical memory of a data storage and data storage management system
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 株式会社東芝 ホスト装置、装置、システム
JP5100884B1 (ja) 2011-12-02 2012-12-19 株式会社東芝 メモリ装置
JP5204290B1 (ja) * 2011-12-02 2013-06-05 株式会社東芝 ホスト装置、システム、及び装置
JP5112555B1 (ja) 2011-12-02 2013-01-09 株式会社東芝 メモリカード、ストレージメディア、及びコントローラ
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
EP1031992B1 (en) * 1989-04-13 2006-06-21 SanDisk Corporation Flash EEPROM system
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
AU2335792A (en) * 1992-04-21 1993-11-18 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 (en) * 1998-09-18 2010-09-22 Kabushiki Kaisha Toshiba Information recording method, information recording device, and information recording medium
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 克彦 長岡 糞尿処理工程などで用いる台車走行装置
EP1145126B1 (en) * 1999-10-21 2005-02-02 Matsushita Electric Industrial Co., Ltd. A semiconductor memory card access apparatus, a computer-readable recording medium, an initialization method, and a semiconductor memory card
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 情報記憶媒体、情報記録方法、及び情報再生方法
DE60105490T2 (de) * 2000-05-31 2005-10-20 Matsushita Electric Industrial Co., Ltd., Kadoma Informationsaufzeichnungsmedium, Informationsaufzeichnungsverfahren, Informationsaufzeichnungsgerät, Informationswiedergabeverfahren und Informationswiedergabegerät
MXPA03011964A (es) * 2001-07-05 2004-03-26 Matsushita Electric Ind Co Ltd Aparato, medio, metodo de grabacion y programa de computadora relacionado.
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
US20030200411A1 (en) 2003-10-23
WO2001029670A3 (en) 2001-09-13
EP1498810A1 (en) 2005-01-19
US7734864B2 (en) 2010-06-08
US20110283076A1 (en) 2011-11-17
RU2257609C2 (ru) 2005-07-27
US20100205361A1 (en) 2010-08-12
CN100442393C (zh) 2008-12-10
US8176239B2 (en) 2012-05-08
US8751734B2 (en) 2014-06-10
US7143261B2 (en) 2006-11-28
US7398353B2 (en) 2008-07-08
DE60017870T2 (de) 2005-06-23
WO2001029670A2 (en) 2001-04-26
US20070033335A1 (en) 2007-02-08
US20030196027A1 (en) 2003-10-16
EP1498810B1 (en) 2018-12-26
US20120191905A1 (en) 2012-07-26
US6823422B2 (en) 2004-11-23
CA2355082C (en) 2008-09-23
US20030196028A1 (en) 2003-10-16
US8473671B2 (en) 2013-06-25
US6829674B2 (en) 2004-12-07
US20080209115A1 (en) 2008-08-28
CN1203395C (zh) 2005-05-25
EP1145126B1 (en) 2005-02-02
DE60017870D1 (de) 2005-03-10
CN1674159A (zh) 2005-09-28
US20140237203A1 (en) 2014-08-21
US6829675B2 (en) 2004-12-07
US7899982B2 (en) 2011-03-01
MY123682A (en) 2006-05-31
US8015349B2 (en) 2011-09-06
US20110125958A1 (en) 2011-05-26
US6611907B1 (en) 2003-08-26
BR0007239A (pt) 2001-10-30
US20130268778A1 (en) 2013-10-10
CN1341237A (zh) 2002-03-20
US8990487B2 (en) 2015-03-24
JP2001188701A (ja) 2001-07-10
CA2355082A1 (en) 2001-04-26
US6829676B2 (en) 2004-12-07
US20030196064A1 (en) 2003-10-16
EP1145126A2 (en) 2001-10-17
BR0007239B1 (pt) 2014-03-18
US20050060513A1 (en) 2005-03-17

Similar Documents

Publication Publication Date Title
JP3954790B2 (ja) 半導体メモリカードについてのアクセス装置、コンピュータ読取可能な記録媒体、及び初期化方法。
KR100859922B1 (ko) 기록장치, 기록매체, 기록방법
JP3578265B2 (ja) 不揮発性メモリへのデータ書き込み方法および情報処理装置ならびに記録媒体
CN116225332A (zh) 存储管理方法、存储装置及嵌入式芯片
JP2000250817A (ja) 記憶システム、記憶装置及び記憶データ保護方法
JP3981303B2 (ja) 半導体メモリカード、記録装置、プログラム、方法
JP2012108672A (ja) 記録媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060323

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060630

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060809

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070403

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070427

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3954790

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130511

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130511

Year of fee payment: 6