(57)【要約】【課題】記憶領域を効果的に使用する為、記憶領域を予め連続して確保するモードと記録領域を順次に確保するモードとを選択することができるようにする。【解決手段】本発明の一態様は、不揮発性メモリを有する記憶部と、前記不揮発性メモリにファイルを生成する際に、所定の設定情報を参照し、前記ファイルを生成する記憶領域を、同一の記憶単位で、予め連続して確保するモードと順次に確保するモードとを選択する制御部を備える半導体装置である。【選択図】図１
2020119329.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリを有する記憶部と、
前記不揮発性メモリにファイルを生成する際に、所定の設定情報を参照し、前記ファイルを生成する記憶領域を、同一の記憶単位で、予め連続して確保するモードと順次に確保するモードとを選択する制御部
を備える半導体装置。
【請求項２】
前記設定情報は、外部の端末から受信した所定の設定コマンドに応じて前記記憶部に予め記憶される
請求項１に記載の半導体装置。
【請求項３】
前記設定情報は、外部の端末から受信した前記ファイルの生成を指示するコマンド内に含まれる
請求項１に記載の半導体装置。
【請求項４】
前記制御部は、前記ファイルを生成する前に削除した他のファイルのサイズが前記生成するファイルのサイズ以上である場合、前記他のファイルを削除した領域に前記ファイルを生成する
請求項１から３のいずれか１項に記載の半導体装置。
【請求項５】
前記半導体装置が、ＩＣカードである
請求項１から４のいずれか１項に記載の半導体装置。
【請求項６】
不揮発性メモリを有する記憶部と、
制御部と
を備える半導体装置において、
前記制御部によって、
前記不揮発性メモリにファイルを生成する際に、所定の設定情報を参照し、前記ファイルを生成する記憶領域を、同一の記憶単位で、予め連続して確保するモードと順次に確保するモードとを選択する
制御方法。
【請求項７】
不揮発性メモリを有する記憶部と、
制御部と
を備える半導体装置において、
前記制御部に、
前記不揮発性メモリにファイルを生成する際に、所定の設定情報を参照し、前記ファイルを生成する記憶領域を、同一の記憶単位で、予め連続して確保するモードと順次に確保するモードとを選択する処理を実行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置、制御方法、およびプログラムに関する。
【背景技術】
【０００２】
特許文献１には、ブロックの境界位置とクラスタの境界位置とが一致するようにフラッシュメモリを論理フォーマットし、データを記録する際に、クラスタ単位でデータを記録する通常記録モードと、ブロック単位でデータを記録するリアルタイム記録モードを選択できるようにしたデータ処理装置が記載されている。ここで、ブロック単位はフラッシュメモリにおけるデータの一括消去の単位である。また、クラスタ単位はデータの論理的な管理単位である。
【０００３】
特許文献１に記載されているデータ処理装置では、通常記録モードにおいて、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）を参照してクラスタ単位で空き領域が検索され、見つけ出された空き領域に順次データが記録される。一方、リアルタイム記録モードでは、ＦＡＴを参照して、１ブロック分連続した空き領域が検索され、１ブロック分連続して空き領域があれば、そのブロックに対して連続してデータが記録される。この場合、空きクラスタがあったとしても、その空きクラスタが含まれているブロックの他のクラスタに既にデータが記録されていれば、その空きクラスタに対してデータは記録されない。例えば、１ブロックが４クラスタで構成されていれば、４クラスタ単位で空きブロックに対してデータが記録される。
【０００４】
特許文献１に記載されているデータ処理装置によれば、リアルタイム記録モードを適用すれば、クラスタのサイズより消去ブロックのサイズの方が大きいメディアに対しても、特殊なファイルシステムを用いることなく、ブロック単位でデータを記録することができる。したがって、リアルタイム記録モードでは、記録済みデータを保護するために必要となるガベッジコレクションが発生することなく、データが記録される。よって、通常にクラスタ単位でデータを記録をするよりも、高速に記録することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４２０６６８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載されているデータ処理装置では、リアルタイム記録モードのデータの記録単位が、通常記録モードのデータの記録単位より大きい。そのため、記録しようとするファイルのデータサイズによっては使用できない記憶領域が増えてしまい、記憶領域を効果的に使用できない場合があるという課題があった。
【０００７】
本発明は、上記の事情に鑑みてなされたものであり、記憶領域を効果的に使用する為、記憶領域を予め連続して確保するモードと記録領域を順次に確保するモードとを選択することができる半導体装置、制御方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明の一態様は、不揮発性メモリを有する記憶部と、前記不揮発性メモリにファイルを生成する際に、所定の設定情報を参照し、前記ファイルを生成する記憶領域を、同一の記憶単位で、予め連続して確保するモードと順次に確保するモードとを選択する制御部を備える半導体装置である。
【０００９】
また、本発明の一態様は、上記半導体装置であって、前記設定情報は、外部の端末から受信した所定の設定コマンドに応じて前記記憶部に予め記憶される。
【００１０】
また、本発明の一態様は、上記半導体装置であって、前記設定情報は、外部の端末から受信した前記ファイルの生成を指示するコマンド内に含まれる。
【００１１】
また、本発明の一態様は、上記半導体装置であって、前記制御部は、前記ファイルを生成する前に削除した他のファイルのサイズが前記生成するファイルのサイズ以上である場合、前記他のファイルを削除した領域に前記ファイルを生成する。
【００１２】
また、本発明の一態様は、上記半導体装置であって、前記半導体装置が、ＩＣカードである。
【００１３】
また、本発明の一態様は、不揮発性メモリを有する記憶部と、制御部とを備える半導体装置において、前記制御部によって、前記不揮発性メモリにファイルを生成する際に、所定の設定情報を参照し、前記ファイルを生成する記憶領域を、同一の記憶単位で、予め連続して確保するモードと順次に確保するモードとを選択する制御方法である。
【００１４】
また、本発明の一態様は、不揮発性メモリを有する記憶部と、制御部とを備える半導体装置において、前記制御部に、前記不揮発性メモリにファイルを生成する際に、所定の設定情報を参照し、前記ファイルを生成する記憶領域を、同一の記憶単位で、予め連続して確保するモードと順次に確保するモードとを選択する処理を実行させるプログラムである。
【発明の効果】
【００１５】
本発明の各態様によれば、同一の記憶単位で、記憶領域を予め連続して確保するモードと記録領域を順次に確保するモードとを選択できるようにしたので、記憶領域を効果的に使用することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係るシステムの概略構成を示すブロック図である。
【図２】図１に示す半導体装置１の動作例を示すフローチャートである。
【図３】図１に示すシステム１０の動作例を説明するためのフローチャートである。
【図４】図３に示す動作例を説明するための模式図である。
【図５】図１に示すシステム１０の動作例を説明するためのフローチャートである。
【図６】図５に示す動作例を説明するための模式図である。
【図７】図１に示すシステム１０の動作例を説明するためのフローチャートである。
【図８】図１に示すシステム１０の動作例を説明するためのフローチャートである。
【図９】図１に示す半導体装置１の動作例を説明するための模式図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の一実施形態に係るシステムについて説明する。図１は、本発明の一実施形態に係るシステム１０の概略構成例を示すブロック図である。図１に示すシステム１０は、半導体装置１と、端末２を備える。
【００１８】
半導体装置１は、ＣＰＵ（中央処理装置）、メモリ等を構成する半導体素子を用いたＩＣ（集積回路）を備え、情報を処理および記憶する装置である。半導体装置１は、例えば、ＩＣカード、ＳＩＭカード（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ  Ｃａｒｄ）等である。図１に示す半導体装置１は、制御部１１と、通信部１２と、記憶部１３を備える。
【００１９】
制御部１１は、ＣＰＵ１１１を備え、記憶部１３に記憶されているプログラムを実行することで所定の処理を行う。
【００２０】
通信部１２は、所定のプロトコルに従って端末２との間で有線または無線の通信を行い、所定の情報を送受信する。
【００２１】
記憶部１３は、ＲＯＭ（リードオンリメモリ）１３１、ＲＡＭ（ランダムアクセスメモリ）１３２、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１３３を有する。ＲＯＭ１３１はＣＰＵ１１１が実行するプログラム等を記憶する。ＲＡＭ１３２はメインメモリとして動作する。ＥＥＰＲＯＭ１３３は、例えば１バイト単位でデータを書き換えたり、読み出したりすることができる不揮発性メモリであり、ユーザデータ等を書き換え可能に記憶する。また、ＥＥＰＲＯＭ１３３は、連結情報１３３１と設定情報１３３３を記憶し、ＤＡＴＡ（データ）領域１３３２を有する。
【００２２】
設定情報１３３３は、半導体装置１が、ファイルの生成（書き込み）を要求する端末２が送信したコマンド（生成要求コマンド）を受信した場合に、ＥＥＰＲＯＭ１３３内でファイルを生成する記憶領域を、同一の記憶単位で、予め連続して確保するモードと順次に確保するモードのいずれかに設定するための情報である。なお、設定情報１３３３は、例えば、ＥＥＰＲＯＭ１３３から読み出してＲＡＭ１３２に記憶されてもよいし、端末２から受信したコマンドに応じてＲＡＭ１３２内に記憶されてもよい。なお、以下では、記憶領域を連続して確保する設定を連続領域設定、記憶領域の分割を許して記憶領域を順次に確保する設定を分割領域設定、そして、連続領域設定と分割領域設定の両方を総称してファイル領域設定ともいう。
【００２３】
ＤＡＴＡ領域１３３２は、ファイルやデータ（以下、ファイルで代表する）が記憶される記憶領域である。本実施形態では、ＤＡＴＡ領域１３３２において、セクタを最小の記憶単位としてファイルが管理される。セクタは、複数のバイトからなる記憶領域（基本単位領域）である。各セクタには、各セクタを識別する番号であるセクタ番号「ｉ」が付けられている（図面では「ＳＥＣ（ｉ）」と表記する。）。
【００２４】
なお、本実施形態では、各ファイルは、ファイル名、ファイルサイズ、ファイルの先頭のセクタ番号等を示す情報に基づいて管理される。ＤＡＴＡ領域１３３２では、１つのファイルが複数のセクタにわたる場合があるが、その１つのファイルに対応するそれら複数のセクタは必ずしも連続したセクタとはならない（各ファイルのセクタ番号は必ずしも連続しない）。この場合、各セクタの次のセクタがどのセクタなのかということを表す情報が必要になる。このセクタ間のつながりを表す情報が、連結情報１３３１である。なお、連結情報１３３１は、例えば特許文献１に記載さているＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）とすることができる。
【００２５】
連結情報１３３１は、セクタの個数と同じ個数の格納領域からなる表形式の情報である。連結情報１３３１の各格納領域は、各セクタと一対一で対応し、各格納領域を識別する番号である連結番号「ｊ」が付けられている（図面では「ＬＮＫ（ｊ）」と表記する。）。連結情報１３３１の各格納領域には、対応する各セクタに連結される各セクタのセクタ番号が格納される。例えば連結番号「１」の格納領域は、セクタ番号「１」のセクタに対応し、セクタ番号「１」のセクタに連結するセクタ（次のセクタ）の番号が格納される。例えば連結番号「１」の格納領域に「２」と格納されていた場合、セクタ番号「２」のセクタが次のセクタである。ただし、セクタ番号「１」のセクタがファイルの最後のセクタである場合、連結番号「１」の格納領域には最後のセクタであることを示す特別な番号が格納される。また、セクタ番号「１」のセクタが未使用のセクタである場合（どのファイルにも含まれていない場合）、連結番号「１」の格納領域には未使用のセクタであることを示す特別な番号（番号「０」とする。）が格納される。また、セクタ番号「１」のセクタが不良なセクタである場合、連結番号「１」の格納領域には不良セクタであることを示す特別な番号が格納される。
【００２６】
ここで、図９を参照して、図１に示す半導体装置１において、制御部１１がＤＡＴＡ領域１３３２から「ファイルＡ」をＲＡＭ１３２へ読み出す動作について説明する。図９は、ＤＡＴＡ領域１３３２のセクタ番号「１」〜セクタ番号「８」の各セクタの記憶状態と、連結情報１３３１の連結番号「１」〜連結番号「８」の各格納領域の記憶状態と、ＲＡＭ１３２の記憶状態の変化を模式的に示す。なお、図９では、ＲＡＭ１３２内のセクタと同じデータサイズの連続する記憶領域をＲＡＭ（１）〜ＲＡＭ（３）として示している。
【００２７】
図９に示す例では、セクタ番号「１」〜セクタ番号「３」の３個のセクタにわたって「ファイルＡ」が記憶され、セクタ番号「４」〜セクタ番号「６」の３個のセクタにわたって「ファイルＢ」が記憶され、セクタ番号「７」〜セクタ番号「８」の２個のセクタにわたって「ファイルＣ」が記憶されている。また、連結情報１３３１として、セクタ番号「１」（ＳＥＣ（１））のセクタに対応する連結番号「１」（ＬＮＫ（１））の格納領域にセクタ番号「２」が、セクタ番号「２」（ＳＥＣ（２））のセクタに対応する連結番号「２」（ＬＮＫ（２））の格納領域にセクタ番号「３」が、セクタ番号「３」（ＳＥＣ（３））のセクタに対応する連結番号「３」（ＬＮＫ（３））の格納領域に「終了セクタ」であることを示すセクタ番号が、それぞれ記憶されている。また、セクタ番号「４」（ＳＥＣ（４））のセクタに対応する連結番号「４」（ＬＮＫ（４））の格納領域にセクタ番号「５」が、セクタ番号「５」（ＳＥＣ（５））のセクタに対応する連結番号「５」（ＬＮＫ（５））の格納領域にセクタ番号「６」が、セクタ番号「６」（ＳＥＣ（６））のセクタに対応する連結番号「６」（ＬＮＫ（６））の格納領域に「終了セクタ」であることを示すセクタ番号が、それぞれ記憶されている。また、セクタ番号「７」（ＳＥＣ（７））のセクタに対応する連結番号「７」（ＬＮＫ（７））の格納領域にセクタ番号「８」が、セクタ番号「８」（ＳＥＣ（８））のセクタに対応する連結番号「８」（ＬＮＫ（８））の格納領域に「終了セクタ」であることを示すセクタ番号が、それぞれ記憶されている。
【００２８】
図９に示す例において、制御部１１がＤＡＴＡ領域１３３２から「ファイルＡ」をＲＡＭ１３２へ読み出す場合、制御部１１は、「ファイルＡ」と「ファイルＡ」の先頭のセクタ番号を対応づける所定の情報を参照し、「ファイルＡ」の先頭セクタ（この場合、セクタ番号「１」のセクタ（以下、１番セクタともいう。））のデータをＲＡＭ（１）に取り出す（ステップＳＡ１）。次に、制御部１１は、「ファイルＡ」の連結情報を読み込む（この場合２番セクタに「ファイルＡ」の続きが存在する）（ステップＳＡ２）。次に、制御部１１は、連結情報を基に「ファイルＡ」のデータを連結する（ステップＳＡ３）。次に、制御部１１は、「ファイルＡ」の連結情報を読み込む（この場合３番セクタに「ファイルＡ」の続きが存在する）（ステップＳＡ４）。次に、制御部１１は、連結情報を基に「ファイルＡ」のデータを連結する（ステップＳＡ５）。次に、制御部１１は、「ファイルＡ」の連結情報を読み込む（この場合、終了セクタのためデータの連結は終了する）（ステップＳＡ６）。以上のようにして、制御部１１は、ＤＡＴＡ領域１３３２から「ファイルＡ」をＲＡＭ１３２へ読み出すことができる。
【００２９】
なお、半導体装置１の構成は、図１に示す構成に限定されない。例えば、制御部１１と通信部１２と記憶部１３の一部または全部が統合されて構成されていてもよい。また、制御部１１が暗号処理を行うコプロセッサ等を備えていてもよい。また、ＥＥＰＲＯＭ１３３には、ＣＰＵ１１１が実行するプログラムが書き換え可能に記憶されていてもよい。また、記憶部１３は、フラッシュメモリ等のブロック単位でデータを消去する不揮発性メモリを有していてもよい。また、１バイト単位でデータを書き換えたり、読み出したりすることができる不揮発性メモリは、ＥＥＰＲＯＭ以外の不揮発性メモリであってもよい。
【００３０】
次に、図１に示す端末２は、制御部２１と通信部２２を備える。制御部２１は、図示していない上位制御装置からの指示に基づき、通信部２２を制御する。通信部２２、所定のプロトコルに従って半導体装置１の通信部１２との間で有線または無線の通信を行い、所定の情報を送受信する。端末２は、例えばＩＣカードリーダライタ、スマートフォン等である。上位制御装置は、例えば、パーソナルコンピュータ、ホストサーバ等のコンピュータである。
【００３１】
次に、図２を参照して、端末２からファイル生成コマンドを受信した場合に、半導体装置１がファイルをＤＡＴＡ領域１３３２に生成する際の制御部１１の基本的な動作について説明する。図２は、図１に示す半導体装置１の動作例を示すフローチャートである。端末２からファイル生成コマンドを受信すると、制御部１１は、設定情報１３３３を参照し（ステップＳ１）、記憶領域を連続させて確保するモードを選択するのかまたは記憶領域の分割を許して順次に確保するモードを選択するのかを判断する（ステップＳ２）。
【００３２】
設定情報１３３３に基づく設定が連続させて確保する設定である場合（ステップＳ２で「連続」）、制御部１１は、まず、セクタ単位（所定の記憶単位）で連続した記憶領域を確保する（ステップＳ３）。ステップＳ３において、制御部１１は、例えば、連結情報１３３１を参照し、生成するファイルのデータサイズ分、未使用のセクタ（番号「０」の連結情報）が連続している記憶領域を検索し、検索した記憶領域の先頭のセクタ番号を、ファイルの生成領域の先頭のセクタ番号に決定する。次に、制御部１１は、ステップＳ３で確保した領域に、セクタ単位でファイルを生成し（ステップＳ４）、図２に示す処理を終了する。ステップＳ４において、制御部１１は、例えば、確保した記憶領域の先頭のセクタから順に、セクタ番号を１ずつ増加させながら、ＤＡＴＡ領域１３３２にファイルを書き込む。この場合、ファイルを書き込む領域のセクタ番号は連続しているので、例えば１セクタ分のファイルを書き込む毎に連結情報１３３１を参照して書き込み先のセクタ番号を確認する処理は行わなくてよい。このため、連結情報１３３１を参照して記憶先のセクタを確認しながらファイルを書き込む場合と比較して、ファイルの書き込み処理に要する時間を短縮することができる。
【００３３】
一方、設定情報１３３３に基づく設定が分割を許して順次に確保する設定である場合（ステップＳ２で「分割を許す」）、制御部１１は、セクタ単位（所定の記憶単位）でファイルを生成し（ステップＳ５）、図２に示す処理を終了する。ステップＳ５において、制御部１１は、例えば、連結情報１３３１から未使用のセクタ（番号「０」の連結情報）を検索し、検索された未使用のセクタにファイルの一部（または全部）を書き込み、書き込みが終了していない場合、再び、連結情報１３３１から未使用のセクタ（番号「０」の連結情報）を再び検索して、検索した未使用のセクタにファイルの一部を書き込む。制御部１１は、この検索処理と書き込み処理をファイルの書き込みが終わるまで繰り返し行う。この場合、未使用のセクタが連続しているか否かに関わらず、未使用のセクタがあれば、ファイルが書き込まれる。したがって、記憶領域を無駄なく効果的に使用することができる。
【００３４】
上述したように、本実施形態の半導体装置１は、制御部１１と記憶部１３を備える。記憶部１３は、不揮発性メモリであるＥＥＰＲＯＭ１３３を有する。制御部１１は、ファイルの生成を要求する外部の端末２から受信したコマンド（ファイル生成コマンド）に応じて、設定情報１３３３を参照し、ファイルを、セクタ単位（同一の記憶単位）で、ＥＥＰＲＯＭ１３３内の記憶領域を予め連続させて確保するのかまたは記憶領域の分割を許して順次に記憶領域を確保するのかを選択して確保した記憶領域に生成する。この構成によれば、同一の記憶単位で、記憶領域を予め連続して確保するモードと記録領域を順次に確保するモードとを選択することにより、記憶領域を効果的に使用することができる。例えば特許文献１に記載されているように書き込みの仕方によって記憶単位を変更する場合と比較して、高速性を優先する書き込みの仕方における記憶領域の使用の効率性を向上させることができる。
【００３５】
次に、図３〜図８を参照して、図１に示すシステム１０の動作例について説明する。なお、以下では、半導体装置１がＩＣカードである場合を例として、システム１０の動作例について説明する。この場合、半導体装置１（ＩＣカード）は、基本的な動作として、端末２が送信したコマンドを受信して処理し、コマンド処理の結果をレスポンスとして端末２へ送信する。
【００３６】
まず、図３および図４を参照して、記憶領域を連続させて確保する場合（連続領域設定の場合）のシステム１０の動作例について説明する。図３は、記憶領域を連続させて確保する場合のシステム１０の動作例を示すフローチャートである。図４は、図３に示す動作例におけるＤＡＴＡ領域１３３２の記憶状態の例を示す模式図である。
【００３７】
図３に示す動作例では、まず、端末２が、設定値を連続領域設定の値にして、ファイル領域設定の設定コマンドを送信する（ステップＳ１０１）。半導体装置１（ＩＣカード）（の制御部１１（以下、同様））は、端末２からファイル領域設定の設定コマンドを受信すると（ステップＳ１０２）、設定情報１３３３の値を連続領域設定の値とし（ステップＳ１０３）、設定終了レスポンスを送信する（ステップＳ１０４）。端末２は、半導体装置１（ＩＣカード）から設定終了レスポンスを受信すると（ステップＳ１０５）、初期ファイル生成コマンドを送信する（ステップＳ１０６）。半導体装置１（ＩＣカード）は、端末２から初期ファイル生成コマンドを受信すると（ステップＳ１０７）、初期ファイルを生成し（ステップＳ１０８）、初期ファイル生成終了レスポンスを送信する（ステップＳ１０９）。端末２は、半導体装置１（ＩＣカード）から初期ファイル生成終了レスポンスを受信する（ステップＳ１１０）。なお、ステップＳ１０８において、半導体装置１（ＩＣカード）は、エラー発生時はエラーレスポンスを返しフローを流れず処理を終了する。
【００３８】
ステップＳ１０１〜ステップＳ１１０の処理（ＳＢ１）では、図４に示すように例えばＤＡＴＡ領域１３３２に「ファイルＡ」、「ファイルＢ」および「ファイルＣ」の３つのファイルが生成される。この場合、セクタ番号「１」〜セクタ番号「３」の３個のセクタにわたって「ファイルＡ」が記憶され、セクタ番号「４」〜セクタ番号「５」の２個のセクタにわたって「ファイルＢ」が記憶され、セクタ番号「６」のセクタに「ファイルＣ」が記憶されている。
【００３９】
次に、端末２が、ファイル削除コマンドを送信すると（ステップＳ１１１）、半導体装置１（ＩＣカード）は、端末２からファイル削除コマンドを受信する（ステップＳ１１２）。次に、半導体装置１（ＩＣカード）は、端末２から受信したファイル削除コマンドに応じて、ファイルを削除し（ステップＳ１１３）、ファイル削除終了レスポンスを送信する（ステップＳ１１４）。ここで、端末２は、半導体装置１（ＩＣカード）からファイル削除終了レスポンスを受信する（ステップＳ１１５）。なお、ステップＳ１１３において、半導体装置１（ＩＣカード）は、エラー発生時はエラーレスポンスを返しフローを流れず処理を終了する。
【００４０】
ステップＳ１１１〜ステップＳ１１５の処理（ＳＢ２）において、図４に示すようにＤＡＴＡ領域１３３２に初期ファイルが生成された状態（ＳＢ１）で、「ファイルＢ」の削除（２セクタ分削除）が要求されたとすると、セクタ番号「４」〜セクタ番号「５」の２個のセクタにわたって記憶されている「ファイルＢ」が削除される。
【００４１】
次に、端末２が、ファイル生成コマンドを送信すると（ステップＳ１１６）、半導体装置１（ＩＣカード）は、端末２からファイル生成コマンドを受信する（ステップＳ１１７）。次に、半導体装置１（ＩＣカード）は、ステップＳ１１７で受信したファイル生成コマンドで生成（ＥＥＰＲＯＭ１１３への書き込み）を要求されたファイルを生成する前にステップＳ１１４で削除した他のファイルのサイズが、ステップＳ１１７で受信したファイル生成コマンドで生成（ＥＥＰＲＯＭ１１３への書き込み）を要求されたファイルのサイズ以上であるか否かを判断する（ステップＳ１１８）。半導体装置１（ＩＣカード）は、ファイル削除サイズがファイル生成サイズ以上である場合（ステップ１１８で「ＹＥＳ」の場合）、削除した領域にファイルを生成し（ステップＳ１１９）、以上でない場合（ステップ１１８で「ＮＯ」の場合）、新規領域にファイルを生成し（ステップＳ１２０）、ファイル生成終了レスポンスを送信する（ステップＳ１２１）。ここで、端末２は、半導体装置１（ＩＣカード）からファイル生成終了レスポンスを受信する（ステップＳ１２２）。なお、ステップＳ１１９およびステップＳ１２０において、半導体装置１（ＩＣカード）は、エラー発生時はエラーレスポンスを返しフローを流れず処理を終了する。
【００４２】
ステップＳ１１６〜ステップＳ１２２の処理（ＳＢ３）において、図４に示すように、ＤＡＴＡ領域１３３２に初期ファイルが生成された状態（ＳＢ１）から２セクタ分の「ファイルＢ」が削除された状態（ＳＢ２）で、３セクタ分の「ファイルＤ」の作成が要求されたとすると、「ファイルＢ」が削除されたセクタ番号「４」〜セクタ番号「５」の２個のセクタと異なる領域のセクタ番号「７」〜セクタ番号「９」の３個のセクタにわたって「ファイルＤ」が記憶される。すなわち、制御部１１は、削除した領域では３セクタ分の領域がとれないため、新規領域に連続領域で領域を確保する。
【００４３】
なお、ステップＳ１１６〜ステップＳ１２２の処理（ＳＢ３）において、図４に示すようにＤＡＴＡ領域１３３２に初期ファイルが生成された状態（ＳＢ１）から２セクタ分の「ファイルＢ」が削除された状態（ＳＢ２）で、上記と異なり、２セクタ分の「ファイルＤ」の作成が要求されたとすると、「ファイルＢ」が削除されたセクタ番号「４」〜セクタ番号「５」に「ファイルＤ」が記憶される。
【００４４】
次に、図５および図６を参照して、記憶領域の分割を許して順次に確保する場合（分割領域設定の場合）のシステム１０の動作例について説明する。図５は、記憶領域の分割を許して順次に確保する場合のシステム１０の動作例を示すフローチャートである。図６は、図５に示す動作例におけるＤＡＴＡ領域１３３２の記憶状態の例を示す模式図である。
【００４５】
図５に示す動作例では、まず、端末２が、設定値を分割領域設定の値にして、ファイル領域設定の設定コマンドを送信する（ステップＳ２０１）。半導体装置１（ＩＣカード）（の制御部１１（以下、同様））は、端末２からファイル領域設定の設定コマンドを受信すると（ステップＳ２０２）、設定情報１３３３の値を分割領域設定の値とし（ステップＳ２０３）、設定終了レスポンスを送信する（ステップＳ２０４）。端末２は、半導体装置１（ＩＣカード）から設定終了レスポンスを受信すると（ステップＳ２０５）、初期ファイル生成コマンドを送信する（ステップＳ２０６）。半導体装置１（ＩＣカード）は、端末２から初期ファイル生成コマンドを受信すると（ステップＳ２０７）、初期ファイルを生成し（ステップＳ２０８）、初期ファイル生成終了レスポンスを送信する（ステップＳ２０９）。端末２は、半導体装置１（ＩＣカード）から設定終了レスポンスを受信する（ステップＳ２１０）。なお、ステップＳ２０８において、半導体装置１（ＩＣカード）は、エラー発生時はエラーレスポンスを返しフローを流れず処理を終了する。
【００４６】
ステップＳ２０１〜ステップＳ２１０の処理（ＳＣ１）では、図６に示すように例えばＤＡＴＡ領域１３３２に「ファイルＡ」、「ファイルＢ」および「ファイルＣ」の３つのファイルが生成される。この場合、セクタ番号「１」〜セクタ番号「３」の３個のセクタにわたって「ファイルＡ」が記憶され、セクタ番号「４」〜セクタ番号「５」の２個のセクタにわたって「ファイルＢ」が記憶され、セクタ番号「６」のセクタに「ファイルＣ」が記憶されている。
【００４７】
次に、端末２が、ファイル削除コマンドを送信すると（ステップＳ２１１）、半導体装置１（ＩＣカード）は、端末２からファイル削除コマンドを受信する（ステップＳ２１２）。次に、半導体装置１（ＩＣカード）は、端末２から受信したファイル削除コマンドに応じて、ファイルを削除し（ステップＳ２１３）、ファイル削除終了レスポンスを送信する（ステップＳ２１４）。ここで、端末２は、半導体装置１（ＩＣカード）からファイル削除終了レスポンスを受信する（ステップＳ２１５）。なお、ステップＳ２１３において、半導体装置１（ＩＣカード）は、エラー発生時はエラーレスポンスを返しフローを流れず処理を終了する。
【００４８】
ステップＳ２１１〜ステップＳ２１５の処理（ＳＣ２）において、図６に示すようにＤＡＴＡ領域１３３２に初期ファイルが生成された状態（ＳＣ１）で、「ファイルＢ」の削除（２セクタ分削除）が要求されたとすると、セクタ番号「４」〜セクタ番号「５」の２個のセクタにわたって記憶されている「ファイルＢ」が削除される。
【００４９】
次に、端末２が、ファイル生成コマンドを送信すると（ステップＳ２１６）、半導体装置１（ＩＣカード）は、端末２からファイル生成コマンドを受信する（ステップＳ２１７）。次に、半導体装置１（ＩＣカード）は、ステップＳ２１７で受信したファイル生成コマンドで生成（ＥＥＰＲＯＭ１１３への書き込み）を要求されたファイルを生成する前にステップＳ２１４で削除した他のファイルのサイズが、ステップＳ２１７で受信したファイル生成コマンドで生成（ＥＥＰＲＯＭ１１３への書き込み）を要求されたファイルのサイズ以上であるか否かを判断する（ステップＳ２１８）。半導体装置１（ＩＣカード）は、ファイル削除サイズがファイル生成サイズ以上である場合（ステップ２１８で「ＹＥＳ」の場合）、削除した領域にファイルを生成し（ステップＳ２１９）、以上でない場合（ステップ２１８で「ＮＯ」の場合）、削除した領域と新規領域に分割してファイルを生成し（ステップＳ２２０）、ファイル生成終了レスポンスを送信する（ステップＳ２２１）。ここで、端末２は、半導体装置１（ＩＣカード）からファイル生成終了レスポンスを受信する（ステップＳ２２２）。なお、ステップＳ２１９およびステップＳ２２０において、半導体装置１（ＩＣカード）は、エラー発生時はエラーレスポンスを返しフローを流れず処理を終了する。
【００５０】
ステップＳ２１６〜ステップＳ２２２の処理（ＳＣ３）において、図６に示すように、ＤＡＴＡ領域１３３２に初期ファイルが生成された状態（ＳＣ１）から２セクタ分の「ファイルＢ」が削除された状態（ＳＣ２）で、３セクタ分の「ファイルＤ」の作成が要求されたとすると、「ファイルＢ」が削除されたセクタ番号「４」〜セクタ番号「５」の各セクタと異なる領域のセクタ番号「７」の３個のセクタに「ファイルＤ」が記憶される。この場合、制御部１１は、削除した領域を使用し、新規分と合わせて３セクタ分の分割した領域を確保する。
【００５１】
なお、ステップＳ２１６〜ステップＳ２２２の処理（ＳＣ３）において、図６に示すように、ＤＡＴＡ領域１３３２に初期ファイルが生成された状態（ＳＣ１）から２セクタ分の「ファイルＢ」が削除された状態（ＳＣ２）で、上記と異なり、２セクタ分の「ファイルＤ」の作成が要求されたとすると、「ファイルＢ」が削除されたセクタ番号「４」〜セクタ番号「５」に「ファイルＤ」が記憶される。
【００５２】
次に、図７と図８を参照して、設定情報１３３３の設定例について説明する。図７に示す設定例では、ファイルの生成はすべて初期時の設定値（分割領域設定または連続領域設定）に基づいて行われる。図８に示す設定例では、ファイル生成時の指定によりファイルの生成が個別に（各送信コマンドに含まれる）設定値（分割領域設定または連続領域設定）に基づいて行われる。
【００５３】
図７に示す動作例では、まず、端末２が、設定値を分割領域設定または連続領域設定の値にして、ファイル領域設定の設定コマンドを送信する（ステップＳ３０１）。半導体装置１（ＩＣカード）（の制御部１１（以下、同様））は、端末２からファイル領域設定の設定コマンドを受信すると（ステップＳ３０２）、設定情報１３３３の値を分割領域設定または連続領域設定の値とし（ステップＳ３０３）、設定終了レスポンスを送信する（ステップＳ３０４）。端末２は、半導体装置１（ＩＣカード）から設定終了レスポンスを受信すると（ステップＳ３０５）、初期ファイル生成コマンドを送信する（ステップＳ３０６）。ここで、半導体装置１（ＩＣカード）は、端末２から初期ファイル生成コマンドを受信する（ステップＳ３０７）。
【００５４】
図７に示すファイル領域設定の設定の仕方によれば、例えば、ファイル領域設定を１回だけ行い、以後は変更しないというような使用形態とすることができる。この場合、ＤＡＴＡ領域１３３２へのファイルの書き込みを、ＤＡＴＡ領域１３３２全体で分割領域設定または連続領域設定に統一することができる。
【００５５】
また、図８に示す動作例では、端末２が、ファイル領域設定の設定値を分割領域設定の値または連続領域設定の値とする情報を含めてファイル生成コマンドを送信すると（ステップＳ４０１）、半導体装置１（ＩＣカード）（の制御部１１（以下、同様））は、端末２からファイル生成コマンドを受信する（ステップＳ４０２）。次に、半導体装置１（ＩＣカード）は、ステップＳ４０２で受信したファイル生成コマンドに応じて、分割領域設定または連続領域設定でファイルを生成し（ＥＥＰＲＯＭ１１３への書き込み）（ステップＳ４０３）、ファイル生成終了レスポンスを送信する（ステップＳ４０４）。ここで、端末２は、半導体装置１（ＩＣカード）からファイル生成終了レスポンスを受信する（ステップＳ４０５）。なお、ステップＳ４０３において、半導体装置１（ＩＣカード）は、エラー発生時はエラーレスポンスを返しフローを流れず処理を終了する。
【００５６】
図８に示すファイル領域設定の設定の仕方によれば、例えば、ファイル生成コマンド受信時にファイル領域設定を行うことで、ファイル毎にファイル領域設定を設定することができる。
【００５７】
以上のように、本実施形態によれば、ファイルの領域を生成する際に、ファイル領域設定によってファイルを連続したセクタに記憶させパフォーマンスを優先したいのか、セクタを無駄なく使う為に容量を優先したいのかを選択することができる。状況に応じてファイル領域設定を切り替えることでどちらのメリットを得るのか選択することができる。
すなわち、パフォーマンスを優先にしたいときは連続領域設定に、容量を優先にしたいときは分割領域設定に、設定することにより、状況に合わせてファイル領域設定を選択することができる。
【００５８】
以上、この発明の実施形態について図面を参照して説明してきたが、具体的な構成は上記実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。なお、半導体装置１および端末２で実行される上記実施形態に係るプログラムの一部または全部は、コンピュータ読取可能な記録媒体、通信回線等を介して頒布することができる。
【符号の説明】
【００５９】
１  半導体装置
２  端末
１０  システム
１１  制御部
１３  記憶部
１３３  ＥＥＰＲＯＭ
１３３１  連結情報
１３３２  ＤＡＴＡ領域
１３３３  設定情報
【図１】
2020119329.tif 000003
【図２】
2020119329.tif 000004
【図３】
2020119329.tif 000005
【図４】
2020119329.tif 000006
【図５】
2020119329.tif 000007
【図６】
2020119329.tif 000008
【図７】
2020119329.tif 000009
【図８】
2020119329.tif 000010
【図９】
2020119329.tif 000011