(57)【特許請求の範囲】
【請求項１】
タグ部、レングス部及びバリュー部からなるＴＬＶフォーマットでデータを記憶するデータ記憶部と、
前記データの全部、または、一部のデータの各々の前記タグ部のアドレスであるタグアドレスが、検索頻度の高い順に記憶されたタグアドレス記憶部と、
前記データの読出コマンドに付加されたタグである抽出タグが外部から供給されると、前記タグアドレス記憶部から順番に前記タグアドレスを読み出し、前記タグアドレスを読み出すごとに、読み出した前記タグアドレスに対応する前記データ記憶部の前記タグ部からタグを読み出し、読み出したタグと、前記抽出タグとが一致するか否かを判定し、一致すると判定した場合の前記タグアドレスを出力するアドレス読出部と、
前記データ記憶部において、前記アドレス読出部が出力する前記タグアドレスが示す前記タグ部に対応する前記バリュー部から、前記レングス部に示されるデータ長に対応した前記データを読み出すデータ読出部と
を備えることを特徴とするＩＣカード。
【請求項２】
前記タグアドレス記憶部が、前記タグ部と、前記タグ部の前記タグアドレスとが対応して書き込まれて記憶されている
ことを特徴とする請求項１に記載のＩＣカード。
【請求項３】
前記タグアドレス記憶部が、前記タグアドレスとともに、当該タグアドレスの示す前記タグに対応する前記レングス部の情報であるレングス情報とが前記タグ部に対応して記憶されている
ことを特徴とする請求項２に記載のＩＣカード。
【請求項４】
前記レングス情報が、前記レングス部のアドレスを表すレングスアドレスである
ことを特徴とする請求項３に記載のＩＣカード。
【請求項５】
前記レングス情報が、前記レングス部における前記バリュー部におけるデータのデータ長である
ことを特徴とする請求項３に記載のＩＣカード。
【請求項６】
前記タグアドレス記憶部が、前記タグアドレス及び前記レングス情報とともに、前記バリュー部の情報であるデータ情報とが前記タグ部に対応して記憶されている
ことを特徴とする請求項３に記載のＩＣカード。
【請求項７】
前記アドレスが、絶対アドレスで示されている
ことを特徴とする請求項１から請求項６のいずれか一項に記載のＩＣカード。
【請求項８】
前記アドレスが、前記データ記憶部における前記データが記憶されている領域の先頭アドレスからの相対アドレスで示されている
ことを特徴とする請求項１から請求項６のいずれか一項に記載のＩＣカード。
【請求項９】
タグ部、レングス部及びバリュー部からなるＴＬＶフォーマットでデータを記憶するデータ記憶部と、前記データの全部、または、一部のデータの各々の前記タグ部のアドレスであるタグアドレスが、検索頻度の高い順に記憶されたタグアドレス記憶部と、を備えるＩＣカードからのデータの読み出し方法であって、
アドレス読出部が、前記データの読出コマンドに付加されたタグである抽出タグが外部から供給されると、前記タグアドレス記憶部から順番に前記タグアドレスを読み出し、前記タグアドレスを読み出すごとに、読み出した前記タグアドレスに対応する前記データ記憶部の前記タグ部からタグを読み出し、読み出したタグと、前記抽出タグとが一致するか否かを判定し、一致すると判定した場合の前記タグアドレスを出力するアドレス読出過程と、
データ読出部が、前記データ記憶部において、前記アドレス読出部が出力する前記タグアドレスが示す前記タグ部に対応する前記バリュー部から、前記レングス部に示されるデータ長に対応した前記データを読み出すデータ読出過程と
を含むことを特徴とするＩＣカードからのデータの読出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣ（Integrated Circuit）カード及びＩＣカードからのデータの読出方法に関する。
【背景技術】
【０００２】
従来からＩＣカードには、タグ部（Tag）、レングス部（Length）及びバリュー部（Value）の組み合わせからなるデータフォーマットのＴＬＶ（Tag_Length_Value）形式のファイルによりデータを記憶部に記憶させる形態がある（例えば、特許文献１参照）。
この形態の場合、ＩＣカードは、外部装置からのデータの読出コマンド（例えば、ゲットデータ）に応じて、読出コマンドにおけるタグの指定するバリュー部を読み出す。
このとき、ＩＣカードは、読出コマンドのタグに対応するタグ部をファイルから検索し、検索されたタグ部に対応するレングス部からデータ長を読み出す。
そして、ＩＣカードは、上記データ長に対応してバリュー部におけるデータの読み出しを行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−６３３０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＩＣカードは、記憶部のファイルにおけるタグ部からタグを読み出し、この読み出したタグが読出コマンドのタグと異なる場合、このタグ部の後部に連結されているレングス部からデータ長（例えば、バイト数）を読み出す。
そして、ＩＣカードは、データ長の示すデータのバイト数から次のタグ部のアドレスを求め、次のタグ部からタグを読み出して読出コマンドのタグとの比較を行う。
【０００５】
上述したファイルにおけるタグの検索が、読出コマンドのタグに対応するタグが格納されているタグ部が検出されるまで行われるため、各タグ部のアドレスをデータ長から演算する処理がその都度行われる。
すなわち、ＴＬＶ形式のファイルにおける各タグに対応するバリュー部のデータ長がそれぞれ異なる。このため、次のタグ部のアドレスを求める際、検索毎にアドレスをレングス部のデータ長から演算する必要があり、ＴＬＶ形式のファイルにおいてはデータの読み出しの処理に多くの時間を要する。
【０００６】
本発明は、このような事情に鑑みてなされたもので、ＴＬＶ形式のファイルでデータを記憶するＩＣカードにおけるデータの読み出しにおいて、タグの検索毎にファイルにおけるタグのアドレスの演算を行わずにデータの検索を行うＩＣカード及びＩＣカードからのデータの読出方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明は上述した課題を解決するためになされたもので、本発明のＩＣカードは、タグ部、レングス部及びバリュー部からなるＴＬＶフォーマットでデータを記憶するデータ記憶部と、前記データの全部、または、一部のデータの各々の前記タグ部のアドレスであるタグアドレスが、検索頻度の高い順に記憶されたタグアドレス記憶部と、前記データの読出コマンドに付加されたタグである抽出タグが外部から供給されると、前記タグアドレス記憶部から順番に前記タグアドレスを読み出し、前記タグアドレスを読み出すごとに、読み出した前記タグアドレスに対応する前記データ記憶部の前記タグ部からタグを読み出し、読み出したタグと、前記抽出タグとが一致するか否かを判定し、一致すると判定した場合の前記タグアドレスを出力するアドレス読出部と、前記データ記憶部において、前記アドレス読出部が出力する前記タグアドレスが示す前記タグ部に対応する前記バリュー部から、前記レングス部に示されるデータ長に対応した前記データを読み出すデータ読出部とを備えることを特徴とする。
【０００８】
本発明のＩＣカードは、前記タグアドレス記憶部が、前記タグ部と、前記タグ部の前記タグアドレスとが対応して書き込まれて記憶されていることを特徴とする。
【００１０】
本発明のＩＣカードは、前記タグアドレス記憶部が、前記タグアドレスとともに、当該タグアドレスの示す前記タグに対応する前記レングス部の情報であるレングス情報とが前記タグ部に対応して記憶されていることを特徴とする。
【００１１】
本発明のＩＣカードは、前記レングス情報が、前記レングス部のアドレスを表すレングスアドレスであることを特徴とする。
【００１２】
本発明のＩＣカードは、前記レングス情報が、前記レングス部における前記バリュー部におけるデータのデータ長であることを特徴とする。
【００１３】
本発明のＩＣカードは、前記タグアドレス記憶部が、前記タグアドレス及び前記レングス情報とともに、前記バリュー部の情報であるデータ情報とが前記タグ部に対応して記憶されていることを特徴とする。
【００１４】
本発明のＩＣカードは、前記アドレスが、絶対アドレスで示されていることを特徴とする。
【００１５】
本発明のＩＣカードは、前記アドレスが、前記データ記憶部における前記データが記憶されている領域の先頭アドレスからの相対アドレスで示されていることを特徴とする。
【００１６】
本発明のＩＣカードからデータの読み出し方法は、タグ部、レングス部及びバリュー部からなるＴＬＶフォーマットでデータを記憶するデータ記憶部と、前記データの全部、または、一部のデータの各々の前記タグ部のアドレスであるタグアドレスが、検索頻度の高い順に記憶されたタグアドレス記憶部と、を備えるＩＣカードからのデータの読み出し方法であって、アドレス読出部が、前記データの読出コマンドに付加されたタグである抽出タグが外部から供給されると、前記タグアドレス記憶部から順番に前記タグアドレスを読み出し、前記タグアドレスを読み出すごとに、読み出した前記タグアドレスに対応する前記データ記憶部の前記タグ部からタグを読み出し、読み出したタグと、前記抽出タグとが一致するか否かを判定し、一致すると判定した場合の前記タグアドレスを出力するアドレス読出過程と、データ読出部が、前記データ記憶部において、前記アドレス読出部が出力する前記タグアドレスが示す前記タグ部に対応する前記バリュー部から、前記レングス部に示されるデータ長に対応した前記データを読み出すデータ読出過程と
を含むことを特徴とする。
【発明の効果】
【００１７】
本発明によれば、ＴＬＶ形式のファイルでデータを記憶するＩＣカードにおけるデータの読み出しにおいて、タグの検索毎にファイルにおけるタグのアドレスの演算を行わずにデータの検索を行うＩＣカード及びＩＣカードからのデータの読出方法を提供することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施形態によるＩＣカードの構成例を示す概略ブロック図である。
【図２】第１の実施形態におけるデータ記憶部１６に書き込まれて記憶されたＴＬＶフォーマットによるデータファイルの構成を示す図である。
【図３】第１の実施形態におけるタグアドレス記憶部１７に書き込まれて記憶されたタグアドレステーブルの構成例を示す図である。
【図４】第１の実施形態のＩＣカードにおけるデータの読み出し処理の動作例を示すフローチャートである。
【図５】第２の実施形態におけるタグアドレス記憶部１７に書き込まれて記憶されたタグアドレステーブルの構成例を示す図である。
【図６】第３の実施形態におけるタグアドレス記憶部１７に書き込まれて記憶されたタグアドレステーブルの構成例を示す図である。
【図７】第４の実施形態におけるタグアドレス記憶部１７に書き込まれて記憶されたタグアドレステーブルの構成例を示す図である。
【図８】第５の実施形態におけるタグアドレス記憶部１７に書き込まれて記憶されたタグアドレステーブルの構成例を示す図である。
【発明を実施するための形態】
【００１９】
＜第１の実施形態＞
以下、図面を参照して、本発明の第１の実施形態について説明する。図１は、本発明の第１の実施形態によるＩＣカードの構成例を示す概略ブロック図である。この図１において、ＩＣカード１は、カード制御部１０、プログラム記憶部１５、データ記憶部１６及びタグアドレス記憶部１７の各々を備えている。カード制御部１０は、制御部１１、アドレス読出部１２及びデータ読出部１３の各々を備えている。
制御部１１、アドレス読出部１２及びデータ読出部１３の各々は、プログラム記憶部１５に格納されたＩＣカード１の各部を動作させるためのプログラムを図示しないＣＰＵ（Central Processing Unit）等が実行することで機能する構成である。
【００２０】
制御部１１は、外部装置（不図示）から供給されるコマンドを解釈し、ＩＣカード１における種々の処理における各部の制御を行う。例えば、読出コマンドがリーダ／ライタのような外部装置から供給された場合、制御部１１は読出コマンドからタグを抽出タグとして抽出する。
アドレス読出部１２は、タグアドレス記憶部１７に記憶されているタグアドレステーブルから、制御部１１が抽出した抽出タグに基づき、この抽出タグに対応するタグＴａｇのアドレスであるタグアドレスをタグアドレス記憶部１７から読み出す。
データ読出部１３は、アドレス読出部１２が読み出したタグアドレスにより、データ記憶部１６から読み出す。
【００２１】
図２は、第１の実施形態におけるデータ記憶部１６に書き込まれて記憶されたＴＬＶフォーマットによるデータファイルの構成を示す図である。図２（ａ）は、データファイルにおけるデータの記憶形式の概念を示している。図２（ａ）において、例えば、タグＴａｇ１からタグＴａｇｎのｎ個のデータのブロックが記憶されている。データ記憶部１６において、各タグに対応するデータブロックにおけるデータのデータ長は、同一のタグもあれば、異なるタグも存在し、異なった様々なデータ長のデータが、連結してデータファイルとして記憶されている。また、データファイルの最初の領域（アドレスが最も小さな領域）に記憶されているタグ部Ｔ１の開始アドレスとデータ記憶部１６に記憶されているデータファイルの先頭アドレスとは、同一のアドレス値である。
【００２２】
図２（ａ）は、各タグに対応するブロックのデータの記憶形式を示している。例えば、タグＴａｇｍ（１≦ｍ≦ｎ）に対応するデータブロックは、タグ部Ｔｍ、レングス部Ｌｍ及びバリュー部Ｖｍから構成されている。タグ（Ｔａｇ）は、タグ部に示されている情報の種類に対応した数値である。レングス（Ｌｅｎｇｔｈ）は、データが記憶されているフィールドのサイズ、すなわちデータ長を示している。バリュー（Ｖａｌｕｅ）は、可変長のデータであり、レングスの示すデータ長のデータである。図２（ｂ）においては、例えば、タグ部Ｔｍの開始アドレスをアドレスＡＤＲ＿ｍとし、レングス部Ｌｍの開始アドレスをアドレスＡＤＲ＿ｍ＿Ｌとし、バリュー部Ｖｍの開始アドレスをアドレスＡＤＲ＿ｍ＿Ｖとしている。
【００２３】
また、図２（ａ）において、タグ部Ｔｍの開始アドレスであるアドレスＡＤＲ＿ｍは、ＩＣカード１のデータのアドレス空間における絶対アドレスでも、データファイルの開始アドレスに対する相対アドレスのいずれでも良い。ただし、相対アドレスを用いた場合、タグ部Ｔｍの先頭アドレスを求める際、データファイルの開始アドレスに対して、対応するタグ部Ｔｍの相対アドレスを加算する演算が必要となる。しかしながら、データファイルの開始アドレスに対する相対アドレスを用いた方が、タグアドレステーブルのデータ量を低減することができる。
【００２４】
図３は、第１の実施形態におけるタグアドレス記憶部１７に書き込まれて記憶されたタグアドレステーブルの構成例を示す図である。このタグアドレステーブルは、インデックス（Index）としてのタグＴａｇ（数値）と、このタグＴａｇに対応するデータブロックにおけるタグ部のアドレスであるタグアドレスとが対応して記憶されている。アドレス読出部１２は、タグアドレス記憶部１７のタグアドレステーブルにおけるインデックスの欄を参照し、制御部１１から供給される抽出タグに対応したタグＴａｇを検索する。そして、アドレス読出部１２は、抽出タグと一致するタグＴａｇを検出すると、このタグＴａｇに対応して記憶されているタグアドレスを読み出す。
【００２５】
図４は、第１の実施形態のＩＣカードにおけるデータの読み出し処理の動作例を示すフローチャートである。以下、ＩＳＯ７８１６−４に準拠したＩＣカードからのデータの読み出し処理を例として説明する。
ステップＳ１：
外部装置であるリーダ／ライタは、所定のタグを指定してこのタグに対応するデータ（Data Object）を取得するため、ＩＣカード１に対してゲットデータ（ＧＥＴ  ＤＡＴＡ）を読出コマンドとして出力する。このゲットデータは、ＩＣカード専用のデータファイル形式であるＤＯ−ＷＥＦ（Data Object-Working Elementary File）から、すなわち本実施形態におけるＴＬＶ形式のデータファイルからデータを取得するコマンドである。
【００２６】
ステップＳ２：
制御部１１は、リーダ／ライタから供給されたコマンドの解釈処理を行い、読出コマンドであることを判定する。
【００２７】
ステップＳ３：
制御部１１は、リーダ／ライタから供給された読出コマンドに含まれる、読み出すデータを指定するタグを、抽出タグとして抽出する。
そして、制御部１１は、抽出した抽出タグをアドレス読出部１２に対して出力する。
【００２８】
ステップＳ４：
アドレス読出部１２は、タグアドレス記憶部１７のタグアドレステーブルを参照し、例えば、インデックスの欄からタグアドレステーブルにおける記載順に、順次タグＴａｇｍを読み出す。
【００２９】
ステップＳ５：
アドレス読出部１２は、読み出したタグＴａｇｍと抽出タグとが一致するか否かを比較する。すなわち、アドレス読出部１２は、読み出したタグＴａｇｍの数値と抽出タグの数値とが一致するか否かを比較する。そして、アドレス読出部１２は、タグＴａｇｍと抽出タグとが一致した場合に、処理をステップＳ６へ進め、一方、タグＴａｇｍと抽出タグとが一致しない場合に、処理をステップＳ４へ進める。
【００３０】
ステップＳ６：
次に、アドレス読出部１２は、抽出タグと一致したタグＴａｇｍに対応したタグアドレスであるアドレスＡＤＲ＿ｍを、データ読出部１３に対して出力する。
データ読出部１３は、供給されたアドレスＡＤＲ＿ｍにより、データ記憶部１６のデータファイルにおけるタグＴａｇｍのデータブロックを検出する。
そして、データ読出部１３は、タグＴａｇｍのデータブロックにおけるタグ部Ｔｍの後段において、タグ部Ｔｍのデータ長からレングス部Ｌｍの開始アドレスであるアドレスＡＤＲ＿ｍ＿Ｌを求める。
これにより、データ読出部１３は、アドレスＡＤＲ＿ｍ＿Ｌのレングス部Ｌｍから、このデータブロックにおけるデータのデータ長を読み出す。また、データ読出部１３は、タグＴａｇｍのデータブロックにおけるレングス部Ｌｍの後段において、レングス部Ｌｍのデータ長からバリュー部Ｖｍの開始アドレスであるアドレスＡＤＲ＿ｍ＿Ｖを求める。
【００３１】
ステップＳ７：
データ読出部１３は、バリュー部Ｖｍにおけるデータ、すなわちアドレスＡＤＲ＿ｍ＿Ｖから読み出したデータ長のバイトのアドレス範囲におけるデータを、データ記憶部１６から読み出す。
そして、データ読出部１３は、読み出したデータを制御部１１に対して出力する。
【００３２】
ステップＳ８：
制御部１１は、データ読出部１３から供給されるデータを返送データに付加し、ゲットデータによりデータアクセスを行ったリーダ／ライタに対して出力する。
【００３３】
本実施形態においては、タグアドレス記憶部１７に記憶されているタグアドレステーブルにより、タグＴａｇとタグＴａｇの先頭アドレスとの対応が示されているため、読出コマンドにおける抽出タグと一致するタグＴａｇを検索する際、従来のように、データファイルにおけるタグＴａｇの先頭アドレスを、データファイルの先頭アドレス、各データブロックのタグ部Ｔ、レングス部Ｌ及びバリュー部Ｖの各々のデータ長から算出する必要が無いため、ＩＣカード１におけるＣＰＵの演算負荷を低減させることが可能となり、読出コマンドにおける抽出タグに対応するデータの読み出しを、従来に比較して高速に行うことができる。
【００３４】
＜第２の実施形態＞
以下、図面を参照して、本発明の第２の実施形態について説明する。第２の実施形態によるＩＣカードの構成は第１の実施形態と同様である。以下、第１の実施形態と異なる動作について説明する。
第２の実施形態において、タグアドレス記憶部１７に記憶されているタグアドレステーブルのデータ構成が第１の実施形態と異なる。
【００３５】
図５は、第２の実施形態におけるタグアドレス記憶部１７に書き込まれて記憶されたタグアドレステーブルの構成例を示す図である。このタグアドレステーブルは、インデックス（Index）としてのタグＴａｇと、このタグＴａｇに対応するデータブロックにおけるタグ部の先頭アドレスであるタグアドレスと、レングス部の先頭アドレスであるレングスアドレス（レングス情報）とが対応して記憶されている。アドレス読出部１２は、タグアドレス記憶部１７のタグアドレステーブルにおけるインデックスの欄を参照し、制御部１１から供給される抽出タグに対応したタグＴａｇを検索する。
【００３６】
アドレス読出部１２は、抽出タグと一致するタグＴａｇを検出すると、このタグＴａｇに対応して記憶されているレングス部の先頭アドレスであるアドレスＡＤＲ＿ｍ＿Ｌを読み出す。アドレス読出部１２は、読み出したアドレスＡＤＲ＿ｍ＿Ｌをデータ読出部１３に対して出力する。
これにより、データ読出部１３は、供給されたアドレスＡＤＲ＿ｍ＿Ｌからバリュー部Ｖｍのデータのデータ長を読み出す。また、データ読出部１３は、アドレスＡＤＲ＿ｍ＿Ｌとレングス部Ｌｍのデータ長とから、バリュー部Ｖｍの先頭アドレスであるアドレスＡＤＲ＿ｍ＿Ｖを求める。
【００３７】
そして、データ読出部１３は、アドレスＡＤＲ＿ｍ＿Ｖから、読み出したデータ長のバイトのアドレス範囲におけるデータを読み出す。
上述した以外の処理については、第１の実施形態と同様である。
本実施形態によれば、タグアドレス記憶部１７に記憶されているタグアドレステーブルにおいて、タグＴａｇに対応するタグアドレスとともに、レングス部の先頭アドレスが示されているため、データ読出部１３がレングス部の先頭アドレスを算出する必要が無く、第１の実施形態に比較してよりデータの読み出しを高速化することができる。
また、本実施形態においては、タグアドレステーブルにタグアドレスを記載せず、レングス部の先頭アドレスのみを記載するようにしても良い。
【００３８】
＜第３の実施形態＞
以下、図面を参照して、本発明の第３の実施形態について説明する。第３の実施形態によるＩＣカードの構成は第１の実施形態と同様である。以下、第１の実施形態と異なる動作について説明する。
第３の実施形態において、タグアドレス記憶部１７に記憶されているタグアドレステーブルのデータ構成が第１の実施形態と異なる。
【００３９】
図６は、第３の実施形態におけるタグアドレス記憶部１７に書き込まれて記憶されたタグアドレステーブルの構成例を示す図である。このタグアドレステーブルは、インデックス（Index）としてのタグＴａｇと、このタグＴａｇに対応するデータブロックにおけるタグ部の先頭アドレスであるタグアドレスと、レングス部に記憶されているデータ長（レングス情報）とが対応して記憶されている。アドレス読出部１２は、タグアドレス記憶部１７のタグアドレステーブルにおけるインデックスの欄を参照し、制御部１１から供給される抽出タグに対応したタグＴａｇを検索する。
【００４０】
アドレス読出部１２は、抽出タグと一致するタグＴａｇを検出すると、このタグＴａｇに対応して記憶されているアドレスＡＤＲ＿ｍ＿Ｔとデータ長とを読み出す。アドレス読出部１２は、読み出したアドレスＡＤＲ＿ｍ＿Ｔとデータ長との各々をデータ読出部１３に対して出力する。
これにより、データ読出部１３は、供給されたアドレスＡＤＲ＿ｍ＿Ｔと、レングス部Ｌｍのデータ長とから、バリュー部Ｖｍの先頭アドレスであるアドレスＡＤＲ＿ｍ＿Ｖを求める。
【００４１】
そして、データ読出部１３は、アドレスＡＤＲ＿ｍ＿Ｖから、読み出したデータ長のバイトのアドレス範囲におけるデータを読み出す。
上述した以外の処理については、第１の実施形態と同様である。
本実施形態によれば、タグアドレス記憶部１７に記憶されているタグアドレステーブルにおいて、タグＴａｇに対応するタグアドレスとともに、データ長が示されているため、データ読出部１３がレングス部からデータ長を読み出す必要がなく、第１の実施形態に比較してよりデータの読み出しを高速化することができる。
【００４２】
＜第４の実施形態＞
以下、図面を参照して、本発明の第４の実施形態について説明する。第４の実施形態によるＩＣカードの構成は第１の実施形態と同様である。以下、第１の実施形態と異なる動作について説明する。
第４の実施形態において、タグアドレス記憶部１７に記憶されているタグアドレステーブルのデータ構成が第１の実施形態と異なる。
【００４３】
図７は、第４の実施形態におけるタグアドレス記憶部１７に書き込まれて記憶されたタグアドレステーブルの構成例を示す図である。このタグアドレステーブルは、インデックス（Index）としてのタグＴａｇと、このタグＴａｇに対応するデータブロックにおけるタグ部の先頭アドレスであるタグアドレスと、レングス部の先頭アドレスであるレングスアドレスと、バリュー部の先頭アドレスであるデータアドレスとの各々が対応して記憶されている。アドレス読出部１２は、タグアドレス記憶部１７のタグアドレステーブルにおけるインデックスの欄を参照し、制御部１１から供給される抽出タグに対応したタグＴａｇを検索する。
【００４４】
アドレス読出部１２は、抽出タグと一致するタグＴａｇを検出すると、このタグＴａｇに対応して記憶されているレングス部Ｌｍの先頭アドレスであるアドレスＡＤＲ＿ｍ＿Ｌを読み出す。また、アドレス読出部１２は、検出したタグＴａｇに対応して記憶されているバリュー部Ｖｍの先頭アドレスであるアドレスＡＤＲ＿ｍ＿Ｖを読み出す。アドレス読出部１２は、読み出したアドレスＡＤＲ＿ｍ＿Ｌ及びアドレスＡＤＲ＿ｍ＿Ｌをデータ読出部１３に対して出力する。
これにより、データ読出部１３は、供給されたアドレスＡＤＲ＿ｍ＿Ｌからバリュー部Ｖｍのデータのデータ長を読み出す。
【００４５】
そして、データ読出部１３は、アドレスＡＤＲ＿ｍ＿Ｖから、読み出したデータ長のバイトのアドレス範囲におけるデータを読み出す。
上述した以外の処理については、第１の実施形態と同様である。
本実施形態によれば、タグアドレス記憶部１７に記憶されているタグアドレステーブルにおいて、タグＴａｇに対応するタグアドレスとともに、レングス部の先頭アドレス及びバリュー部の先頭アドレスが示されているため、データ読出部１３がレングス部の先頭アドレス及びバリュー部の先頭アドレスの各々を算出する必要が無く、第１の実施形態に比較して、よりデータの読み出しを高速化することができる。
【００４６】
また、本実施形態においては、タグアドレステーブルにタグアドレスを記載せず、レングス部の先頭アドレス及びバリュー部の先頭アドレスの各々を記載するようにしても良い。
また、バリュー部の先頭アドレスを記載するのではなく、バリュー部のデータそのものを記載するようにしても良い。タグテーブルは大きくなるが、データの読み出しは最も高速となる。
【００４７】
また、図７におけるレングスアドレスを、第３の実施形態と同様にレングス部に示されるデータ長としても良い。この場合、レングス部からデータ長を読み出す必要がないため、上述した実施形態に比較して、よりデータの読み出しを高速化することができる。
【００４８】
＜第５の実施形態＞
以下、図面を参照して、本発明の第５の実施形態について説明する。第５の実施形態によるＩＣカードの構成は第１の実施形態と同様である。以下、第１の実施形態と異なる動作について説明する。
第５の実施形態において、タグアドレス記憶部１７に記憶されているタグアドレステーブルのデータ構成が第１の実施形態と異なる。
【００４９】
図８は、第５の実施形態におけるタグアドレス記憶部１７に書き込まれて記憶されたタグアドレステーブルの構成例を示す図である。このタグアドレステーブルは、検索順位と、この検索順位に対応するタグＴａｇに対応するデータブロックにおけるタグ部の先頭アドレスであるタグアドレスとが対応して記憶されている。アドレス読出部１２は、制御部１１から抽出タグが供給された際、タグアドレス記憶部１７のタグアドレステーブルの検索順位の順番によりタグアドレスを読み出す。ここで、このタグアドレステーブルにおける検索順位は、データ記憶部１６のデータファイルにおいて、予め求められた読出コマンドに付加される頻度の高い順に対応している。図８においては、検索順位が小さいほど検索される頻度の高いタグＴａｇである。
【００５０】
アドレス読出部１２は、タグアドレステーブルから読み出したタグアドレスであるＡＤＲ＿ｍ＿Ｔと対応するタグＴａｇｍを、データ記憶部１６から読み出す。そして、アドレス読出部１２は、抽出タグと読み出したタグＴａｇｍとを比較し、一致しているか否かの判定を行う。アドレス読出部１２は、抽出タグと読み出したタグＴａｇｍとが一致している場合、読み出したタグＴａｇｍのタグアドレス（アドレスＡＤＲ＿ｍ）をデータ読出部１３に出力する。一方、アドレス読出部１２は、抽出タグと読み出したタグＴａｇｍとが一致しない場合、タグアドレステーブルから新たなタグアドレスを読み出し、タグアドレスに対応したタグＴａｇを読出、上述した抽出タグとタグＴａｇｍの比較を行う。また、タグアドレステーブルのタグアドレスの示すタグＴａｇのなかに、抽出タグに対応するタグＴａｇが無い場合、従来と同様に、データファイルにおいて順次、タグアドレスの演算を行いつつ、抽出タグと一致するタグＴａｇの検索を行う。
【００５１】
データ読出部１３は、供給されたアドレスＡＤＲ＿ｍにより、データ記憶部１６のデータファイルにおけるタグＴａｇｍのデータブロックを検出する。
そして、データ読出部１３は、タグＴａｇｍのデータブロックにおけるタグ部Ｔｍの後段において、タグ部Ｔｍのデータ長からレングス部Ｌｍの開始アドレスであるアドレスＡＤＲ＿ｍ＿Ｌを求める。
これにより、データ読出部１３は、アドレスＡＤＲ＿ｍ＿Ｌのレングス部Ｌｍから、このデータブロックにおけるデータのデータ長を読み出す。また、データ読出部１３は、タグＴａｇｍのデータブロックにおけるレングス部Ｌｍの後段において、レングス部Ｌｍのデータ長からバリュー部Ｖｍの開始アドレスであるアドレスＡＤＲ＿ｍ＿Ｖを求める。
【００５２】
そして、データ読出部１３は、アドレスＡＤＲ＿ｍ＿Ｖから、読み出したデータ長のバイトのアドレス範囲におけるデータを読み出す。
上述した以外の処理については、第１の実施形態と同様である。
本実施形態によれば、タグアドレス記憶部１７に記憶されているタグアドレステーブルにおいて、検索頻度の高いタグＴａｇから順番に、このタグＴａｇのタグアドレスが示されているため、検索頻度の高いタグＴａｇのデータブロックからのデータの読み出しを、従来に比較して高速化することができる。
また、本実施形態において、タグアドレステーブルに記載するタグアドレスは、データ記憶部１６に記憶されているタグＴａｇの中から、所定の数を検索される頻度順に設定している。
【００５３】
また、本実施形態においては、タグアドレステーブルの構成を、第２の実施形態の図５から第４の実施形態の図７と同様の構成としても良い。
すなわち、第２の実施形態の図５のタグアドレステーブルに対応させ、タグＴａｇの検索順位に対応して、タグアドレス及びレングスアドレスの各々を付加する。
また、第３の実施形態の図６のタグアドレステーブルに対応させ、タグＴａｇの検索順位に対応して、タグアドレス及びデータ長の各々を付加する。
また、第４の実施形態の図７のタグアドレステーブルに対応させ、タグＴａｇの検索順位に対応して、タグアドレス、レングスアドレス及びデータアドレスの各々を付加する。
上述したタグアドレステーブルの構成により、第２の実施形態から第４の実施形態の各々と同様にアドレスの演算負荷が低減でき、データの読み出しを高速化することができる。
【００５４】
また、図１による第１の実施形態から第５の実施形態の各々のＩＣカードの各々の部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりＩＣカードにおけるデータ記憶部からのデータの読み出し処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【００５５】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００５６】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイルであっても良い。
【００５７】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００５８】
１…ＩＣカード
１０…カード制御部
１１…制御部
１２…アドレス読出部
１３…データ読出部
１５…プログラム記憶部
１６…データ記憶部
１７…タグアドレス記憶部
【図１】
0006736937.tif 000002
【図２】
0006736937.tif 000003
【図３】
0006736937.tif 000004
【図４】
0006736937.tif 000005
【図５】
0006736937.tif 000006
【図６】
0006736937.tif 000007
【図７】
0006736937.tif 000008
【図８】
0006736937.tif 000009