(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-11
(45)【発行日】2023-05-19
(54)【発明の名称】半導体装置、制御方法、およびプログラム
(51)【国際特許分類】
G06F 16/18 20190101AFI20230512BHJP
G06K 19/07 20060101ALI20230512BHJP
【FI】
G06F16/18 100
G06K19/07
(21)【出願番号】P 2019010464
(22)【出願日】2019-01-24
【審査請求日】2021-12-10
(73)【特許権者】
【識別番号】000003193
【氏名又は名称】凸版印刷株式会社
(73)【特許権者】
【識別番号】000102728
【氏名又は名称】株式会社エヌ・ティ・ティ・データ
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100139686
【氏名又は名称】鈴木 史朗
(74)【代理人】
【識別番号】100169764
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100147267
【氏名又は名称】大槻 真紀子
(72)【発明者】
【氏名】荒井 和重
(72)【発明者】
【氏名】中村 裕也
【審査官】早川 学
(56)【参考文献】
【文献】特許第4206688(JP,B2)
【文献】特開2007-279873(JP,A)
【文献】特開2003-288258(JP,A)
【文献】特開2001-43662(JP,A)
【文献】米国特許出願公開第2007/0143561(US,A1)
【文献】国際公開第2005/015406(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06K 19/07
(57)【特許請求の範囲】
【請求項1】
不揮発性メモリを有する記憶部と、
前記不揮発性メモリにファイルを生成する際に、所定の設定情報を参照し、前記ファイルを生成する記憶領域を、同一の記憶単位
で予め連続して確保するモードと
、前記同一の記憶単位で順次に確保するモードとを選択する制御部
を備え
、
前記制御部は、
前記予め連続して確保するモードを選択したときは、前記同一の記憶単位で前記ファイルのデータサイズ分、連続して確保した前記記憶領域に、前記同一の記憶単位で前記ファイルを生成し、
前記順次に確保するモードを選択したときは、前記同一の記憶単位で順次に前記ファイルを生成する、
半導体装置。
【請求項2】
前記設定情報は、外部の端末から受信した所定の設定コマンドに応じて前記記憶部に予め記憶される
請求項1に記載の半導体装置。
【請求項3】
前記設定情報は、外部の端末から受信した前記ファイルの生成を指示するコマンド内に含まれる
請求項1に記載の半導体装置。
【請求項4】
前記制御部は、前記ファイルを生成する前に削除した他のファイルのサイズが前記生成するファイルのサイズ以上である場合、前記他のファイルを削除した領域に前記ファイルを生成する
請求項1から3のいずれか1項に記載の半導体装置。
【請求項5】
前記半導体装置が、ICカードである
請求項1から4のいずれか1項に記載の半導体装置。
【請求項6】
不揮発性メモリを有する記憶部と、
制御部と
を備える半導体装置において、
前記制御部によって、
前記不揮発性メモリにファイルを生成する際に、所定の設定情報を参照し、前記ファイルを生成する記憶領域を、同一の記憶単位
で予め連続して確保するモードと
、前記同一の記憶単位で順次に確保するモードとを選択
し、
前記予め連続して確保するモードを選択したときは、前記同一の記憶単位で前記ファイルのデータサイズ分、連続して確保した前記記憶領域に、前記同一の記憶単位で前記ファイルを生成し、
前記順次に確保するモードを選択したときは、前記同一の記憶単位で順次に前記ファイルを生成する、
制御方法。
【請求項7】
不揮発性メモリを有する記憶部と、
制御部と
を備える半導体装置において、
前記制御部に、
前記不揮発性メモリにファイルを生成する際に、所定の設定情報を参照し、前記ファイルを生成する記憶領域を、同一の記憶単位
で予め連続して確保するモードと
、前記同一の記憶単位で順次に確保するモードとを選択する処理
と、
前記予め連続して確保するモードを選択したときは、前記同一の記憶単位で前記ファイルのデータサイズ分、連続して確保した前記記憶領域に、前記同一の記憶単位で前記ファイルを生成する処理と、
前記順次に確保するモードを選択したときは、前記同一の記憶単位で順次に前記ファイルを生成する処理と
を実行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体装置、制御方法、およびプログラムに関する。
【背景技術】
【0002】
特許文献1には、ブロックの境界位置とクラスタの境界位置とが一致するようにフラッシュメモリを論理フォーマットし、データを記録する際に、クラスタ単位でデータを記録する通常記録モードと、ブロック単位でデータを記録するリアルタイム記録モードを選択できるようにしたデータ処理装置が記載されている。ここで、ブロック単位はフラッシュメモリにおけるデータの一括消去の単位である。また、クラスタ単位はデータの論理的な管理単位である。
【0003】
特許文献1に記載されているデータ処理装置では、通常記録モードにおいて、FAT(File Allocation Table)を参照してクラスタ単位で空き領域が検索され、見つけ出された空き領域に順次データが記録される。一方、リアルタイム記録モードでは、FATを参照して、1ブロック分連続した空き領域が検索され、1ブロック分連続して空き領域があれば、そのブロックに対して連続してデータが記録される。この場合、空きクラスタがあったとしても、その空きクラスタが含まれているブロックの他のクラスタに既にデータが記録されていれば、その空きクラスタに対してデータは記録されない。例えば、1ブロックが4クラスタで構成されていれば、4クラスタ単位で空きブロックに対してデータが記録される。
【0004】
特許文献1に記載されているデータ処理装置によれば、リアルタイム記録モードを適用すれば、クラスタのサイズより消去ブロックのサイズの方が大きいメディアに対しても、特殊なファイルシステムを用いることなく、ブロック単位でデータを記録することができる。したがって、リアルタイム記録モードでは、記録済みデータを保護するために必要となるガベッジコレクションが発生することなく、データが記録される。よって、通常にクラスタ単位でデータを記録をするよりも、高速に記録することができる。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載されているデータ処理装置では、リアルタイム記録モードのデータの記録単位が、通常記録モードのデータの記録単位より大きい。そのため、記録しようとするファイルのデータサイズによっては使用できない記憶領域が増えてしまい、記憶領域を効果的に使用できない場合があるという課題があった。
【0007】
本発明は、上記の事情に鑑みてなされたものであり、記憶領域を効果的に使用する為、記憶領域を予め連続して確保するモードと記録領域を順次に確保するモードとを選択することができる半導体装置、制御方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明の一態様は、不揮発性メモリを有する記憶部と、前記不揮発性メモリにファイルを生成する際に、所定の設定情報を参照し、前記ファイルを生成する記憶領域を、同一の記憶単位で、予め連続して確保するモードと順次に確保するモードとを選択する制御部を備える半導体装置である。
【0009】
また、本発明の一態様は、上記半導体装置であって、前記設定情報は、外部の端末から受信した所定の設定コマンドに応じて前記記憶部に予め記憶される。
【0010】
また、本発明の一態様は、上記半導体装置であって、前記設定情報は、外部の端末から受信した前記ファイルの生成を指示するコマンド内に含まれる。
【0011】
また、本発明の一態様は、上記半導体装置であって、前記制御部は、前記ファイルを生成する前に削除した他のファイルのサイズが前記生成するファイルのサイズ以上である場合、前記他のファイルを削除した領域に前記ファイルを生成する。
【0012】
また、本発明の一態様は、上記半導体装置であって、前記半導体装置が、ICカードである。
【0013】
また、本発明の一態様は、不揮発性メモリを有する記憶部と、制御部とを備える半導体装置において、前記制御部によって、前記不揮発性メモリにファイルを生成する際に、所定の設定情報を参照し、前記ファイルを生成する記憶領域を、同一の記憶単位で、予め連続して確保するモードと順次に確保するモードとを選択する制御方法である。
【0014】
また、本発明の一態様は、不揮発性メモリを有する記憶部と、制御部とを備える半導体装置において、前記制御部に、前記不揮発性メモリにファイルを生成する際に、所定の設定情報を参照し、前記ファイルを生成する記憶領域を、同一の記憶単位で、予め連続して確保するモードと順次に確保するモードとを選択する処理を実行させるプログラムである。
【発明の効果】
【0015】
本発明の各態様によれば、同一の記憶単位で、記憶領域を予め連続して確保するモードと記録領域を順次に確保するモードとを選択できるようにしたので、記憶領域を効果的に使用することができる。
【図面の簡単な説明】
【0016】
【
図1】本発明の一実施形態に係るシステムの概略構成を示すブロック図である。
【
図2】
図1に示す半導体装置1の動作例を示すフローチャートである。
【
図3】
図1に示すシステム10の動作例を説明するためのフローチャートである。
【
図4】
図3に示す動作例を説明するための模式図である。
【
図5】
図1に示すシステム10の動作例を説明するためのフローチャートである。
【
図6】
図5に示す動作例を説明するための模式図である。
【
図7】
図1に示すシステム10の動作例を説明するためのフローチャートである。
【
図8】
図1に示すシステム10の動作例を説明するためのフローチャートである。
【
図9】
図1に示す半導体装置1の動作例を説明するための模式図である。
【発明を実施するための形態】
【0017】
以下、図面を参照して本発明の一実施形態に係るシステムについて説明する。
図1は、本発明の一実施形態に係るシステム10の概略構成例を示すブロック図である。
図1に示すシステム10は、半導体装置1と、端末2を備える。
【0018】
半導体装置1は、CPU(中央処理装置)、メモリ等を構成する半導体素子を用いたIC(集積回路)を備え、情報を処理および記憶する装置である。半導体装置1は、例えば、ICカード、SIMカード(Subscriber Identity Module Card)等である。
図1に示す半導体装置1は、制御部11と、通信部12と、記憶部13を備える。
【0019】
制御部11は、CPU111を備え、記憶部13に記憶されているプログラムを実行することで所定の処理を行う。
【0020】
通信部12は、所定のプロトコルに従って端末2との間で有線または無線の通信を行い、所定の情報を送受信する。
【0021】
記憶部13は、ROM(リードオンリメモリ)131、RAM(ランダムアクセスメモリ)132、EEPROM(Electrically Erasable and Programmable Read Only Memory)133を有する。ROM131はCPU111が実行するプログラム等を記憶する。RAM132はメインメモリとして動作する。EEPROM133は、例えば1バイト単位でデータを書き換えたり、読み出したりすることができる不揮発性メモリであり、ユーザデータ等を書き換え可能に記憶する。また、EEPROM133は、連結情報1331と設定情報1333を記憶し、DATA(データ)領域1332を有する。
【0022】
設定情報1333は、半導体装置1が、ファイルの生成(書き込み)を要求する端末2が送信したコマンド(生成要求コマンド)を受信した場合に、EEPROM133内でファイルを生成する記憶領域を、同一の記憶単位で、予め連続して確保するモードと順次に確保するモードのいずれかに設定するための情報である。なお、設定情報1333は、例えば、EEPROM133から読み出してRAM132に記憶されてもよいし、端末2から受信したコマンドに応じてRAM132内に記憶されてもよい。なお、以下では、記憶領域を連続して確保する設定を連続領域設定、記憶領域の分割を許して記憶領域を順次に確保する設定を分割領域設定、そして、連続領域設定と分割領域設定の両方を総称してファイル領域設定ともいう。
【0023】
DATA領域1332は、ファイルやデータ(以下、ファイルで代表する)が記憶される記憶領域である。本実施形態では、DATA領域1332において、セクタを最小の記憶単位としてファイルが管理される。セクタは、複数のバイトからなる記憶領域(基本単位領域)である。各セクタには、各セクタを識別する番号であるセクタ番号「i」が付けられている(図面では「SEC(i)」と表記する。)。
【0024】
なお、本実施形態では、各ファイルは、ファイル名、ファイルサイズ、ファイルの先頭のセクタ番号等を示す情報に基づいて管理される。DATA領域1332では、1つのファイルが複数のセクタにわたる場合があるが、その1つのファイルに対応するそれら複数のセクタは必ずしも連続したセクタとはならない(各ファイルのセクタ番号は必ずしも連続しない)。この場合、各セクタの次のセクタがどのセクタなのかということを表す情報が必要になる。このセクタ間のつながりを表す情報が、連結情報1331である。なお、連結情報1331は、例えば特許文献1に記載さているFAT(File Allocation Table)とすることができる。
【0025】
連結情報1331は、セクタの個数と同じ個数の格納領域からなる表形式の情報である。連結情報1331の各格納領域は、各セクタと一対一で対応し、各格納領域を識別する番号である連結番号「j」が付けられている(図面では「LNK(j)」と表記する。)。連結情報1331の各格納領域には、対応する各セクタに連結される各セクタのセクタ番号が格納される。例えば連結番号「1」の格納領域は、セクタ番号「1」のセクタに対応し、セクタ番号「1」のセクタに連結するセクタ(次のセクタ)の番号が格納される。例えば連結番号「1」の格納領域に「2」と格納されていた場合、セクタ番号「2」のセクタが次のセクタである。ただし、セクタ番号「1」のセクタがファイルの最後のセクタである場合、連結番号「1」の格納領域には最後のセクタであることを示す特別な番号が格納される。また、セクタ番号「1」のセクタが未使用のセクタである場合(どのファイルにも含まれていない場合)、連結番号「1」の格納領域には未使用のセクタであることを示す特別な番号(番号「0」とする。)が格納される。また、セクタ番号「1」のセクタが不良なセクタである場合、連結番号「1」の格納領域には不良セクタであることを示す特別な番号が格納される。
【0026】
ここで、
図9を参照して、
図1に示す半導体装置1において、制御部11がDATA領域1332から「ファイルA」をRAM132へ読み出す動作について説明する。
図9は、DATA領域1332のセクタ番号「1」~セクタ番号「8」の各セクタの記憶状態と、連結情報1331の連結番号「1」~連結番号「8」の各格納領域の記憶状態と、RAM132の記憶状態の変化を模式的に示す。なお、
図9では、RAM132内のセクタと同じデータサイズの連続する記憶領域をRAM(1)~RAM(3)として示している。
【0027】
図9に示す例では、セクタ番号「1」~セクタ番号「3」の3個のセクタにわたって「ファイルA」が記憶され、セクタ番号「4」~セクタ番号「6」の3個のセクタにわたって「ファイルB」が記憶され、セクタ番号「7」~セクタ番号「8」の2個のセクタにわたって「ファイルC」が記憶されている。また、連結情報1331として、セクタ番号「1」(SEC(1))のセクタに対応する連結番号「1」(LNK(1))の格納領域にセクタ番号「2」が、セクタ番号「2」(SEC(2))のセクタに対応する連結番号「2」(LNK(2))の格納領域にセクタ番号「3」が、セクタ番号「3」(SEC(3))のセクタに対応する連結番号「3」(LNK(3))の格納領域に「終了セクタ」であることを示すセクタ番号が、それぞれ記憶されている。また、セクタ番号「4」(SEC(4))のセクタに対応する連結番号「4」(LNK(4))の格納領域にセクタ番号「5」が、セクタ番号「5」(SEC(5))のセクタに対応する連結番号「5」(LNK(5))の格納領域にセクタ番号「6」が、セクタ番号「6」(SEC(6))のセクタに対応する連結番号「6」(LNK(6))の格納領域に「終了セクタ」であることを示すセクタ番号が、それぞれ記憶されている。また、セクタ番号「7」(SEC(7))のセクタに対応する連結番号「7」(LNK(7))の格納領域にセクタ番号「8」が、セクタ番号「8」(SEC(8))のセクタに対応する連結番号「8」(LNK(8))の格納領域に「終了セクタ」であることを示すセクタ番号が、それぞれ記憶されている。
【0028】
図9に示す例において、制御部11がDATA領域1332から「ファイルA」をRAM132へ読み出す場合、制御部11は、「ファイルA」と「ファイルA」の先頭のセクタ番号を対応づける所定の情報を参照し、「ファイルA」の先頭セクタ(この場合、セクタ番号「1」のセクタ(以下、1番セクタともいう。))のデータをRAM(1)に取り出す(ステップSA1)。次に、制御部11は、「ファイルA」の連結情報を読み込む(この場合2番セクタに「ファイルA」の続きが存在する)(ステップSA2)。次に、制御部11は、連結情報を基に「ファイルA」のデータを連結する(ステップSA3)。次に、制御部11は、「ファイルA」の連結情報を読み込む(この場合3番セクタに「ファイルA」の続きが存在する)(ステップSA4)。次に、制御部11は、連結情報を基に「ファイルA」のデータを連結する(ステップSA5)。次に、制御部11は、「ファイルA」の連結情報を読み込む(この場合、終了セクタのためデータの連結は終了する)(ステップSA6)。以上のようにして、制御部11は、DATA領域1332から「ファイルA」をRAM132へ読み出すことができる。
【0029】
なお、半導体装置1の構成は、
図1に示す構成に限定されない。例えば、制御部11と通信部12と記憶部13の一部または全部が統合されて構成されていてもよい。また、制御部11が暗号処理を行うコプロセッサ等を備えていてもよい。また、EEPROM133には、CPU111が実行するプログラムが書き換え可能に記憶されていてもよい。また、記憶部13は、フラッシュメモリ等のブロック単位でデータを消去する不揮発性メモリを有していてもよい。また、1バイト単位でデータを書き換えたり、読み出したりすることができる不揮発性メモリは、EEPROM以外の不揮発性メモリであってもよい。
【0030】
次に、
図1に示す端末2は、制御部21と通信部22を備える。制御部21は、図示していない上位制御装置からの指示に基づき、通信部22を制御する。通信部22、所定のプロトコルに従って半導体装置1の通信部12との間で有線または無線の通信を行い、所定の情報を送受信する。端末2は、例えばICカードリーダライタ、スマートフォン等である。上位制御装置は、例えば、パーソナルコンピュータ、ホストサーバ等のコンピュータである。
【0031】
次に、
図2を参照して、端末2からファイル生成コマンドを受信した場合に、半導体装置1がファイルをDATA領域1332に生成する際の制御部11の基本的な動作について説明する。
図2は、
図1に示す半導体装置1の動作例を示すフローチャートである。端末2からファイル生成コマンドを受信すると、制御部11は、設定情報1333を参照し(ステップS1)、記憶領域を連続させて確保するモードを選択するのかまたは記憶領域の分割を許して順次に確保するモードを選択するのかを判断する(ステップS2)。
【0032】
設定情報1333に基づく設定が連続させて確保する設定である場合(ステップS2で「連続」)、制御部11は、まず、セクタ単位(所定の記憶単位)で連続した記憶領域を確保する(ステップS3)。ステップS3において、制御部11は、例えば、連結情報1331を参照し、生成するファイルのデータサイズ分、未使用のセクタ(番号「0」の連結情報)が連続している記憶領域を検索し、検索した記憶領域の先頭のセクタ番号を、ファイルの生成領域の先頭のセクタ番号に決定する。次に、制御部11は、ステップS3で確保した領域に、セクタ単位でファイルを生成し(ステップS4)、
図2に示す処理を終了する。ステップS4において、制御部11は、例えば、確保した記憶領域の先頭のセクタから順に、セクタ番号を1ずつ増加させながら、DATA領域1332にファイルを書き込む。この場合、ファイルを書き込む領域のセクタ番号は連続しているので、例えば1セクタ分のファイルを書き込む毎に連結情報1331を参照して書き込み先のセクタ番号を確認する処理は行わなくてよい。このため、連結情報1331を参照して記憶先のセクタを確認しながらファイルを書き込む場合と比較して、ファイルの書き込み処理に要する時間を短縮することができる。
【0033】
一方、設定情報1333に基づく設定が分割を許して順次に確保する設定である場合(ステップS2で「分割を許す」)、制御部11は、セクタ単位(所定の記憶単位)でファイルを生成し(ステップS5)、
図2に示す処理を終了する。ステップS5において、制御部11は、例えば、連結情報1331から未使用のセクタ(番号「0」の連結情報)を検索し、検索された未使用のセクタにファイルの一部(または全部)を書き込み、書き込みが終了していない場合、再び、連結情報1331から未使用のセクタ(番号「0」の連結情報)を再び検索して、検索した未使用のセクタにファイルの一部を書き込む。制御部11は、この検索処理と書き込み処理をファイルの書き込みが終わるまで繰り返し行う。この場合、未使用のセクタが連続しているか否かに関わらず、未使用のセクタがあれば、ファイルが書き込まれる。したがって、記憶領域を無駄なく効果的に使用することができる。
【0034】
上述したように、本実施形態の半導体装置1は、制御部11と記憶部13を備える。記憶部13は、不揮発性メモリであるEEPROM133を有する。制御部11は、ファイルの生成を要求する外部の端末2から受信したコマンド(ファイル生成コマンド)に応じて、設定情報1333を参照し、ファイルを、セクタ単位(同一の記憶単位)で、EEPROM133内の記憶領域を予め連続させて確保するのかまたは記憶領域の分割を許して順次に記憶領域を確保するのかを選択して確保した記憶領域に生成する。この構成によれば、同一の記憶単位で、記憶領域を予め連続して確保するモードと記録領域を順次に確保するモードとを選択することにより、記憶領域を効果的に使用することができる。例えば特許文献1に記載されているように書き込みの仕方によって記憶単位を変更する場合と比較して、高速性を優先する書き込みの仕方における記憶領域の使用の効率性を向上させることができる。
【0035】
次に、
図3~
図8を参照して、
図1に示すシステム10の動作例について説明する。なお、以下では、半導体装置1がICカードである場合を例として、システム10の動作例について説明する。この場合、半導体装置1(ICカード)は、基本的な動作として、端末2が送信したコマンドを受信して処理し、コマンド処理の結果をレスポンスとして端末2へ送信する。
【0036】
まず、
図3および
図4を参照して、記憶領域を連続させて確保する場合(連続領域設定の場合)のシステム10の動作例について説明する。
図3は、記憶領域を連続させて確保する場合のシステム10の動作例を示すフローチャートである。
図4は、
図3に示す動作例におけるDATA領域1332の記憶状態の例を示す模式図である。
【0037】
図3に示す動作例では、まず、端末2が、設定値を連続領域設定の値にして、ファイル領域設定の設定コマンドを送信する(ステップS101)。半導体装置1(ICカード)(の制御部11(以下、同様))は、端末2からファイル領域設定の設定コマンドを受信すると(ステップS102)、設定情報1333の値を連続領域設定の値とし(ステップS103)、設定終了レスポンスを送信する(ステップS104)。端末2は、半導体装置1(ICカード)から設定終了レスポンスを受信すると(ステップS105)、初期ファイル生成コマンドを送信する(ステップS106)。半導体装置1(ICカード)は、端末2から初期ファイル生成コマンドを受信すると(ステップS107)、初期ファイルを生成し(ステップS108)、初期ファイル生成終了レスポンスを送信する(ステップS109)。端末2は、半導体装置1(ICカード)から初期ファイル生成終了レスポンスを受信する(ステップS110)。なお、ステップS108において、半導体装置1(ICカード)は、エラー発生時はエラーレスポンスを返しフローを流れず処理を終了する。
【0038】
ステップS101~ステップS110の処理(SB1)では、
図4に示すように例えばDATA領域1332に「ファイルA」、「ファイルB」および「ファイルC」の3つのファイルが生成される。この場合、セクタ番号「1」~セクタ番号「3」の3個のセクタにわたって「ファイルA」が記憶され、セクタ番号「4」~セクタ番号「5」の2個のセクタにわたって「ファイルB」が記憶され、セクタ番号「6」のセクタに「ファイルC」が記憶されている。
【0039】
次に、端末2が、ファイル削除コマンドを送信すると(ステップS111)、半導体装置1(ICカード)は、端末2からファイル削除コマンドを受信する(ステップS112)。次に、半導体装置1(ICカード)は、端末2から受信したファイル削除コマンドに応じて、ファイルを削除し(ステップS113)、ファイル削除終了レスポンスを送信する(ステップS114)。ここで、端末2は、半導体装置1(ICカード)からファイル削除終了レスポンスを受信する(ステップS115)。なお、ステップS113において、半導体装置1(ICカード)は、エラー発生時はエラーレスポンスを返しフローを流れず処理を終了する。
【0040】
ステップS111~ステップS115の処理(SB2)において、
図4に示すようにDATA領域1332に初期ファイルが生成された状態(SB1)で、「ファイルB」の削除(2セクタ分削除)が要求されたとすると、セクタ番号「4」~セクタ番号「5」の2個のセクタにわたって記憶されている「ファイルB」が削除される。
【0041】
次に、端末2が、ファイル生成コマンドを送信すると(ステップS116)、半導体装置1(ICカード)は、端末2からファイル生成コマンドを受信する(ステップS117)。次に、半導体装置1(ICカード)は、ステップS117で受信したファイル生成コマンドで生成(EEPROM113への書き込み)を要求されたファイルを生成する前にステップS114で削除した他のファイルのサイズが、ステップS117で受信したファイル生成コマンドで生成(EEPROM113への書き込み)を要求されたファイルのサイズ以上であるか否かを判断する(ステップS118)。半導体装置1(ICカード)は、ファイル削除サイズがファイル生成サイズ以上である場合(ステップ118で「YES」の場合)、削除した領域にファイルを生成し(ステップS119)、以上でない場合(ステップ118で「NO」の場合)、新規領域にファイルを生成し(ステップS120)、ファイル生成終了レスポンスを送信する(ステップS121)。ここで、端末2は、半導体装置1(ICカード)からファイル生成終了レスポンスを受信する(ステップS122)。なお、ステップS119およびステップS120において、半導体装置1(ICカード)は、エラー発生時はエラーレスポンスを返しフローを流れず処理を終了する。
【0042】
ステップS116~ステップS122の処理(SB3)において、
図4に示すように、DATA領域1332に初期ファイルが生成された状態(SB1)から2セクタ分の「ファイルB」が削除された状態(SB2)で、3セクタ分の「ファイルD」の作成が要求されたとすると、「ファイルB」が削除されたセクタ番号「4」~セクタ番号「5」の2個のセクタと異なる領域のセクタ番号「7」~セクタ番号「9」の3個のセクタにわたって「ファイルD」が記憶される。すなわち、制御部11は、削除した領域では3セクタ分の領域がとれないため、新規領域に連続領域で領域を確保する。
【0043】
なお、ステップS116~ステップS122の処理(SB3)において、
図4に示すようにDATA領域1332に初期ファイルが生成された状態(SB1)から2セクタ分の「ファイルB」が削除された状態(SB2)で、上記と異なり、2セクタ分の「ファイルD」の作成が要求されたとすると、「ファイルB」が削除されたセクタ番号「4」~セクタ番号「5」に「ファイルD」が記憶される。
【0044】
次に、
図5および
図6を参照して、記憶領域の分割を許して順次に確保する場合(分割領域設定の場合)のシステム10の動作例について説明する。
図5は、記憶領域の分割を許して順次に確保する場合のシステム10の動作例を示すフローチャートである。
図6は、
図5に示す動作例におけるDATA領域1332の記憶状態の例を示す模式図である。
【0045】
図5に示す動作例では、まず、端末2が、設定値を分割領域設定の値にして、ファイル領域設定の設定コマンドを送信する(ステップS201)。半導体装置1(ICカード)(の制御部11(以下、同様))は、端末2からファイル領域設定の設定コマンドを受信すると(ステップS202)、設定情報1333の値を分割領域設定の値とし(ステップS203)、設定終了レスポンスを送信する(ステップS204)。端末2は、半導体装置1(ICカード)から設定終了レスポンスを受信すると(ステップS205)、初期ファイル生成コマンドを送信する(ステップS206)。半導体装置1(ICカード)は、端末2から初期ファイル生成コマンドを受信すると(ステップS207)、初期ファイルを生成し(ステップS208)、初期ファイル生成終了レスポンスを送信する(ステップS209)。端末2は、半導体装置1(ICカード)から設定終了レスポンスを受信する(ステップS210)。なお、ステップS208において、半導体装置1(ICカード)は、エラー発生時はエラーレスポンスを返しフローを流れず処理を終了する。
【0046】
ステップS201~ステップS210の処理(SC1)では、
図6に示すように例えばDATA領域1332に「ファイルA」、「ファイルB」および「ファイルC」の3つのファイルが生成される。この場合、セクタ番号「1」~セクタ番号「3」の3個のセクタにわたって「ファイルA」が記憶され、セクタ番号「4」~セクタ番号「5」の2個のセクタにわたって「ファイルB」が記憶され、セクタ番号「6」のセクタに「ファイルC」が記憶されている。
【0047】
次に、端末2が、ファイル削除コマンドを送信すると(ステップS211)、半導体装置1(ICカード)は、端末2からファイル削除コマンドを受信する(ステップS212)。次に、半導体装置1(ICカード)は、端末2から受信したファイル削除コマンドに応じて、ファイルを削除し(ステップS213)、ファイル削除終了レスポンスを送信する(ステップS214)。ここで、端末2は、半導体装置1(ICカード)からファイル削除終了レスポンスを受信する(ステップS215)。なお、ステップS213において、半導体装置1(ICカード)は、エラー発生時はエラーレスポンスを返しフローを流れず処理を終了する。
【0048】
ステップS211~ステップS215の処理(SC2)において、
図6に示すようにDATA領域1332に初期ファイルが生成された状態(SC1)で、「ファイルB」の削除(2セクタ分削除)が要求されたとすると、セクタ番号「4」~セクタ番号「5」の2個のセクタにわたって記憶されている「ファイルB」が削除される。
【0049】
次に、端末2が、ファイル生成コマンドを送信すると(ステップS216)、半導体装置1(ICカード)は、端末2からファイル生成コマンドを受信する(ステップS217)。次に、半導体装置1(ICカード)は、ステップS217で受信したファイル生成コマンドで生成(EEPROM113への書き込み)を要求されたファイルを生成する前にステップS214で削除した他のファイルのサイズが、ステップS217で受信したファイル生成コマンドで生成(EEPROM113への書き込み)を要求されたファイルのサイズ以上であるか否かを判断する(ステップS218)。半導体装置1(ICカード)は、ファイル削除サイズがファイル生成サイズ以上である場合(ステップ218で「YES」の場合)、削除した領域にファイルを生成し(ステップS219)、以上でない場合(ステップ218で「NO」の場合)、削除した領域と新規領域に分割してファイルを生成し(ステップS220)、ファイル生成終了レスポンスを送信する(ステップS221)。ここで、端末2は、半導体装置1(ICカード)からファイル生成終了レスポンスを受信する(ステップS222)。なお、ステップS219およびステップS220において、半導体装置1(ICカード)は、エラー発生時はエラーレスポンスを返しフローを流れず処理を終了する。
【0050】
ステップS216~ステップS222の処理(SC3)において、
図6に示すように、DATA領域1332に初期ファイルが生成された状態(SC1)から2セクタ分の「ファイルB」が削除された状態(SC2)で、3セクタ分の「ファイルD」の作成が要求されたとすると、「ファイルB」が削除されたセクタ番号「4」~セクタ番号「5」の各セクタと異なる領域のセクタ番号「7」の3個のセクタに「ファイルD」が記憶される。この場合、制御部11は、削除した領域を使用し、新規分と合わせて3セクタ分の分割した領域を確保する。
【0051】
なお、ステップS216~ステップS222の処理(SC3)において、
図6に示すように、DATA領域1332に初期ファイルが生成された状態(SC1)から2セクタ分の「ファイルB」が削除された状態(SC2)で、上記と異なり、2セクタ分の「ファイルD」の作成が要求されたとすると、「ファイルB」が削除されたセクタ番号「4」~セクタ番号「5」に「ファイルD」が記憶される。
【0052】
次に、
図7と
図8を参照して、設定情報1333の設定例について説明する。
図7に示す設定例では、ファイルの生成はすべて初期時の設定値(分割領域設定または連続領域設定)に基づいて行われる。
図8に示す設定例では、ファイル生成時の指定によりファイルの生成が個別に(各送信コマンドに含まれる)設定値(分割領域設定または連続領域設定)に基づいて行われる。
【0053】
図7に示す動作例では、まず、端末2が、設定値を分割領域設定または連続領域設定の値にして、ファイル領域設定の設定コマンドを送信する(ステップS301)。半導体装置1(ICカード)(の制御部11(以下、同様))は、端末2からファイル領域設定の設定コマンドを受信すると(ステップS302)、設定情報1333の値を分割領域設定または連続領域設定の値とし(ステップS303)、設定終了レスポンスを送信する(ステップS304)。端末2は、半導体装置1(ICカード)から設定終了レスポンスを受信すると(ステップS305)、初期ファイル生成コマンドを送信する(ステップS306)。ここで、半導体装置1(ICカード)は、端末2から初期ファイル生成コマンドを受信する(ステップS307)。
【0054】
図7に示すファイル領域設定の設定の仕方によれば、例えば、ファイル領域設定を1回だけ行い、以後は変更しないというような使用形態とすることができる。この場合、DATA領域1332へのファイルの書き込みを、DATA領域1332全体で分割領域設定または連続領域設定に統一することができる。
【0055】
また、
図8に示す動作例では、端末2が、ファイル領域設定の設定値を分割領域設定の値または連続領域設定の値とする情報を含めてファイル生成コマンドを送信すると(ステップS401)、半導体装置1(ICカード)(の制御部11(以下、同様))は、端末2からファイル生成コマンドを受信する(ステップS402)。次に、半導体装置1(ICカード)は、ステップS402で受信したファイル生成コマンドに応じて、分割領域設定または連続領域設定でファイルを生成し(EEPROM113への書き込み)(ステップS403)、ファイル生成終了レスポンスを送信する(ステップS404)。ここで、端末2は、半導体装置1(ICカード)からファイル生成終了レスポンスを受信する(ステップS405)。なお、ステップS403において、半導体装置1(ICカード)は、エラー発生時はエラーレスポンスを返しフローを流れず処理を終了する。
【0056】
図8に示すファイル領域設定の設定の仕方によれば、例えば、ファイル生成コマンド受信時にファイル領域設定を行うことで、ファイル毎にファイル領域設定を設定することができる。
【0057】
以上のように、本実施形態によれば、ファイルの領域を生成する際に、ファイル領域設定によってファイルを連続したセクタに記憶させパフォーマンスを優先したいのか、セクタを無駄なく使う為に容量を優先したいのかを選択することができる。状況に応じてファイル領域設定を切り替えることでどちらのメリットを得るのか選択することができる。
すなわち、パフォーマンスを優先にしたいときは連続領域設定に、容量を優先にしたいときは分割領域設定に、設定することにより、状況に合わせてファイル領域設定を選択することができる。
【0058】
以上、この発明の実施形態について図面を参照して説明してきたが、具体的な構成は上記実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。なお、半導体装置1および端末2で実行される上記実施形態に係るプログラムの一部または全部は、コンピュータ読取可能な記録媒体、通信回線等を介して頒布することができる。
【符号の説明】
【0059】
1 半導体装置
2 端末
10 システム
11 制御部
13 記憶部
133 EEPROM
1331 連結情報
1332 DATA領域
1333 設定情報