特許第6984328号(P6984328)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 大日本印刷株式会社の特許一覧

特許6984328電子情報記憶媒体、ICカード、外部機器、データ書き込み方法及びデータ書き込みプログラム
<>
  • 特許6984328-電子情報記憶媒体、ICカード、外部機器、データ書き込み方法及びデータ書き込みプログラム 図000002
  • 特許6984328-電子情報記憶媒体、ICカード、外部機器、データ書き込み方法及びデータ書き込みプログラム 図000003
  • 特許6984328-電子情報記憶媒体、ICカード、外部機器、データ書き込み方法及びデータ書き込みプログラム 図000004
  • 特許6984328-電子情報記憶媒体、ICカード、外部機器、データ書き込み方法及びデータ書き込みプログラム 図000005
  • 特許6984328-電子情報記憶媒体、ICカード、外部機器、データ書き込み方法及びデータ書き込みプログラム 図000006
  • 特許6984328-電子情報記憶媒体、ICカード、外部機器、データ書き込み方法及びデータ書き込みプログラム 図000007
  • 特許6984328-電子情報記憶媒体、ICカード、外部機器、データ書き込み方法及びデータ書き込みプログラム 図000008
  • 特許6984328-電子情報記憶媒体、ICカード、外部機器、データ書き込み方法及びデータ書き込みプログラム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6984328
(24)【登録日】2021年11月29日
(45)【発行日】2021年12月17日
(54)【発明の名称】電子情報記憶媒体、ICカード、外部機器、データ書き込み方法及びデータ書き込みプログラム
(51)【国際特許分類】
   G06F 12/00 20060101AFI20211206BHJP
【FI】
   G06F12/00 560A
   G06F12/00 597U
