(57)【要約】【課題】外部機器からの読み出しコマンドに基づく、記憶部に記憶された複数のデータを対象とする読み出す処理の処理時間を短縮することができる電子情報記憶媒体等を提供することを目的とする。【解決手段】記憶部が、記憶部に記憶される複数のデータのそれぞれの記憶領域を示す記憶領域情報を含む位置データを記憶し、処理部が、外部機器から位置データを識別する識別情報を含むデータ読み出しコマンドを受信した場合に、当該識別情報により識別される位置データに含まれる記憶領域情報が示す複数の記憶領域のそれぞれに記憶されているデータをまとめて外部機器に送信する。【選択図】図５
2018194995.tif 000002
【特許請求の範囲】
【請求項１】
処理部と記憶部を備える電子情報記憶媒体であって、
前記記憶部は、当該記憶部に記憶される複数のデータのそれぞれの記憶領域を示す記憶領域情報を含む位置データを記憶し、
前記処理部は、外部機器から前記位置データを識別する識別情報を含むデータ読み出しコマンドを受信した場合に、当該識別情報により識別される位置データに含まれる記憶領域情報が示す複数の記憶領域のそれぞれに記憶されているデータをまとめて前記外部機器に送信することを特徴とする電子情報記憶媒体。
【請求項２】
処理部と記憶部を備える電子情報記憶媒体であって、
前記記憶部は、当該記憶部に記憶される複数のデータのそれぞれの記憶領域を示す記憶領域情報を含む位置データを記憶し、
前記処理部は、外部機器から前記位置データを識別する識別情報と、当該識別情報により識別される位置データに含まれる記憶領域情報が示す複数の記憶領域にそれぞれ対応させて書き込む書込データと、を含むデータ書き込みコマンドを受信した場合に、当該複数の記憶領域に、それぞれ対応する当該書込データを書き込むことを特徴とする電子情報記憶媒体。
【請求項３】
請求項１又は２に記載の電子情報記憶媒体であって、
前記処理部は、前記外部機器から前記位置データの追加、変更又は削除を行うことを示すコマンドを受信した場合に、当該コマンドに応じて前記位置データの追加、変更又は削除を行うことを特徴とする電子情報記憶媒体。
【請求項４】
請求項１乃至３の何れか一項に記載の電子情報記憶媒体を備えるＩＣカード。
【請求項５】
処理部と記憶部を備える電子情報記憶媒体におけるデータ送信方法であって、
前記記憶部が、当該記憶部に記憶される複数のデータのそれぞれの記憶領域を示す記憶領域情報を含む位置データを記憶する工程と、
前記処理部が、外部機器から前記位置データを識別する識別情報を含むデータ読み出しコマンドを受信した場合に、当該識別情報により識別される位置データに含まれる記憶領域情報が示す複数の記憶領域のそれぞれに記憶されているデータをまとめて前記外部機器に送信する工程と、
を含むことを特徴とするデータ送信方法。
【請求項６】
処理部と記憶部を備える電子情報記憶媒体におけるデータ書き込み方法であって、
前記記憶部が、当該記憶部に記憶される複数のデータのそれぞれの記憶領域を示す記憶領域情報を含む位置データを記憶する工程と、
前記処理部が、外部機器から前記位置データを識別する識別情報と、当該識別情報により識別される位置データに含まれる記憶領域情報が示す複数の記憶領域にそれぞれ対応させて書き込む書込データと、を含むデータ書き込みコマンドを受信した場合に、当該複数の記憶領域に、それぞれ対応する当該書込データを書き込む工程と、
を含むことを特徴とするデータ書き込み方法。
【請求項７】
処理部と記憶部を備え、前記記憶部が、当該記憶部に記憶される複数のデータのそれぞれの記憶領域を示す記憶領域情報を含む位置データを記憶する電子情報記憶媒体における前記処理部を、
外部機器から前記位置データを識別する識別情報を含むデータ読み出しコマンドを受信した場合に、当該識別情報により識別される位置データに含まれる記憶領域情報が示す複数の記憶領域のそれぞれに記憶されているデータをまとめて前記外部機器に送信する送信手段、
として機能させることを特徴とするデータ送信プログラム。
【請求項８】
処理部と記憶部を備え、前記記憶部が、当該記憶部に記憶される複数のデータのそれぞれの記憶領域を示す記憶領域情報を含む位置データを記憶する電子情報記憶媒体における前記処理部を、
外部機器から前記位置データを識別する識別情報と、当該識別情報により識別される位置データに含まれる記憶領域情報が示す複数の記憶領域にそれぞれ対応させて書き込む書込データと、を含むデータ書き込みコマンドを受信した場合に、当該複数の記憶領域に、それぞれ対応する当該書込データを書き込む書き込み手段、
として機能させることを特徴とするデータ書き込みプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ＩＣ（Integrated Circuit）チップ等の電子情報記憶媒体の技術分野に関する。
【背景技術】
【０００２】
ＩＣチップにおける一般的なファイル構造は、Ｍａｓｔｅｒ  Ｆｉｌｅ（ＭＦ）を頂点とした木構造になっており、ＭＦの配下にＤｅｄｉｃａｔｅｄ  Ｆｉｌｅ（ＤＦ）が配置され、ＤＦの配下にＥｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ（ＥＦ）が配置される（ＥＦはＭＦの配下に配置されることもある）。
【０００３】
ＥＦはアプリケーションで利用される各種データを格納するためのデータファイルであって、外部機器がＥＦに格納されたデータにアクセスするためには、データの位置を特定してアクセスする必要があり、如何に効率的にデータにアクセスするかが重要となる。特許文献１には、効率的にデータにアクセスするための技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許５２５９５１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ＥＦが一又は複数のレコード（データ）を含むレコード編成ファイルである場合において、外部機器が当該レコードにアクセスするためには、まず何れのファイルにアクセスするかを選択してから、当該ファイルに含まれるレコードを選択しなければならない。
【０００６】
国際規格ＩＳＯ／ＩＥＣ  ７８１６−４に定義されているレコード操作用コマンドでは、外部機器はそのコマンドに含まれるパラメータによってファイルを指定し、更に別のパラメータによってレコードを指定することができる。ファイル指定用パラメータに設定可能なファイルは常に単一であり（カレントファイル、又はShort file identifierによる指定）、レコード指定用パラメータに設定可能なレコードは単一か、あるいは指定したレコードを起点にした連続する複数のレコードである（例えば、指定したレコードから最終レコードまで、等）。
【０００７】
そのため、外部機器が単一のファイルに配置され、かつ連続していない複数のレコードを操作（読み出しや書き込み）する場合や、複数のファイルに配置されたレコードを操作する場合には、パラメータを変更しながら複数のコマンドを送信しなければならず、全ての操作を完了するまでの処理時間が著しく長くなるという問題がある。
【０００８】
そこで、本発明は、外部機器からの読み出しコマンド又は書き込みコマンドに基づく、記憶部に記憶された複数のデータを対象とする読み出す処理又は書き込む処理の処理時間を短縮することができる電子情報記憶媒体等を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、請求項１に記載の発明は、処理部と記憶部を備える電子情報記憶媒体であって、前記記憶部は、当該記憶部に記憶される複数のデータのそれぞれの記憶領域を示す記憶領域情報を含む位置データを記憶し、前記処理部は、外部機器から前記位置データを識別する識別情報を含むデータ読み出しコマンドを受信した場合に、当該識別情報により識別される位置データに含まれる記憶領域情報が示す複数の記憶領域のそれぞれに記憶されているデータをまとめて前記外部機器に送信することを特徴とする。
【００１０】
請求項２に記載の発明は、処理部と記憶部を備える電子情報記憶媒体であって、前記記憶部は、当該記憶部に記憶される複数のデータのそれぞれの記憶領域を示す記憶領域情報を含む位置データを記憶し、前記処理部は、外部機器から前記位置データを識別する識別情報と、当該識別情報により識別される位置データに含まれる記憶領域情報が示す複数の記憶領域にそれぞれ対応させて書き込む書込データと、を含むデータ書き込みコマンドを受信した場合に、当該複数の記憶領域に、それぞれ対応する当該書込データを書き込むことを特徴とする。
【００１１】
請求項３に記載の発明は、請求項１又は２に記載の電子情報記憶媒体であって、前記処理部は、前記外部機器から前記位置データの追加、変更又は削除を行うことを示すコマンドを受信した場合に、当該コマンドに応じて前記位置データの追加、変更又は削除を行うことを特徴とする。
【００１２】
請求項４に記載の発明は、請求項１乃至３の何れか一項に記載の電子情報記憶媒体を備えるＩＣカードである。
【００１３】
請求項５に記載の発明は、処理部と記憶部を備える電子情報記憶媒体におけるデータ送信方法であって、前記記憶部が、当該記憶部に記憶される複数のデータのそれぞれの記憶領域を示す記憶領域情報を含む位置データを記憶する工程と、前記処理部が、外部機器から前記位置データを識別する識別情報を含むデータ読み出しコマンドを受信した場合に、当該識別情報により識別される位置データに含まれる記憶領域情報が示す複数の記憶領域のそれぞれに記憶されているデータをまとめて前記外部機器に送信する工程と、を含むことを特徴とする。
【００１４】
請求項６に記載の発明は、処理部と記憶部を備える電子情報記憶媒体におけるデータ書き込み方法であって、前記記憶部が、当該記憶部に記憶される複数のデータのそれぞれの記憶領域を示す記憶領域情報を含む位置データを記憶する工程と、前記処理部が、外部機器から前記位置データを識別する識別情報と、当該識別情報により識別される位置データに含まれる記憶領域情報が示す複数の記憶領域にそれぞれ対応させて書き込む書込データと、を含むデータ書き込みコマンドを受信した場合に、当該複数の記憶領域に、それぞれ対応する当該書込データを書き込む工程と、を含むことを特徴とする。
【００１５】
請求項７に記載の発明は、処理部と記憶部を備え、前記記憶部が、当該記憶部に記憶される複数のデータのそれぞれの記憶領域を示す記憶領域情報を含む位置データを記憶する電子情報記憶媒体における前記処理部を、外部機器から前記位置データを識別する識別情報を含むデータ読み出しコマンドを受信した場合に、当該識別情報により識別される位置データに含まれる記憶領域情報が示す複数の記憶領域のそれぞれに記憶されているデータをまとめて前記外部機器に送信する送信手段、として機能させることを特徴とする。
【００１６】
請求項８に記載の発明は、処理部と記憶部を備え、前記記憶部が、当該記憶部に記憶される複数のデータのそれぞれの記憶領域を示す記憶領域情報を含む位置データを記憶する電子情報記憶媒体における前記処理部を、外部機器から前記位置データを識別する識別情報と、当該識別情報により識別される位置データに含まれる記憶領域情報が示す複数の記憶領域にそれぞれ対応させて書き込む書込データと、を含むデータ書き込みコマンドを受信した場合に、当該複数の記憶領域に、それぞれ対応する当該書込データを書き込む書き込み手段、として機能させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、外部機器は、データ読み出しコマンド又はデータ書き込みコマンドにおいて、読み出し又は書き込みの対象となる複数のデータのそれぞれの記憶領域を示す記憶領域情報を含む位置データを識別する識別情報を設定することにより、記憶部に記憶された複数のデータを一括して読み出す又は書き込むことができ、これらの処理に要する処理時間を短縮することができる。
【図面の簡単な説明】
【００１８】
【図１】本実施形態に係るＩＣカード１に搭載されるＩＣチップ１ａのハードウェア構成例を示す図である。
【図２】（Ａ）は、本実施形態に係るＩＣチップ１ａのファイル構造の一例を示す図であり、（Ｂ）は、本実施形態に係るＥＦ２０３ｂの一例を示す図であり、（Ｃ）は、本実施形態に係るＥＦ２０３ｃの一例を示す図である。
【図３】本実施形態に係るＥＦ２０３ａの一例を示す図である。
【図４】（Ａ）は、従来の読み出しコマンドの例を示す図であり、（Ｂ）、（Ｃ）は、本実施形態に係る一括読み出しコマンドの例を示す図である。
【図５】本実施形態に係るＣＰＵ１０による一括読み出しコマンド受信時処理を示すフローチャートの一例である。
【図６】（Ａ）は、従来の書き込みコマンドの例を示す図であり、（Ｂ）、（Ｃ）は、変形例１に係る一括書き込みコマンドの例を示す図である。
【図７】変形例１に係るＣＰＵ１０による一括書き込みコマンド受信時処理を示すフローチャートの一例である。
【図８】変形例５に係るＥＦ２０３ａの一例を示す図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ＩＣチップを搭載するＩＣカードに対して本発明を適用した場合の実施の形態である。
【００２０】
［１．ＩＣチップ１ａの構成及び機能概要］
まず、図１を参照して、本実施形態に係るＩＣカード１に搭載されるＩＣチップ１ａの構成及び機能概要について説明する。図１は、ＩＣカード１に搭載されるＩＣチップ１ａのハードウェア構成例を示す図である。ＩＣカード１は、キャッシュカード、クレジットカード、ポイントカード、社員カード等として使用される。或いは、ＩＣカード１は、スマートフォンや携帯電話機等の通信機器に組み込まれる。或いは、ＩＣチップ１ａが通信機器の回路基板上に直接組み込まれて構成されるようにしてもよい。なお、ＩＣチップ１ａは、本発明の電子情報記憶媒体の一例である。
【００２１】
図１に示すように、ＩＣチップ１ａは、ＣＰＵ（Central Processing Unit）１０、ＲＡＭ（Random Access Memory）１１、ＲＯＭ（Read Only Memory）１２、不揮発性メモリ１３、及びＩ／Ｏ回路１４を備えて構成される。ＣＰＵ１０は、ＲＯＭ１２又は不揮発性メモリ１３に記憶された各種プログラムを実行するプロセッサ（コンピュータ）である。なお、Ｉ／Ｏ回路１４は、外部機器２とのインターフェイスを担う。これにより、ＩＣチップ１ａは、ＩＣリーダ・ライタを備える外部機器２との間で接触又は非接触で通信を行うことができる。接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、Ｃ１〜Ｃ８の８個の端子が備えられている。例えば、Ｃ１端子は電源端子（ＩＣチップ１ａへ電源供給する端子）、Ｃ２端子はリセット端子、Ｃ３端子はクロック端子、Ｃ５端子はグランド端子、Ｃ７端子は外部機器２との間で通信を行うための端子である。一方、非接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部機器２の例としては、ＩＣカード発行機、ＡＴＭ、改札機、認証用ゲート等が挙げられる。或いは、ＩＣチップ１ａが通信機器に組み込まれる場合、外部機器２には通信機器の機能を担う制御部が該当する。
【００２２】
不揮発性メモリ１３には、例えばフラッシュメモリが適用される。不揮発性メモリ１３に記憶される各種プログラム及びデータの一部は、ＲＯＭ１２に記憶されてもよい。なお、不揮発性メモリ１３は、「Electrically Erasable Programmable Read-Only Memory」であってもよい。本実施形態において、ＲＯＭ１２と不揮発性メモリ１３との何れかに記憶されるプログラムには、オペレーティングシステム（Operating System、以下、「ＯＳ」という）、アプリケーションプログラム等が含まれる。
【００２３】
ここで、アプリケーションプログラムは、ＩＣカード１においてアプリケーションインスタンスの機能（言い換えれば、モジュール）を実現するためのプログラムである。これにより、ＣＰＵ１０は、アプリケーションの機能を実現する。
【００２４】
また、不揮発性メモリ１３には、種々のアプリケーションやデータを格納するファイルを記憶する。具体的には、図２（Ａ）に示すように、ＭＦ２０１、ＤＦ２０２ａ、２０２ｂ（総称してＤＦ２０２という場合がある）及びＥＦ２０３ａ〜２０３ｅ（総称してＥＦ２０３という場合がある）を記憶する。ＭＦ２０１は、ＩＣチップ１ａのファイル構造の根幹となるファイルである。ＤＦ２０２は、ＭＦ２０１の下位に配置され、アプリケーションなどを格納するファイルである。ＥＦ２０３は、ＤＦ２０２の下位に配置され、様々なデータを格納するためのファイルである。なお、ＭＦの直下にＥＦが配置される場合もある（例えば、ＥＦ２０３ａ）。また、各データファイルには識別子が付与されている（図２（Ａ）では「ＭＦ」、「ＤＦ」、「ＥＦ」の右横に識別子を記載している）。
【００２５】
次に、図２（Ｂ）、（Ｃ）を参照して、識別子「６Ｆ０１」、「６Ｆ０２」が付与されたＥＦ２０３ｂ及びＥＦ２０３ｃについて説明する。ＥＦ２０３ｂ及びＥＦ２０３ｃはレコード編成ファイルであって、複数のレコードにより編成されている（ＥＦは１のレコードのみにより編成される場合もある）。
【００２６】
図２（Ｂ）に示すように、ＥＦ２０３ｂは４つのレコードにより編成されている。第１レコード（レコード番号「１」のレコード）３０１には「個人ＩＤ」、第２レコード（レコード番号「２」のレコード）３０２には「氏名」、第３レコード（レコード番号「３」のレコード）３０３には「出生地（都道府県）」、第４レコード（レコード番号「４」のレコード）３０４には「生年月日」を示す情報がそれぞれ格納される。なお、第１レコード３０１−第４レコード３０４のレコード長（Length）は全て１０バイトである。
【００２７】
また、図２（Ｃ）に示すように、ＥＦ２０３ｃは４つのレコードにより編成されている。第１レコード３１１には「自宅住所」、第２レコード３１２には「自宅電話番号」、第３レコード３１３には「勤務先住所」、第４レコード３１４には「勤務先電話番号」を示す情報がそれぞれ格納される。なお、第１レコード３１１−第４レコード３１４のレコード長（Length）は全て２０バイトである。
【００２８】
このように、ＥＦ２０３ｂ及びＥＦ２０３ｃには、例えば、ＩＣカード１の所有者の個人情報が格納される。また、それぞれの情報はファイルの識別子及びレコード番号の組み合わせにより特定することができる。例えば、識別子「６Ｆ０１」及びレコード番号「２」の組み合わせにより、「氏名」という情報を特定することができる。
【００２９】
次に、図３を参照して、識別子「２Ｆ０１」が付与されたＥＦ２０３ａについて説明する。ＥＦ２０３ａもＥＦ２０３ｂ及びＥＦ２０３ｃと同様に複数のレコード３５１−３５３により編成される。図３に示すように、ＥＦ２０３ａの各レコードには、ファイルの識別子及びレコード番号の組み合わせが一組以上記述されている。例えば、ＥＦ２０３ａの第１レコード３５１には「６Ｆ０１  ０１  ６Ｆ０２  ０３  ６Ｆ０２  ０４」という情報が格納されており、このうち、「６Ｆ０１  ０１」は、ＥＦ２０３ｂ（６Ｆ０１）の第１レコードである「個人ＩＤ」を示しており、同様に、「６Ｆ０２  ０３」は、ＥＦ２０３ｃ（６Ｆ０２）の第３レコードである「勤務先住所」を示しており、「６Ｆ０２  ０４」は、ＥＦ２０３ｃ（６Ｆ０２）の第４レコードである「勤務先電話番号」を示している。ＥＦ２０３ａ（２Ｆ０１）に含まれる各レコード３５１−３５３は、ＩＣカード１の発行時に発行者が設定する。
【００３０】
なお、以下、ＥＦ２０３ａ（２Ｆ０１）を「一括指示ファイル」といい、「一括指示ファイル」に含まれる各レコードを「一括指示データ」という。
【００３１】
［２．読み出しコマンド］
次に、外部機器２からＩＣカード１に送信される読み出しコマンド（ＩＣカード１が記憶するデータを読み出すためのコマンド）について説明する。ここでは、外部機器２が次の（１）−（３）のレコードを読み出す場合を具体例として用いる。
（１）ＥＦ２０３ｂ（６Ｆ０１）の第１レコード
（２）ＥＦ２０３ｃ（６Ｆ０２）の第３レコード
（３）ＥＦ２０３ｃ（６Ｆ０２）の第４レコード
【００３２】
従来の国際規格ＩＳＯ／ＩＥＣ  ７８１６−４準拠のコマンドを利用して（１）−（３）のデータを読み出す場合、次の（Ａ）−（Ｅ）の手順を踏む必要がある。
（Ａ）ＥＦ２０３ｂ（６Ｆ０１）の選択
（Ｂ）第１レコードの読み出し
（Ｃ）ＥＦ２０３ｃ（６Ｆ０２）の選択
（Ｄ）第３レコードの読み出し
（Ｅ）第４レコードの読み出し
【００３３】
このように従来の手法では、（Ａ）、（Ｃ）で選択コマンドを送信し、（Ｂ）、（Ｄ）、（Ｅ）で読み出しコマンドを送信する必要があり、合計５つのコマンドを送信することとなる。また、仮にＥＦ２０３ｂ（６Ｆ０１）及びＥＦ２０３ｃ（６Ｆ０２）に国際規格で定められている短縮ファイルＩＤが割り当てられている場合は、ファイルとレコードを同時に指定できるため（Ａ）及び（Ｃ）の処理が不要となるが、それでも（Ｂ）、（Ｄ）、（Ｅ）の３つの読み出しコマンドを送信する必要がある。
【００３４】
これに対して、本実施形態では、新たに一括読み出しコマンドを設け、（Ａ）−（Ｅ）の処理を一つの処理として実現する。
【００３５】
図４（Ａ）は、従来の読み出しコマンドの例を示す図である。「ＩＮＳ」（１バイト）には「ＲＥＡＤ  ＲＥＣＯＲＤ」コマンドを示す値が格納され、「Ｐ１（パラメータ１）」（１バイト）には読み出し対象のレコードのレコード番号が格納され、「Ｐ２（パラメータ２）」（１バイト）にはレコード番号で読み出し対象を指定することを示す値が格納される。
【００３６】
図４（Ｂ）は、一括読み出しコマンドの一例（例１）である。「ＩＮＳ」には「ＲＥＡＤ  ＲＥＣＯＲＤ」コマンドを示す値が格納され、「Ｐ１（パラメータ１）」には一括読み出しに用いる一括指示データ（レコード）のレコード番号が格納され、「Ｐ２（パラメータ２）」には一括読み出しすることを示す値が格納される。
【００３７】
例１におけるＩＣチップ１ａのＣＰＵ１０は、外部機器２から、「Ｐ２」に一括読み出しすることを示す値が格納された一括読み出しコマンドを受信すると、図３のＥＦ２０３ａ（２Ｆ０１）に含まれる一括指示データ（ファイルの識別子及びレコード番号の組み合わせが一組以上記述されているレコード）であって、「Ｐ１」に格納されているレコード番号で特定される一括指示データを取得する。次いで、ＣＰＵ１０は、取得した当該一括指示データに記述されているファイルの識別子及びレコード番号の組み合わせのそれぞれに基づいて、該当レコードを全て取得し、これらを連結して、外部機器２に対して一括読み出しコマンドのレスポンスとして送信する。
【００３８】
図４（Ｃ）は、一括読み出しコマンドの一例（例２）である。「ＩＮＳ」には一括読み出しコマンドを示す値が格納され、「Ｐ１（パラメータ１）」には一括読み出しに用いる一括指示データ（レコード）のレコード番号が格納され、「Ｐ２（パラメータ２）」は使用しない。
【００３９】
例２におけるＩＣチップ１ａのＣＰＵ１０は、外部機器２から、「ＩＮＳ」に一括読み出しコマンドを示す値が格納されたコマンドを受信すると、例１の場合と同様に、図３のＥＦ２０３ａ（２Ｆ０１）に含まれる一括指示データ（ファイルの識別子及びレコード番号の組み合わせが一組以上記述されているレコード）であって、「Ｐ１」に格納されているレコード番号で特定されるレコードを取得する。次いで、ＣＰＵ１０は、取得した当該一括指示データに記述されているファイルの識別子及びレコード番号の組み合わせのそれぞれに基づいて、該当レコードを全て取得し、これらを連結して、外部機器２に対して一括読み出しコマンドのレスポンスとして送信する。
【００４０】
［３．ＣＰＵ１０による一括読み出しコマンド受信時処理］
次に、図５を用いて、ＩＣチップ１ａのＣＰＵ１０による一括読み出しコマンド受信時処理について説明する。一括読み出しコマンド受信時処理は、ＩＣチップ１ａが外部機器２から一括読み出しコマンド（図４の（Ｂ）又は（Ｃ）に示すコマンド）を受信した場合に実行される。
【００４１】
まず、ＣＰＵ１０は、一括読み出しコマンドを受信すると、一括指示ファイル（図３のＥＦ２０３ａ（２Ｆ０１））を選択する（ステップＳ１０１）。
【００４２】
次に、ＣＰＵ１０は、ステップＳ１０１の処理で選択した一括指示ファイルに含まれるレコードのうち、一括読み出しコマンドの「Ｐ１」で指定されたレコード（一括指示データ）を読み出す（ステップＳ１０２）。
【００４３】
次に、ＣＰＵ１０は、ステップＳ１０２の処理で読み出した一括指示データからファイルの識別子及びレコード番号の組み合わせを取得する（ステップＳ１０３）。なお、ステップＳ１０３の処理は、ステップＳ１０３〜ステップＳ１０９のループ処理において、一括指示データに記述された組み合わせの数分だけ実行されるが、ＣＰＵ１０はステップＳ１０３の処理を実行する度に、一括指示データに記述されたファイルの識別子及びレコード番号の組み合わせを先頭から順に一組ずつ取得する。
【００４４】
次に、ＣＰＵ１０は、ステップＳ１０３の処理で取得したファイルの識別子に対応するファイルを選択する（ステップＳ１０４）。
【００４５】
次に、ＣＰＵ１０は、ステップＳ１０４の処理でファイルを選択できたか否かを判定する（ステップＳ１０５）。このとき、ＣＰＵ１０は、ファイルを選択できなかったと判定した場合には（ステップＳ１０５：ＮＯ）、エラーレスポンスを外部機器２に出力し（ステップＳ１１１）、一括読み出しコマンド受信時処理を終了する。
【００４６】
一方、ＣＰＵ１０は、ファイルを選択できたと判定した場合には（ステップＳ１０５：ＹＥＳ）、当該ファイルに含まれるレコードであって、ステップＳ１０３の処理で取得したレコード番号に対応するレコードを選択する（ステップＳ１０６）。
【００４７】
次に、ＣＰＵ１０は、ステップＳ１０６の処理でレコードを選択できたか否かを判定する（ステップＳ１０７）。このとき、ＣＰＵ１０は、レコードを選択できなかったと判定した場合には（ステップＳ１０７：ＮＯ）、エラーレスポンスを外部機器２に出力し（ステップＳ１１１）、一括読み出しコマンド受信時処理を終了する。
【００４８】
一方、ＣＰＵ１０は、レコードを選択できたと判定した場合には（ステップＳ１０７：ＹＥＳ）、選択したレコードを読み出して、ＲＡＭ１１又は不揮発性メモリ１３に一時保存する（ステップＳ１０８）。
【００４９】
次に、ＣＰＵ１０は、一括指示データに記述されたファイルの識別子及びレコード番号の組み合わせを全て取得したか否かを判定する（ステップＳ１０９）。このとき、ＣＰＵ１０は、ファイルの識別子及びレコード番号の組み合わせを全て取得していないと判定した場合には（ステップＳ１０９：ＮＯ）、ステップＳ１０３の処理に移行する。
【００５０】
一方、ＣＰＵ１０は、ファイルの識別子及びレコード番号の組み合わせを全て取得したと判定した場合には（ステップＳ１０９：ＹＥＳ）、ステップＳ１０８の処理で一時保存したレコードを連結してレスポンスとして外部機器２に出力し（ステップＳ１１０）、一括読み出しコマンド受信時処理を終了する。
【００５１】
以上のように、本実施形態のＩＣチップ１ａは、ＣＰＵ１０（「処理部」の一例）と不揮発性メモリ１３（「記憶部」の一例）を備え、不揮発性メモリ１３は、不揮発性メモリ１３に記憶される複数のレコード（「データ」の一例）のそれぞれの記憶領域を示すファイルの識別子及びレコード番号の組み合わせ（「記憶領域情報」の一例）を含む一括指示データ（「位置データ」の一例）を記憶し、ＣＰＵ１０は、外部機器２から一括読み出しに用いる一括指示データのレコード番号（「識別情報」の一例）を含む一括読み出しコマンド（「データ読み出しコマンド」の一例）を受信した場合に、当該レコード番号により識別される一括指示データに含まれるファイルの識別子及びレコード番号の組み合わせが示す複数の記憶領域のそれぞれに記憶されているレコードをまとめて外部機器２に送信する。
【００５２】
したがって、本実施形態のＩＣチップ１ａによれば、外部機器２は、一括読み出しコマンドにおいて、読み出し対象となる複数のレコードのそれぞれの記憶領域を示すファイルの識別子及びレコード番号の組み合わせを含む一括指示データを識別するレコード番号を設定することにより、不揮発性メモリ１３に記憶された複数のレコードを一括して読み出すことができ、この処理に要する処理時間を短縮することができる。
【００５３】
［４．変形例］
次に、上記実施形態の変形例について説明する。なお、以下に説明する変形例は上記実施形態や他の変形例と適宜組み合わせることができる。
【００５４】
［４．１．変形例１］
上記実施形態では、一括読み出しコマンドを設け、複数のレコードを一括して読み出す場合について説明したが、これに代えて又は加えて、一括書き込みコマンドを設け、複数のレコードに一括して書き込みを行うこととしてもよい。
【００５５】
［４．１．１．書き込みコマンド］
まず、外部機器２が次の（１）−（３）のレコードに書き込みする場合を具体例として用いて説明する。
（１）ＥＦ２０３ｂ（６Ｆ０１）の第１レコード
（２）ＥＦ２０３ｃ（６Ｆ０２）の第３レコード
（３）ＥＦ２０３ｃ（６Ｆ０２）の第４レコード
【００５６】
従来の国際規格ＩＳＯ／ＩＥＣ  ７８１６−４準拠のコマンドを利用して（１）−（３）のデータに書き込みを行う場合、次の（Ａ）−（Ｅ）の手順を踏む必要がある。
（Ａ）ＥＦ２０３ｂ（６Ｆ０１）の選択
（Ｂ）第１レコードの書き込み
（Ｃ）ＥＦ２０３ｃ（６Ｆ０２）の選択
（Ｄ）第３レコードの書き込み
（Ｅ）第４レコードの書き込み
【００５７】
このように従来の手法では、（Ａ）、（Ｃ）で選択コマンドを送信し、（Ｂ）、（Ｄ）、（Ｅ）で書き込みコマンドを送信する必要があり、合計５つのコマンドを送信することとなる。また、仮にＥＦ２０３ｂ（６Ｆ０１）及びＥＦ２０３ｃ（６Ｆ０２）に国際規格で定められている短縮ファイルＩＤが割り当てられている場合は、ファイルとレコードを同時に指定できるため（Ａ）及び（Ｃ）の処理が不要となるが、それでも（Ｂ）、（Ｄ）、（Ｅ）の３つの読み出しコマンドを送信する必要がある。
【００５８】
これに対して、変形例１では、新たに一括書き込みコマンドを設け、（Ａ）−（Ｅ）の処理を一つのコマンドで実現する。
【００５９】
図６（Ａ）は、従来の書き込みコマンドの例を示す図である。「ＩＮＳ」には、「ＵＰＤＡＴＥ  ＲＥＣＯＲＤ」コマンドを示す値が格納され、「Ｐ１（パラメータ１）」には書き込み対象のレコードのレコード番号が格納され、「Ｐ２（パラメータ２）」にはレコード番号で書き込み対象を指定することを示す値が格納される。
【００６０】
図６（Ｂ）は、一括書き込みコマンドの一例（例１）である。「ＩＮＳ」には、「ＵＰＤＡＴＥ  ＲＥＣＯＲＤ」コマンドを示す値が格納され、「Ｐ１（パラメータ１）」には一括書き込みに用いる一括指示データ（レコード）のレコード番号が格納され、「Ｐ２（パラメータ２）」には一括書き込みすることを示す値が格納される。また、「Ｌｃ（レコード長）」には「ＤＡＴＡ」の長さが記述される。更に、「ＤＡＴＡ」には、書き込み対象となる各レコードに書き込むべきデータ（書き込みデータ）がそれぞれ連続して記述されている。例えば、ＥＦ２０３ｂ（６Ｆ０１）の第１レコード３０１（個人ＩＤ）と、ＥＦ２０３ｃ（６Ｆ０２）の第３レコード３１３（勤務先住所）を書き込み対象とする場合には、「ＤＡＴＡ」の先頭から１０バイト目までに書き込むべき個人ＩＤが記述され、「ＤＡＴＡ」の１１バイト目から３０バイト目までに書き込むべき勤務先住所が記述される。
【００６１】
ＩＣチップ１ａのＣＰＵ１０は、外部機器２から、「Ｐ２」に一括書き込みすることを示す値が格納された一括書き込みコマンドを受信すると、一括指示ファイルであるＥＦ２０３ａ（２Ｆ０１）に含まれる一括指示データであって、「Ｐ１」に格納されているレコード番号で特定される一括指示データを取得する。次いで、ＣＰＵ１０は、取得した当該一括指示データに記述されているファイルの識別子及びレコード番号の組み合わせを示す情報に基づいて、該当レコードをそれぞれ選択して、一括書き込みコマンドの「ＤＡＴＡ」に記述された書き込みデータを書き込む。
【００６２】
図６（Ｃ）は、一括書き込みコマンドの一例（例２）である。「ＩＮＳ」には、一括書き込みコマンドを示す値が格納され、「Ｐ１（パラメータ１）」には一括書き込みに用いる一括指示データ（レコード）のレコード番号が格納され、「Ｐ２（パラメータ２）」は使用しない。また、「Ｌｃ（レコード長）」には「ＤＡＴＡ」の長さが記述される。更に、「ＤＡＴＡ」には、書き込み対象となる各レコードに書き込むべきデータ（書き込みデータ）がそれぞれ連続して記述されている。
【００６３】
ＩＣチップ１ａのＣＰＵ１０は、外部機器２から、「ＩＮＳ」に一括書き込みコマンドを示す値が格納されたコマンドを受信すると、例１の場合と同様に、一括指示ファイルであるＥＦ２０３ａ（２Ｆ０１）に含まれる一括指示データであって、「Ｐ１」に格納されているレコード番号で特定される一括指示データを取得する。次いで、ＣＰＵ１０は、取得した当該一括指示データに記述されているファイルの識別子及びレコード番号の組み合わせを示す情報に基づいて、該当レコードをそれぞれ選択して、一括書き込みコマンドの「ＤＡＴＡ」に記述された書き込みデータを書き込む。
【００６４】
［４．１．２．ＣＰＵ１０による一括書き込みコマンド受信時処理］
次に、図７を用いて、ＩＣチップ１ａのＣＰＵ１０による一括書き込みコマンド受信時処理について説明する。一括書き込みコマンド受信時処理は、ＩＣチップ１ａが外部機器２から一括書き込みコマンド（図６の（Ｂ）又は（Ｃ）に示すコマンド）を受信した場合に実行される。
【００６５】
まず、ＣＰＵ１０は、一括書き込みコマンドを受信すると、一括指示ファイル（図３のＥＦ２０３ａ（２Ｆ０１））を選択する（ステップＳ２０１）。
【００６６】
次に、ＣＰＵ１０は、ステップＳ２０１の処理で選択した一括指示ファイルに含まれるレコードのうち、一括読み出しコマンドの「Ｐ１」で指定されたレコード（一括指示データ）を読み出す（ステップＳ２０２）。
【００６７】
次に、ＣＰＵ１０は、ステップＳ２０２の処理で読み出した一括指示データからファイルの識別子及びレコード番号の組み合わせを取得する（ステップＳ２０３）。なお、ステップＳ２０３の処理は、ステップＳ２０３〜ステップＳ２１０のループ処理において、一括指示データに記述された組み合わせの数分だけ実行されるが、ＣＰＵ１０はステップＳ２０３の処理を実行する度に、一括指示データに記述されたファイルの識別子及びレコード番号の組み合わせを先頭から順に一組ずつ取得する。
【００６８】
次に、ＣＰＵ１０は、ステップＳ２０３の処理で取得したファイルの識別子に対応するファイルを選択する（ステップＳ２０４）。
【００６９】
次に、ＣＰＵ１０は、ステップＳ２０４の処理でファイルを選択できたか否かを判定する（ステップＳ２０５）。このとき、ＣＰＵ１０は、ファイルを選択できなかったと判定した場合には（ステップＳ２０５：ＮＯ）、エラーレスポンスを外部機器２に出力し（ステップＳ２１２）、一括書き込みコマンド受信時処理を終了する。
【００７０】
一方、ＣＰＵ１０は、ファイルを選択できたと判定した場合には（ステップＳ２０５：ＹＥＳ）、選択したファイルのレコード長を取得する（ステップＳ２０６）。例えば、選択したファイルがＥＦ２０３ｂ（６Ｆ０１）である場合にはレコード長「１０バイト」を取得する。
【００７１】
次に、ＣＰＵ１０は、ステップＳ２０４の処理で選択したファイルに含まれるレコードであって、ステップＳ２０３の処理で取得したレコード番号に対応するレコードを選択する（ステップＳ２０７）。
【００７２】
次に、ＣＰＵ１０は、ステップＳ２０７の処理でレコードを選択できたか否かを判定する（ステップＳ２０８）。このとき、ＣＰＵ１０は、レコードを選択できなかったと判定した場合には（ステップＳ２０８：ＮＯ）、エラーレスポンスを外部機器２に出力し（ステップＳ２１２）、一括書き込みコマンド受信時処理を終了する。
【００７３】
一方、ＣＰＵ１０は、レコードを選択できたと判定した場合には（ステップＳ２０８：ＹＥＳ）、一括書き込みコマンドの「ＤＡＴＡ」に記述された書き込みデータを書き込む（ステップＳ２０９）。なお、上述したように、一括書き込みコマンドの「ＤＡＴＡ」には、各レコードに書き込む書き込みデータが、当該レコードのレコード長で連続して記述されている。ステップＳ２０９の処理は、ステップＳ２０３〜ステップＳ２１０のループ処理において、一括指示データに記述された組み合わせの数分だけ実行されるが、ＣＰＵ１０はステップＳ２０９の処理を実行する度に、一括書き込みコマンドの「ＤＡＴＡ」に記述された複数の書き込みデータを先頭から順に、直前のステップＳ２０６の処理で取得したレコード長分ずつ書き込む。
【００７４】
次に、ＣＰＵ１０は、一括指示データに記述されたファイルの識別子及びレコード番号の組み合わせを全て取得したか否かを判定する（ステップＳ２１０）。このとき、ＣＰＵ１０は、ファイルの識別子及びレコード番号の組み合わせを全て取得していないと判定した場合には（ステップＳ２１０：ＮＯ）、ステップＳ２０３の処理に移行する。
【００７５】
一方、ＣＰＵ１０は、ファイルの識別子及びレコード番号の組み合わせを全て取得したと判定した場合には（ステップＳ２１０：ＹＥＳ）、正常終了レスポンスを外部機器２に出力し（ステップＳ２１１）、一括書き込みコマンド受信時処理を終了する。
【００７６】
以上のように、本実施形態のＩＣチップ１ａは、ＣＰＵ１０（「処理部」の一例）と不揮発性メモリ１３（「記憶部」の一例）を備え、不揮発性メモリ１３は、不揮発性メモリ１３に記憶される複数のレコード（「データ」の一例）のそれぞれの記憶領域を示すファイルの識別子及びレコード番号の組み合わせ（「記憶領域情報」の一例）を含む一括指示データ（「位置データ」の一例）を記憶し、ＣＰＵ１０は、外部機器２から一括読み出しに用いる一括指示データのレコード番号（「識別情報」の一例）と、当該レコード番号により識別される一括指示データに含まれるファイルの識別子及びレコード番号の組み合わせが示す複数の記憶領域にそれぞれ対応させて書き込む書込データと、を含む一括書き込みコマンド（「データ書き込みコマンド」の一例）を受信した場合に、当該複数の記憶領域に、それぞれ対応する当該書込データを書き込む。
【００７７】
したがって、本実施形態のＩＣチップ１ａによれば、外部機器２は、一括書き込みコマンドにおいて、書き込み対象となる複数のレコードのそれぞれの記憶領域を示すファイルの識別子及びレコード番号の組み合わせを含む一括指示データを識別するレコード番号を設定することにより、不揮発性メモリ１３に記憶された複数のレコードに一括して書き込むことができ、この処理に要する処理時間を短縮することができる。
【００７８】
［４．２．変形例２］
上記実施形態では、一括指示ファイルが図３のＥＦ２０３ａ（２Ｆ０１）の一つだけ存在し、一括読み出しコマンドを受信したＣＰＵ１０は、ＥＦ２０３ａ（２Ｆ０１）に含まれるレコードに基づいて一括読み出しを行うこととした。これに代えて、変形例２では、一括指示ファイルを複数設ける。
【００７９】
具体的には、まず、ＩＳＯ／ＩＥＣ  ７８１６−４に定義されている短縮ファイルＩＤ（５ビット）を複数の一括指示ファイルのそれぞれに割り当てる。そして、図４（Ｃ）の一括読み出しコマンドでは、「Ｐ２」（上記実施形態では使用しないこととした）に短縮ファイルＩＤを記述して、何れの一括指示ファイルを用いるか指定する。そして、ＣＰＵ１０は、図５のステップＳ１０１の処理で、「Ｐ２」に記述された短縮ファイルＩＤで識別される一括指示ファイルを選択することとする。
【００８０】
上記実施形態では、ＩＣチップ１ａは一括指示ファイルを一つしか保持できなかったため、当該一括指示ファイルが記憶することのできるレコード数（２５５個）以上の一括指示データを記憶させることができなかった。変形例２では、短縮ファイルＩＤを採用することにより、最大３０の一括指示ファイルを設けることができる（短縮ファイルＩＤは５ビットの情報であり、使用することのできない「０００００」と「１１１１１」を除くと最大３０となる）ことから、ＩＣチップ１ａが記憶することのできるレコード数は７６５０と飛躍的に増加し、一括読み出しコマンドの汎用性を向上させることができる。
【００８１】
［４．３．変形例３］
ＥＦ２０３ａ（２Ｆ０１）に含まれる各レコードは、外部機器２が所定のルールに則って追加・変更・削除することとしてもよい。ＥＦ２０３ａ（２Ｆ０１）に含まれるレコードの追加・変更・削除は、ＣＰＵ１０が外部機器２から受信したコマンドに基づいて実行する。変形例３によれば、一括読み出し又は一括書き込みしたいレコードを外部機器２側で設定することができ、利便性が向上する。
【００８２】
［４．４．変形例４］
上記実施形態では、図３のＥＦ２０３ａ（２Ｆ０１）のように、一括指示ファイルはレコード構造のファイルであったが、一括指示データを一つだけ設定する場合には、一括指示ファイルを透過構造としてもよい。
【００８３】
［４．５．変形例５］
上記実施形態では、図３のＥＦ２０３ａ（２Ｆ０１）のように、第１レコード３５１には「６Ｆ０１  ０１  ６Ｆ０２  ０３  ６Ｆ０２  ０４」というように、ファイルの識別子及びレコード番号の組み合わせを３組記述したが、「６Ｆ０２  ０３」と「６Ｆ０２  ０４」については同じファイルに含まれるレコードであるので、省略形の記述方法を採用することとしてもよい。例えば、「６Ｆ０２  ０３」と「６Ｆ０２  ０４の組み合わせを、図８に示すように、「６Ｆ０２  ０３  ０４」というように記載することとしてもよい。
【符号の説明】
【００８４】
１  ＩＣカード
１ａ  ＩＣチップ
１０  ＣＰＵ
１１  ＲＡＭ
１２  ＲＯＭ
１３  不揮発性メモリ
１４  Ｉ／Ｏ回路
２  外部機器
【図１】
2018194995.tif 000003
【図２】
2018194995.tif 000004
【図３】
2018194995.tif 000005
【図４】
2018194995.tif 000006
【図５】
2018194995.tif 000007
【図６】
2018194995.tif 000008
【図７】
2018194995.tif 000009
【図８】
2018194995.tif 000010