【請求項の数】12
【全頁数】17
(21)【出願番号】特願2017-213999(P2017-213999)
(22)【出願日】2017年11月6日
(65)【公開番号】特開2019-86972(P2019-86972A)
(43)【公開日】2019年6月6日
【審査請求日】2020年9月25日
(73)【特許権者】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】110000958
【氏名又は名称】特許業務法人 インテクト国際特許事務所
(74)【代理人】
【識別番号】100120189
【弁理士】
【氏名又は名称】奥 和幸
(72)【発明者】
【氏名】深谷 宗志
(72)【発明者】
【氏名】野地 満里子
【審査官】 後藤 彰
(56)【参考文献】
【文献】 特開2011−65471(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
ページ単位でデータが書き込まれる不揮発性メモリを備え、外部機器から書き込みコマンドにより受信した書き込みデータを前記不揮発性メモリに書き込む電子情報記憶媒体であって、
前記書き込みコマンドにおけるペイロード部の最大バイト数が、前記不揮発性メモリの1ページ当たりの最大バイト数×N(Nは自然数)より所定バイト数だけ小さい場合において送信される書き込みコマンドであって、前記ペイロード部に前記最大バイト数分の第1の書き込みデータが格納され、前記書き込みコマンドにおけるヘッダ部の一部に前記所定バイト数分の第2の書き込みデータが格納された書き込みコマンドを受信する受信手段と、
前記受信手段が受信した書き込みコマンドにおける前記ペイロード部に格納された第1の書き込みデータと前記ヘッダ部の一部に格納された第2の書き込みデータを組み合わせた書き込みデータを、ページ単位で前記不揮発性メモリに書き込む書き込み手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項2】
ページ単位でデータが書き込まれる不揮発性メモリを備え、外部機器から書き込みコマンドにより受信した書き込みデータを前記不揮発性メモリに書き込む電子情報記憶媒体であって、
前記書き込みコマンドにおけるペイロード部の最大バイト数×M(Mは自然数)が、前記不揮発性メモリの1ページ当たりの最大バイト数より所定バイト数×Mだけ小さい場合において送信される書き込みコマンドであって、前記ペイロード部に前記最大バイト数分の第1の書き込みデータが格納され、前記書き込みコマンドにおけるヘッダ部の一部に前記所定バイト数分の第2の書き込みデータが格納された書き込みコマンドをM回受信する受信手段と、
前記受信手段が受信した書き込みコマンドにおける前記ペイロード部に格納された第1の書き込みデータと前記ヘッダ部の一部に格納された第2の書き込みデータを組み合わせた書き込みデータを、ページ単位で前記不揮発性メモリに書き込む書き込み手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項3】
請求項1又は2に記載の電子情報記憶媒体であって、
前記1ページ当たりの最大バイト数は、2の累乗数であり、
前記ペイロード部の最大バイト数は、2の累乗数−前記所定バイト数であることを特徴とする電子情報記憶媒体。
【請求項4】
請求項1乃至3の何れか一項に記載の電子情報記憶媒体であって、
前記書き込み手段は、前記ヘッダ部に所定の命令識別データが格納されていると判定した場合に、前記受信手段が受信した書き込みコマンドにおける前記ペイロード部に格納された第1の書き込みデータと前記ヘッダ部の一部に格納された第2の書き込みデータを組み合わせた書き込みデータを、ページ単位で前記不揮発性メモリに書き込むことを特徴とする電子情報記憶媒体。
【請求項5】
請求項4に記載の電子情報記憶媒体であって、
前記ヘッダ部には、前記所定の命令識別データと、前記所定バイト数分の第2の書き込みデータと、前記第1の書き込みデータと前記第2の書き込みデータを組み合わせた書き込みデータを書き込むページを特定するための書き込みページデータと、が格納されており、
前記書き込み手段は、前記所定の命令識別データが格納されたコマンドを受信した場合に、前記第1の書き込みデータと前記第2の書き込みデータを組み合わせた書き込みデータを、前記書き込みページデータにより特定されるページに書き込むことを特徴とする電子情報記憶媒体。
【請求項6】
請求項1乃至5の何れか一項に記載の電子情報記憶媒体であって、
前記書き込みコマンドは、前記ヘッダ部、前記ペイロード部の順で構成されており、
前記第2の書き込みデータは、前記ヘッダ部の最後尾に格納されることを特徴とする電子情報記憶媒体。
【請求項7】
請求項6に記載の電子情報記憶媒体であって、
前記ヘッダ部は、CLA部、INS部、パラメータP1部、パラメータP2部、及び、Lc部の順で構成されており、
前記第2の書き込みデータは、前記Lc部に格納されることを特徴とする電子情報記憶媒体。
【請求項8】
請求項1乃至5の何れか一項に記載の電子情報記憶媒体であって、
前記ヘッダ部は、CLA部、INS部、パラメータP1部、パラメータP2部、及び、Lc部の順で構成されており、
前記第2の書き込みデータは、前記INS部、前記パラメータP1部又はパラメータP2部の少なくとも何れかに格納されることを特徴とする電子情報記憶媒体。
【請求項9】
請求項1乃至8の何れか一項に記載の電子情報記憶媒体を備えるICカード。
【請求項10】
不揮発性メモリを備え、受信した書き込みコマンドにおけるペイロード部に格納された第1の書き込みデータと書き込みコマンドにおけるヘッダ部の一部に格納された第2の書き込みデータを組み合わせた書き込みデータを、ページ単位で前記不揮発性メモリに書き込む電子情報記憶媒体に対して前記書き込みコマンドを送信する外部機器であって、
前記書き込みコマンドにおけるペイロード部の最大バイト数が、前記不揮発性メモリの1ページ当たりの最大バイト数×N(Nは自然数)より所定バイト数だけ小さい場合に、前記ペイロード部に前記最大バイト数分の第1の書き込みデータを格納し、前記書き込みコマンドにおけるヘッダ部の一部に前記所定バイト数分の第2の書き込みデータを格納した書き込みコマンドを送信する送信手段、
を備えることを特徴とする外部機器。
【請求項11】
ページ単位でデータが書き込まれる不揮発性メモリを備え、外部機器から書き込みコマンドにより受信した書き込みデータを前記不揮発性メモリに書き込む電子情報記憶媒体によるデータ書き込み方法であって、
前記書き込みコマンドにおけるペイロード部の最大バイト数が、前記不揮発性メモリの1ページ当たりの最大バイト数×N(Nは自然数)より所定バイト数だけ小さい場合において送信される書き込みコマンドであって、前記ペイロード部に前記最大バイト数分の第1の書き込みデータが格納され、前記書き込みコマンドにおけるヘッダ部の一部に前記所定バイト数分の第2の書き込みデータが格納された書き込みコマンドを受信する受信工程と、
前記受信工程により受信した書き込みコマンドにおける前記ペイロード部に格納された第1の書き込みデータと前記ヘッダ部の一部に格納された第2の書き込みデータを組み合わせた書き込みデータを、ページ単位で前記不揮発性メモリに書き込む書き込み工程と、
を含むことを特徴とするデータ書き込み方法。
【請求項12】
ページ単位でデータが書き込まれる不揮発性メモリを備え、外部機器から書き込みコマンドにより受信した書き込みデータを前記不揮発性メモリに書き込む電子情報記憶媒体に含まれるコンピュータを、
前記書き込みコマンドにおけるペイロード部の最大バイト数が、前記不揮発性メモリの1ページ当たりの最大バイト数×N(Nは自然数)より所定バイト数だけ小さい場合において送信される書き込みコマンドであって、前記ペイロード部に前記最大バイト数分の第1の書き込みデータが格納され、前記書き込みコマンドにおけるヘッダ部の一部に前記所定バイト数分の第2の書き込みデータが格納された書き込みコマンドを受信する受信手段、
前記受信手段が受信した書き込みコマンドにおける前記ペイロード部に格納された第1の書き込みデータと前記ヘッダ部の一部に格納された第2の書き込みデータを組み合わせた書き込みデータを、ページ単位で前記不揮発性メモリに書き込む書き込み手段、
として機能させることを特徴とするデータ書き込みプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
IC(Integrated Circuit)チップ等の電子情報記憶媒体の技術分野に関する。
【背景技術】
【0002】
近年、Java(登録商標)言語に代表されるプログラム言語の解釈機能を備えた仮想マシン(VM:Virtual Machine)が組み込まれ、アプリケーション(以下、「アプリ」という場合がある)の追加/削除が可能なICチップを備えたマルチアプリケーションICカードが普及している(例えば、特許文献1)。こうしたICカードでは、特許文献2に記載された、インターネットを利用したICチップへのアプリの追加方法を利用することができる。
【0003】
一方で、ICチップなどの電子情報記憶媒体は、CPU、RAM、不揮発性メモリ(フラッシュメモリ等)を備えており、不揮発性メモリにOS(Operating System)やアプリ、各種データを記憶する。不揮発性メモリは、その構造上、複数の記憶素子からなるページ単位で書き込みが行われるようになっており、記憶素子には数万〜数十万程度の書き込み回数の上限があり、その上限を超えた書き込みが行われた記憶素子については正常にデータの記録が行えなくなるおそれがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−206765号公報
【特許文献2】特許4743374号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
外部機器からICチップの不揮発性メモリにアプリなどの大容量のデータを書き込む場合、外部機器が書き込みコマンドによりデータをICチップに送信し、不揮発性メモリに当該データを書き込ませる。このとき、ISO7816−3 T=0に規定されたプロトコルに従う書き込みコマンドによれば、最大255バイトのデータをペイロード部に格納してICチップに送信することができる。一方、不揮発性メモリの1つであるフラッシュメモリのページサイズの主流は256バイトとなっている。ここで、外部機器がICチップのフラッシュメモリに1ページ分(256バイト)のデータを書き込ませるためには、255バイトのデータと1バイトのデータといったようにデータを分けて、少なくとも2つの書き込みコマンドによりICチップに送信しなければならない。これに対して、ICチップも1つ目の書き込みコマンドで受信したデータを書き込み対象ページに一旦書き込み、更に、2つ目の書き込みコマンドで受信した残りのデータを書き込み対象ページに記憶されたデータと組み合わせて256バイトのデータとしてRAMに一旦保持し、書き込み対象ページを消去した上で、RAMに保持した256バイトのデータを書き込むこととなる。このように、フラッシュメモリに1ページ分のデータを書き込ませるために、少なくとも2つの書き込みコマンドを送信してこれに対するレスポンスを受信しなければならず外部機器とICチップ間の通信に係る処理時間が長くなってしまう。また、フラッシュメモリについても同じページに対して少なくとも2度書き込みを行わなければならないため、記憶素子に対する負荷が倍増してしまう。
【0006】
そこで、本発明は、電子情報記憶媒体が不揮発性メモリにデータを書き込むために(以下、不揮発性メモリに書き込むデータを「書き込みデータ」という場合がある)外部機器から受信する書き込みコマンドの受信回数を削減することにより、書き込みデータを不揮発性メモリに全て書き込むまでの処理時間を短縮することができる電子情報記憶媒体等を提供することを課題とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、請求項1に記載の発明は、ページ単位でデータが書き込まれる不揮発性メモリを備え、外部機器から書き込みコマンドにより受信した書き込みデータを前記不揮発性メモリに書き込む電子情報記憶媒体であって、前記書き込みコマンドにおけるペイロード部の最大バイト数が、前記不揮発性メモリの1ページ当たりの最大バイト数×N(Nは自然数)より所定バイト数だけ小さい場合において送信される書き込みコマンドであって、前記ペイロード部に前記最大バイト数分の第1の書き込みデータが格納され、前記書き込みコマンドにおけるヘッダ部の一部に前記所定バイト数分の第2の書き込みデータが格納された書き込みコマンドを受信する受信手段と、前記受信手段が受信した書き込みコマンドにおける前記ペイロード部に格納された第1の書き込みデータと前記ヘッダ部の一部に格納された第2の書き込みデータを組み合わせた書き込みデータを、ページ単位で前記不揮発性メモリに書き込む書き込み手段と、を備えることを特徴とする。
【0008】
請求項2に記載の発明は、ページ単位でデータが書き込まれる不揮発性メモリを備え、外部機器から書き込みコマンドにより受信した書き込みデータを前記不揮発性メモリに書き込む電子情報記憶媒体であって、前記書き込みコマンドにおけるペイロード部の最大バイト数×M(Mは自然数)が、前記不揮発性メモリの1ページ当たりの最大バイト数より所定バイト数×Mだけ小さい場合において送信される書き込みコマンドであって、前記ペイロード部に前記最大バイト数分の第1の書き込みデータが格納され、前記書き込みコマンドにおけるヘッダ部の一部に前記所定バイト数分の第2の書き込みデータが格納された書き込みコマンドをM回受信する受信手段と、前記受信手段が受信した書き込みコマンドにおける前記ペイロード部に格納された第1の書き込みデータと前記ヘッダ部の一部に格納された第2の書き込みデータを組み合わせた書き込みデータを、ページ単位で前記不揮発性メモリに書き込む書き込み手段と、を備えることを特徴とする。
【0009】
請求項3に記載の発明は、請求項1又は2に記載の電子情報記憶媒体であって、前記1ページ当たりの最大バイト数は、2の累乗数であり、前記ペイロード部の最大バイト数は、2の累乗数−前記所定バイト数であることを特徴とする。
【0010】
請求項4に記載の発明は、請求項1乃至3の何れか一項に記載の電子情報記憶媒体であって、前記書き込み手段は、前記ヘッダ部に所定の命令識別データが格納されていると判定した場合に、前記受信手段が受信した書き込みコマンドにおける前記ペイロード部に格納された第1の書き込みデータと前記ヘッダ部の一部に格納された第2の書き込みデータを組み合わせた書き込みデータを、ページ単位で前記不揮発性メモリに書き込むことを特徴とする。
【0011】
請求項5に記載の発明は、請求項4に記載の電子情報記憶媒体であって、前記ヘッダ部には、前記所定の命令識別データと、前記所定バイト数分の第2の書き込みデータと、前記第1の書き込みデータと前記第2の書き込みデータを組み合わせた書き込みデータを書き込むページを特定するための書き込みページデータと、が格納されており、前記書き込み手段は、前記所定の命令識別データが格納されたコマンドを受信した場合に、前記第1の書き込みデータと前記第2の書き込みデータを組み合わせた書き込みデータを、前記書き込みページデータにより特定されるページに書き込むことを特徴とする。
【0012】
請求項6に記載の発明は、請求項1乃至5の何れか一項に記載の電子情報記憶媒体であって、前記書き込みコマンドは、前記ヘッダ部、前記ペイロード部の順で構成されており、前記第2の書き込みデータは、前記ヘッダ部の最後尾に格納されることを特徴とする。
【0013】
請求項7に記載の発明は、請求項6に記載の電子情報記憶媒体であって、前記ヘッダ部は、CLA部、INS部、パラメータP1部、パラメータP2部、及び、Lc部の順で構成されており、前記第2の書き込みデータは、前記Lc部に格納されることを特徴とする。
【0014】
請求項8に記載の発明は、請求項1乃至5の何れか一項に記載の電子情報記憶媒体であって、前記ヘッダ部は、CLA部、INS部、パラメータP1部、パラメータP2部、及び、Lc部の順で構成されており、前記第2の書き込みデータは、前記INS部、前記パラメータP1部又はパラメータP2部の少なくとも何れかに格納されることを特徴とする。
【0015】
請求項9に記載の発明は、請求項1乃至8の何れか一項に記載の電子情報記憶媒体を備えるICカードである。
【0016】
請求項10に記載の発明は、不揮発性メモリを備え、受信した書き込みコマンドにおけるペイロード部に格納された第1の書き込みデータと書き込みコマンドにおけるヘッダ部の一部に格納された第2の書き込みデータを組み合わせた書き込みデータを、ページ単位で前記不揮発性メモリに書き込む電子情報記憶媒体に対して前記書き込みコマンドを送信する外部機器であって、前記書き込みコマンドにおけるペイロード部の最大バイト数が、前記不揮発性メモリの1ページ当たりの最大バイト数×N(Nは自然数)より所定バイト数だけ小さい場合に、前記ペイロード部に前記最大バイト数分の第1の書き込みデータを格納し、前記書き込みコマンドにおけるヘッダ部の一部に前記所定バイト数分の第2の書き込みデータを格納した書き込みコマンドを送信する送信手段、を備えることを特徴とする。
【0017】
請求項11に記載の発明は、ページ単位でデータが書き込まれる不揮発性メモリを備え、外部機器から書き込みコマンドにより受信した書き込みデータを前記不揮発性メモリに書き込む電子情報記憶媒体によるデータ書き込み方法であって、前記書き込みコマンドにおけるペイロード部の最大バイト数が、前記不揮発性メモリの1ページ当たりの最大バイト数×N(Nは自然数)より所定バイト数だけ小さい場合において送信される書き込みコマンドであって、前記ペイロード部に前記最大バイト数分の第1の書き込みデータが格納され、前記書き込みコマンドにおけるヘッダ部の一部に前記所定バイト数分の第2の書き込みデータが格納された書き込みコマンドを受信する受信工程と、前記受信工程により受信した書き込みコマンドにおける前記ペイロード部に格納された第1の書き込みデータと前記ヘッダ部の一部に格納された第2の書き込みデータを組み合わせた書き込みデータを、ページ単位で前記不揮発性メモリに書き込む書き込み工程と、を含むことを特徴とする。
【0018】
請求項12に記載の発明は、ページ単位でデータが書き込まれる不揮発性メモリを備え、外部機器から書き込みコマンドにより受信した書き込みデータを前記不揮発性メモリに書き込む電子情報記憶媒体に含まれるコンピュータを、前記書き込みコマンドにおけるペイロード部の最大バイト数が、前記不揮発性メモリの1ページ当たりの最大バイト数×N(Nは自然数)より所定バイト数だけ小さい場合において送信される書き込みコマンドであって、前記ペイロード部に前記最大バイト数分の第1の書き込みデータが格納され、前記書き込みコマンドにおけるヘッダ部の一部に前記所定バイト数分の第2の書き込みデータが格納された書き込みコマンドを受信する受信手段、前記受信手段が受信した書き込みコマンドにおける前記ペイロード部に格納された第1の書き込みデータと前記ヘッダ部の一部に格納された第2の書き込みデータを組み合わせた書き込みデータを、ページ単位で前記不揮発性メモリに書き込む書き込み手段、として機能させることを特徴とする。
【発明の効果】
【0019】
本発明によれば、不揮発性メモリの1ページ当たりの最大バイト数に応じたバイト数の書き込みデータが、ペイロード部とヘッダ部に格納されて電子情報記憶媒体に送信されることから、電子情報記憶媒体が外部機器から書き込みコマンドを受信する回数を削減することができ、書き込みデータを不揮発性メモリに書き込むまでの処理時間を短縮することができる。
【図面の簡単な説明】
【0020】
図1】本実施形態に係るICカード1に搭載されるICチップ1aのハードウェア構成例を示す図である。
図2】本実施形態に係る不揮発性メモリ13のページの構成例を示す概念図である。
図3】従来の書き込みコマンドの構成例を示す概念図である。
図4】本実施形態に係る書き込みコマンドの構成例を示す概念図である。
図5】本実施形態に係るICチップ1aによるコマンド受信時処理の動作例を示すフローチャートである。
図6】本実施形態に係るICチップ1aによるWriteコマンド処理(ページ単位)の動作例を示すフローチャートである。
図7】変形例1に係る書き込みコマンドの構成例を示す概念図である。
図8】変形例1に係るICチップ1aによるWriteコマンド処理(ページ単位)の動作例を示すフローチャートである。
【発明を実施するための形態】
【0021】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ICチップ並びにICチップを搭載するICカードに対して本発明を適用した場合の実施の形態である。
【0022】
本実施形態のICチップは、ページ単位でデータが書き込まれる不揮発性メモリを備え、外部機器から書き込みコマンドにより受信した書き込みデータを不揮発性メモリに書き込むものであって、書き込みコマンドにおけるペイロード部の最大バイト数が、不揮発性メモリの1ページ当たりの最大バイト数×N(Nは自然数)より所定バイト数だけ小さい場合において送信される書き込みコマンドであって、ペイロード部に最大バイト数分の第1の書き込みデータが格納され、書き込みコマンドにおけるヘッダ部の一部に所定バイト数分の第2の書き込みデータが格納された書き込みコマンドを受信し、当該受信した書き込みコマンドにおけるペイロード部に格納された第1の書き込みデータとヘッダ部の一部に格納された第2の書き込みデータを組み合わせた書き込みデータを、ページ単位で不揮発性メモリに書き込む。なお、本実施形態では、特に、書き込みコマンドにおけるペイロード部の最大バイト数が255バイト、不揮発性メモリの1ページ当たりの最大バイト数が256バイト、Nが「1」、所定バイト数が1バイトである場合について説明する。
【0023】
[1.ICチップ1aの構成]
まず、図1を参照して、ICカード1に搭載されるICチップ1aの構成について説明する。図1は、ICカード1に搭載されるICチップ1aのハードウェア構成例を示す図である。本実施形態のICカード1は、接触によるデータ通信と非接触によるデータ通信の2つの通信機能を兼ね備えたデュアルインターフェース型ICカードである。但し、ICカード1の種類はデュアルインターフェース型ICカードに限定されず、キャッシュカードやクレジットカードと同じ大きさのプラスチック製カードにICチップ1aがエンベットされた接触型ICカードであってもよいし、また、アンテナコイルを内蔵し無線でリーダ・ライタとデータ通信する非接触型ICカードであってもよい。
【0024】
図1に示すように、ICチップ1aは、CPU(Central Processing Unit)10、RAM(Random Access Memory)11、ROM(Read Only Memory)12、不揮発性メモリ13、及びI/O回路14を備えて構成される。CPU10は、ROM12又は不揮発性メモリ13に記憶された各種プログラムを実行するプロセッサ(コンピュータ)である。なお、I/O回路14は、外部機器2とのインターフェイスを担う。これにより、ICチップ1aは、リーダ・ライタを備える外部機器2との間で接触又は非接触で通信を行うことができる。接触式のICチップ1aの場合、I/O回路14には、例えば、C1〜C8の8個の端子が備えられている。例えば、C1端子は電源端子(ICチップ1aへ電源供給する端子)、C2端子はリセット端子、C3端子はクロック端子、C5端子はグランド端子、C7端子は外部機器2との間で通信を行うための端子である。一方、非接触式のICチップ1aの場合、I/O回路14には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部機器2の例としては、ICカード発行機やサーバ装置が挙げられる。
【0025】
不揮発性メモリ13には、例えばフラッシュメモリ又は「Electrically Erasable Programmable Read-Only Memory」などの、ページ単位での書き込みが行われるメモリを適用することができる。不揮発性メモリ13は、OS及び各種アプリケーションを記憶する。なお、OSについては、その一部をフラッシュメモリ13が記憶し、その他の部分をROM12が記憶することとしてもよい。
【0026】
図2は、不揮発性メモリ13のページの概要を説明するための概念図である。本実施形態の不揮発性メモリ13の記憶領域は、1〜Nのページに区切られており、1ページは256バイト分のデータを記憶することができる。不揮発性メモリ13へのデータの書き込みはOSによりページ単位で行われる。例えば、あるページにデータを書き込む場合には、書き込み後の1ページ分のデータをRAM等に保持しておき、そのページを消去(erase)してからRAM上に保持した1ページ分のデータを書き込む(write)ことにより行われる。
【0027】
次に、図3を用いて、外部機器2が不揮発性メモリ13に書き込みデータを書き込むためのコマンドである書き込みコマンドについて説明する。書き込みコマンドは、ヘッダ部201とペイロード部202により構成されている。
【0028】
まずは、従来の書き込みコマンドについて説明する。ヘッダ部201は、それぞれ1バイトである、クラスバイト(CLA)部、命令バイト(INS)部、パラメータバイト1(P1)部、パラメータバイト2(P2)部及び長さ(Lc)部の合計5バイトにより構成されている。ペイロード部202には不揮発性メモリ13に書き込む書き込みデータが格納される。CLA部には、コマンドが書き込みコマンドであることを示すデータが格納される。INS部、P1部、P2部の3バイト(24ビット)には、ペイロード部202に格納されている書き込みデータの書き込み先である不揮発性メモリ13の物理アドレスが格納される。Lc部には、ペイロード部202に格納される書き込みデータのデータ長(バイト数)が格納される。なお、ペイロード部202の最大バイト数は255バイトとなっており、1バイトのLc部により、ペイロード部202に格納される書き込みデータのデータ長(0〜255バイト)を表現することができる。
【0029】
従来では、不揮発性メモリ13の1ページ当たりの最大バイト数が256バイトであったのに対して、1つの書き込みコマンドで不揮発性メモリ13に送信できる書き込みデータの最大バイト数は255バイトでありその差が1バイト(「所定バイト数」の一例)あったため、1ページ(256バイト)分の書き込みデータを書き込むためには、256バイト分の書き込みデータを分けて、少なくとも2つの書き込みコマンドを送信しなければならなかった。
【0030】
次に、図4を用いて、本実施形態における書き込みコマンドの例について説明する。書き込みコマンドは、一の書き込みコマンドにより1ページ(256バイト)分の書き込みデータを書き込むことを実現するコマンドであり、図4に示すように、ヘッダ部201のLc部に、従来と異なり、1バイト分の書き込みデータを格納可能とする。すなわち、Lc部(1バイト)とペイロード部(255バイト)に格納された、合計256バイトの書き込みデータを1つの書き込みコマンドにより受信することができる。
【0031】
ここで、外部機器2がICチップ1aの不揮発性メモリ13に書き込みデータを書き込むために用いる書き込み系コマンドについて説明する。書き込み系コマンドには3つの種別があり、それぞれ、CLA部に、「F1h」、「F2h」、「F3h」といったデータが格納されることにより、ICチップ1aが何れの種別であるかを判別できるようになっている。書き込み系コマンドの3つの種別について具体的に説明する。一つ目は、CLA部に「F1h」が格納されるVerifyコマンドである。二つ目は、CLA部に「F2h」(本発明の「所定の命令識別データ」に対応)が格納されるWriteコマンド(ページ単位)である。三つ目は、CLA部に「F3h」が格納されるWriteコマンド(Nバイト)である。
【0032】
OSは、二つ目のWriteコマンド(ページ単位)を受信した場合には、Lc部とペイロード部202に格納された256バイト分の書き込みデータを、INS部、P1部、P2部に格納された物理アドレス(「書き込みページデータ」の一例)により特定されるページに書き込む。また、OSは、三つ目のWriteコマンド(Nバイト)を受信した場合には、Lc部には書き込みデータではなく、ペイロード部202に格納されている書き込みデータのデータ長(Nバイト)が格納されているのでこれに基づいて、ペイロード部202に格納されたNバイト分の書き込みデータを、INS部、P1部、P2部に格納された物理アドレス(「書き込みページデータ」の一例)により特定された位置に書き込む。すなわち、三つ目のWriteコマンド(Nバイト)は従来の書き込みコマンド、二つ目のWriteコマンド(ページ単位)は本実施形態特有の書き込みコマンドということができる。
【0033】
このように、CLA部に「F2h」又は「F3h」を格納することにより、本実施形態特有の書き込みコマンドを用いるか、又は、従来の書き込みコマンドを用いるかを選択することができる。
【0034】
なお、ICチップ1aが不揮発性メモリ13に外部機器2から受信した書き込みデータを書き込むに当たり、書き込みデータの合計バイト数が256の倍数である場合には、本実施形態特有の書き込みコマンド(Writeコマンド(ページ単位))を複数回受信することで全ての書き込みデータを受信し、書き込むことができる。一方、書き込みデータの合計バイト数が256の倍数以外のバイト数である場合には、従来の書き込みコマンド(Writeコマンド(Nバイト))と、本実施形態特有の書き込みコマンド(Writeコマンド(ページ単位))を組み合わせて書き込みデータを受信し、書き込むことができる。例えば、ICチップ1aが1000バイトの書き込みデータを書き込む場合、[256バイト×3=768バイト]分の書き込みデータを本実施形態特有の書き込みコマンドを用いて書き込み、残りの[1000バイト−768バイト=232バイト]分の書き込みデータを従来の書き込みコマンドを用いて書き込む。つまり、Writeコマンド(ページ単位)を3回受信し、Writeコマンド(Nバイト)を1回受信することにより、合計1000バイトの書き込みデータを書き込むことができる。
【0035】
[2.コマンド受信時処理]
次に、図5を用いて、ICチップが外部機器2からコマンドを受信した際に実行するコマンド受信時処理の動作例について説明する。図5は、コマンド受信時処理の一例を示すフローチャートである。
【0036】
図5に示すように、OS(を実行するCPU10)は、外部機器2からコマンドを受信すると、ヘッダ部201のCLA部を参照し、書き込み系コマンド(「F1h」、「F2h」、「F3h」)であるか否かを判定する(ステップS101)。OSは、書き込み系コマンドであると判定した場合には(ステップS101:YES)、次いで、種別を判定する(ステップS102)。
【0037】
OSは、ステップS102の処理において、種別はVerifyコマンド(CLA部が「F1h」)であると判定した場合には、Verifyコマンド処理を実行する(ステップS103)。具体的には、OSは、Verifyコマンドで指定されたコード(PINなど)とOS内部に保存されたコードとを比較し、一致する場合はWriteコマンド実行可能な状態とする。このWriteコマンド実行可能な状態は、Writeコマンド1コマンドのみ有効としてもよいし、Resetされるまで有効としてもよい。また、よりセキュリティを高めるためにVerifyコマンドの代わりに相互認証コマンドを用いてもよい。次いで、OSは、レスポンスデータ及びステータスワードをコマンドの送信元に送信し(ステップS111)、コマンド受信時処理を終了する。
【0038】
OSは、ステップS102の処理において、種別はWriteコマンド(ページ単位)(CLA部が「F2h」(「所定の命令識別データ」の一例))であると判定した場合には、Writeコマンド処理(ページ単位)を実行する(ステップS104)。Writeコマンド処理(ページ単位)については後述する。次いで、OSは、レスポンスデータ及びステータスワードをコマンドの送信元に送信し(ステップS111)、コマンド受信時処理を終了する。
【0039】
OSは、ステップS102の処理において、種別はWriteコマンド(Nバイト)(CLA部が「F3h」)であると判定した場合には、Writeコマンド処理(Nバイト)を実行する(ステップS105)。具体的には、Lc部に格納されているデータ長(Nバイト)分の、ペイロード部202に格納された書き込みデータをフラッシュメモリ13における、INS部、P1部、P2部に格納された物理アドレスにより特定される位置に書き込む。次いで、OSは、レスポンスデータ及びステータスワードをコマンドの送信元に送信し(ステップS111)、コマンド受信時処理を終了する。
【0040】
一方、OSは、ステップS101の処理において、書き込み系コマンドではないと判定した場合には(ステップS101:NO)、次いで、CLS部及びINS部に格納されているデータをチェックする(ステップS106)。
【0041】
OSは、ステップS106の処理において、CLS部及びINS部に格納されているデータが、コマンドはSELECTコマンドであることを示している場合には、SELECTコマンド処理を行う(ステップS107)。具体的には、OSは、SELECTコマンドで指定されたロジカルチャネル番号とAID(Application ID)に基づいて、AIDで識別されるアプリと、指定されたロジカルチャネル番号を対応付ける。以降、コマンドの送信元は、コマンドのCLS部にロジカルチャネル番号を記述することにより、当該ロジカルチャネル番号と対応付けられたアプリとコマンドの送受信を行うことができる。次いで、OSは、レスポンスデータ及びステータスワードをコマンドの送信元に送信し(ステップS111)、コマンド受信時処理を終了する。
【0042】
OSは、ステップS106の処理において、CLS部及びINS部に格納されているデータが、コマンドはMANAGE CHANNELコマンドであることを示している場合には、MANAGE CHANNELコマンド処理を行う(ステップS108)。具体的には、OSは、MANAGE CHANNELコマンドがOPEN命令であるか、CLOSE命令であるかをP1によって判断する。OSは、P1がOPENを示す場合、MANAGE CHANNELコマンドで指定されたロジカルチャネル番号に従い当該ロジカルチャネルをOPENし、当該ロジカルチャネルがオープンしたとき、暗黙的に選択するアプリとして予め設定されたデフォルトアプリケーションを対応付ける。OSは、P1がCLOSEを示す場合、MANAGE CHANNELコマンドで指定されたロジカルチャネル番号に従い当該ロジカルチャネルをCLOSEする。このとき、ロジカルチャネル上で対応付けられていたアプリケーションが存在する場合は対応付けが解除される。次いで、OSは、レスポンスデータ及びステータスワードをコマンドの送信元に送信し(ステップS111)、コマンド受信時処理を終了する。
【0043】
OSは、ステップS106の処理において、CLS部にロジカルチャネル番号が記述されている場合には、当該ロジカルチャネル番号と対応付けられているアプリにコマンドを配送する(ステップS109)。当該コマンドを受け取ったアプリ(を実行するCPU10)はコマンドに応じた処理を行い(ステップS110)、次いで、レスポンスデータ及びステータスワードをコマンドの送信元に送信し(ステップS111)、コマンド受信時処理を終了する。
【0044】
[3.書き込み時処理]
次に、図6を用いて、Writeコマンド処理(ページ単位)について説明する。
【0045】
まず、OSは、INS部、P1部、P2部に格納された物理アドレスにより特定される対象ページを消去する(ステップS201)。
【0046】
次に、OSは、Lc部に格納されている書き込みデータと、ペイロード部202に格納されている書き込みデータを組み合わせた書き込みデータを対象ページへ書き込み(ステップS202)、Writeコマンド処理(ページ単位)を終了する。なお、図4に示すように、本実施形態の書き込みコマンド(Writeコマンド(ページ単位))は、ヘッダ部201、ペイロード部202の順で構成されており、1バイト分の書き込みデータをヘッダ部201の最後尾に格納する構成となっていることから、ページに書き込む256バイト分の書き込みデータをそのまま格納することができるとともに、そのままページに書き込むことができる。したがって、ヘッダ部201に格納された書き込みデータとペイロード部202に格納された書き込みデータを、ページに書き込むイメージに組み合わせてから書き込む処理が不要なため処理負荷を軽減することができる。
【0047】
以上のように、本実施形態のICチップ1a(「電子情報記憶媒体」の一例)は、ページ単位でデータが書き込まれる不揮発性メモリ13を備え、外部機器2から書き込みコマンドにより受信した書き込みデータを不揮発性メモリ13に書き込むものであって、CPU10(「受信手段」、「書き込み手段」の一例)は、書き込みコマンドにおけるペイロード部202の最大バイト数(255バイト)が、不揮発性メモリの1ページ当たりの最大バイト数(256)×より1バイト(「所定バイト数」の一例)だけ小さい場合において送信される書き込みコマンドであって、ペイロード部202に最大バイト数分の第1の書き込みデータが格納され、書き込みコマンドにおけるヘッダ部201のLc部(「一部」の一例)に1バイト分の第2の書き込みデータが格納された書き込みコマンドを受信し、受信した書き込みコマンドにおけるペイロード部202に格納された第1の書き込みデータとヘッダ部201のLc部に格納された第2の書き込みデータを組み合わせた書き込みデータを、ページ単位で不揮発性メモリ13に書き込む。
【0048】
したがって、本実施形態のICチップ1aによれば、不揮発性メモリの1ページ当たりの最大バイト数と同じバイト数の書き込みデータが、ペイロード部202とヘッダ部201に分かれて格納されてICチップ1aに送信されることから、ICチップ1aが外部機器2から書き込みコマンドを受信する回数を1回にすることができ、従来の書き込みコマンドによる場合よりも少なくとも1回少なく、書き込みデータを不揮発性メモリに書き込むまでの処理時間を短縮することができる。
【0049】
[4.変形例]
次に、上記実施形態の変形例について説明する。なお、以下に説明する変形例は上記実施形態や他の変形例と適宜組み合わせることができる。
【0050】
[4.1.変形例1]
上記実施形態では、256バイトの書き込みデータをペイロード部202(255バイト)とLc部(1バイト)に分けて格納する場合について説明したが、Lc部に代えて、ヘッダ部201における1バイト分の何れかの部分に格納することとしてもよい。例えば、図7に示すように、P2部(ヘッダ部201の先頭から4バイト目)に格納することとしてもよい。この場合、Lc部にはペイロード部202に格納されるデータのデータ長(バイト数)が格納されるので、外部機器2側で書き込みデータを生成する際の仕様変更が少なく済む。すなわち、外部機器2は、ペイロード部202のバイト数を計算して、5バイト目に格納する仕様となっている場合、この仕様を変更しなくて済む。なお、この場合、INS部、P1部の2バイトにより書き込みデータの書き込み先を物理アドレスの代わりにページインデックス(「書き込みページデータ」の一例)で指定することにより、2バイトで指定することができる。
【0051】
図8を用いて、変形例1におけるWriteコマンド処理(ページ単位)について説明する。
【0052】
まず、OSは、P2部とペイロード部202に格納された書き込みデータを連結し、RAM11上に書き込みデータを作成する(ステップS301)。
【0053】
次に、OSは、INS部、P1部に格納されたページインデックスにより対象ページを特定する(ステップS302)。
【0054】
次に、OSは、対象ページを消去する(ステップS303).
【0055】
次に、OSは、RAM11上の書き込みデータを対象ページへ書き込み(ステップS304)、Writeコマンド処理(ページ単位)を終了する。
【0056】
[4.2.変形例2]
上記実施形態では、OSが書き込みデータの書き込みを行うこととしたが、データ書き込み用アプリをICチップ1aにインストールしておき、データ書き込み用アプリ(を実行するCPU10)が書き込みデータを書き込むこととしてもよい。この場合、外部機器2は、まずSELECTコマンドによりデータ書き込み用アプリとロジカルチャネル番号を対応付けた上で、データ書き込み用アプリに書き込みコマンドを送信し、図5のステップS110の処理において、Writeコマンド処理(ページ単位)を実行させることとしてもよい。この時のWriteコマンドは、CLA部の一部(b7、b4〜b1)はロジカルチャネル番号の指定に用いられるため、CLA部は「80h」、「90h」、「A0h」などとなる。
【0057】
[4.3.変形例3]
上記実施形態では、書き込みコマンドのペイロード部の最大バイト数が255バイトで、不揮発性メモリ13の1ページ当たりの最大バイト数が256バイトである場合について説明したが、本発明は、書き込みコマンドにおけるペイロード部の最大バイト数が、不揮発性メモリ13の1ページ当たりの最大バイト数×N(Nは自然数)より所定バイト数だけ小さい場合についても適用することができる。なお、1ページ当たりの最大バイト数は2の累乗数、ペイロード部の最大バイト数は2の累乗数−所定バイト数であってもよい。
【0058】
例えば、書き込みコマンドにおけるペイロード部の最大バイト数が255バイト、不揮発性メモリ13の1ページ当たりの最大バイト数が64バイト、Nが「4」、所定バイト数が1バイトである場合、ヘッダ部に所定バイト数分の書き込みデータを格納することにより、ICチップ1aは1つの書き込みコマンドで256バイトの書き込みデータを受信し、4ページ分の書き込みデータを書き込むことができる。従来の書き込みコマンドであれば、255バイトの書き込みデータしか受信できないため、4ページ分(256バイト分)の書き込みデータを受信するためには少なくとも2つの書き込みコマンドを受信しなければならなかった。なお、不揮発性メモリ13の1ページ当たりの最大バイト数が4バイトであれば64ページ分、8バイトであれば32ページ分、・・・、というように1つの書き込みコマンドでNページ分の書き込みデータを受信して書き込むことができる。
【0059】
また、例えば、書き込みコマンドにおけるペイロード部の最大バイト数が127バイトであり、不揮発性メモリ13の1ページ当たりの最大バイト数が64バイト、Nが「2」、所定バイト数が1バイトである場合、ヘッダ部に所定バイト数分の書き込みデータを格納することにより、ICチップ1aは1つの書き込みコマンドで128バイトの書き込みデータを受信し、2ページ分の書き込みデータを書き込むことができる。
【0060】
なお、上記実施形態では、書き込みコマンドにおけるヘッダ部に1バイト分の書き込みデータを格納することとしたが、2バイト(本発明の「所定バイト数」の一例)分の書き込みデータを格納することとしてもよい。例えば、P2部及びLc部に1バイトずつ書き込みデータを格納してもよい。このとき、INS部、P1部には、書き込みデータを書き込むページに対応するページインデックスを格納することとする。また、上記実施形態では、図3に示したように、ヘッダ部を5バイトで構成するものとして説明したが、ヘッダ部をそれ以上のバイト数で構成し、2バイト以上の書き込みデータを格納することとしてもよい。例えば、ヘッダ部をそれぞれ1バイトである、CLA部、INS部、P1部、P2部、P3部、Lc部の6バイトで構成して、2バイト(本発明の「所定バイト数」の一例)分書き込みデータをP3部、Lc部に分けて格納することとしてもよい。
【0061】
書き込みコマンドにおけるヘッダ部に書き込みデータを2バイト分格納することとした場合、例えば、書き込みコマンドにおけるペイロード部の最大バイト数が254バイトであってもヘッダ部に2バイト分の書き込みデータを格納できるので、ICチップ1aは1つの書き込みコマンドにより256バイト分の書き込みデータを受信することができる。
【0062】
また、不揮発性メモリ13の1ページ当たりの最大バイト数が257バイトである場合であって、ペイロード部に255バイト、ヘッダ部に2バイトの書き込みデータをそれぞれ格納できる場合(N=1、且つ、所定バイト数=2バイト)、ICチップ1aは1つの書き込みコマンドで1ページ(257バイト)分の書き込みデータを受信することができる。
【0063】
更に、書き込みコマンドにおけるペイロード部に254バイト、ヘッダ部に2バイトの書き込みデータをそれぞれ格納できる場合であって、不揮発性メモリ13のページサイズが64バイトである場合(N=4、且つ、所定バイト数=2バイト)、ICチップ1aは、ヘッダ部に所定バイト数分の書き込みデータが格納され、ペイロード部に254バイト分の書き込みデータが格納された書き込みコマンドを1回受信することにより、4ページ(256バイト)分の書き込みデータを受信し、不揮発性メモリ13に書き込むことができる。
【0064】
このように、書き込みコマンドにおけるペイロード部の最大バイト数が、不揮発性メモリ13のページのバイト数をN(Nは正の整数)倍したバイト数より所定バイト数だけ小さい場合に、ヘッダ部に所定バイト数の書き込みデータを格納した書き込みコマンドを受信することにより、書き込みコマンドの受信回数を減らすことができる。
【0065】
[4.4.変形例4]
上記実施形態では、書き込みコマンドにおけるペイロード部の最大バイト数が、不揮発性メモリ13の1ページ当たりの最大バイト数より1バイトだけ小さい場合について説明したが、書き込みコマンドにおけるペイロード部202の最大バイト数×M(Mは自然数)が、不揮発性メモリ13の1ページ当たりの最大バイト数より所定バイト数×Mだけ小さい場合に、ICチップ1aが書き込みコマンドをM回受信(外部機器2が送信)することとした場合も、書き込みコマンドの受信回数を削減できる。なお、1ページ当たりの最大バイト数は2の累乗数、ペイロード部の最大バイト数は2の累乗数−所定バイト数であってもよい。
【0066】
例えば、書き込みコマンドにおけるペイロード部に255バイト、ヘッダ部に1バイトの書き込みデータをそれぞれ格納できる場合であって、不揮発性メモリ13のページサイズが512バイトである場合(M=2、且つ、所定バイト数=1バイト)、ICチップ1aは、ヘッダ部に所定バイト数分の書き込みデータが格納され、ペイロード部202に255バイト分の書き込みデータが格納された書き込みコマンドをM回受信することにより、1ページ(512バイト)分の書き込みデータを受信することができる。すなわち、従来の書き込みコマンドであれば、少なくとも3つの書き込みコマンドを受信しなければ1ページ分の書き込みを行うことができないところ、2つの書き込みコマンドにより1ページ分の書き込みを行うことができ、書き込みコマンドの受信回数を少なくとも1回削減できる。
る。
【0067】
なお、変形例3で述べたように、書き込みコマンドにおけるヘッダ部に2バイト(本発明の「所定バイト数」の一例)分の書き込みデータを格納することとしても良い。例えば、P2部及びLc部に1バイトずつ書き込みデータを格納しても良い。このとき、INS部、P1部には、書き込みデータを書き込むページに対応するページインデックスを格納することとしても良い。また、ヘッダ部を5バイト以上のバイト数で構成し、2バイト以上の書き込みデータを格納することとしてもよい。
【0068】
書き込みコマンドのペイロード部に254バイト、ヘッダ部に2バイトの書き込みデータをそれぞれ格納できる場合であって、不揮発性メモリ13のページサイズが512バイトである場合(M=2、且つ、所定バイト数=2)、ICチップ1aは、ヘッダ部に所定バイト数分の書き込みデータが格納され、ペイロード部に254バイト分の書き込みデータが格納された書き込みコマンドをM回受信することにより、1ページ(512バイト)分の書き込みデータを受信することができる。
【0069】
また、書き込みコマンドのペイロード部に255バイト、ヘッダ部に2バイトの書き込みデータをそれぞれ格納できる場合であって、不揮発性メモリ13のページサイズが514バイトである場合(M=2、且つ、所定バイト数=2)、ICチップ1aは、ヘッダ部に所定バイト数分の書き込みデータが格納され、ペイロード部に255バイト分の書き込みデータが格納された書き込みコマンドをM回受信することにより、1ページ(514バイト)分の書き込みデータを受信することができる。
【0070】
このように、書き込みコマンドにおけるペイロード部の最大バイト数×M(Mは自然数)が、不揮発性メモリ13の1ページ当たりの最大バイト数より所定バイト数×Mだけ小さい場合に、ヘッダ部に所定バイト数の書き込みデータを格納した書き込みコマンドをM回受信することにより、書き込みコマンドの受信回数を減らすことができる。
【符号の説明】
【0071】
1 ICカード
1a ICチップ
10 CPU
11 RAM
12 ROM
13 不揮発性メモリ
14 I/O回路
2 外部機器
図1
図2
図3
図4
図5
図6
図7
図8