(57)【要約】【課題】有効な暴走対策を施したＩＣカードとその制御方法を提供すること。【解決手段】所定のプログラムの実行及び各部の制御を実行する制御部２０１と、前記プログラムの実行時において、作業用として使用される第１のメモリ２０３と、所定のデータを記録する書き換え可能な第２のメモリ２０２と、を備え、前記第１のメモリと前記第２のメモリの空き領域にＨＡＬＴ命令を埋め込む。【選択図】      図１
2006244270.tif 000002
【特許請求の範囲】
【請求項１】
所定のプログラムの実行及び各部の制御を実行する制御部と、
前記プログラムの実行時において、作業用として使用される第１のメモリと、
所定のデータを記録する書き換え可能な第２のメモリと、を備え、
前記第１のメモリと前記第２のメモリの空き領域にＨＡＬＴ命令を埋め込むことを特徴とするＩＣカード。
【請求項２】
請求項１に記載のＩＣカードにおいて、前記第１のメモリへのＨＡＬＴ命令の埋め込みを、カード起動時の自己診断処理、ＡＴＲ出力処理後に、実行することを特徴とするＩＣカード。
【請求項３】
請求項１または請求項２に記載のＩＣカードにおいて、前記第２のメモリへのＨＡＬＴ命令の埋め込みを、カード製造時のメモリチェック後に、実行することを特徴とするＩＣカード。
【請求項４】
所定のプログラムの実行及び各部の制御を実行する制御部と、
前記プログラムの実行時において、作業用として使用される第１のメモリと、
所定のデータを記録する書き換え可能な第２のメモリと、を備え、
前記第１のメモリ又は前記第２のメモリにアクセスする際に、前記第１のメモリ又は前記第２のメモリから読み出された値が初期値を示す値であった場合に、当該命令をＨＡＬＴ命令として実行することを特徴とするＩＣカード。
【請求項５】
請求項１から請求項４のいずれか１項に記載のＩＣカードにおいて、前記第１のメモリはランダムアクセスメモリであり、前記第２のメモリは書き換え可能な不揮発性メモリであることを特徴とするＩＣカード。
【請求項６】
所定のプログラムの実行及び各部の制御を実行する制御部と、前記プログラムの実行時において、作業用として使用される第１のメモリと、所定のデータを記録する書き換え可能な第２のメモリと、を備えたＩＣカードの制御方法において、
前記第１のメモリと前記第２のメモリの空き領域に、事前にＨＡＬＴ命令を埋め込むことを特徴とするＩＣカードの制御方法。
【請求項７】
所定のプログラムの実行及び各部の制御を実行する制御部と、前記プログラムの実行時において、作業用として使用される第１のメモリと、所定のデータを記録する書き換え可能な第２のメモリと、を備えたＩＣカードの制御方法において、
前記第１のメモリ又は前記第２のメモリにアクセスする際に、前記第１のメモリ又は前記第２のメモリから読み出された値が初期値を示す値であった場合に、当該命令をＨＡＬＴ命令として実行することを特徴とするＩＣカードの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は書き換えが可能な不揮発性メモリおよびＣＰＵなどの制御素子を有し、外部からのデータ入出力を行う手段を備えたＩＣチップを内蔵した、いわゆるＩＣカードとその制御方法に関する。なお、このＩＣカードは、接触、非接触、或いはコンビカードを含むものとする。
【背景技術】
【０００２】
近年、ＩＣカードが広範に利用されるようになってきている。このＩＣカードは、外部からのデータの入出力が可能になっており、データは書き換え可能な不揮発性メモリに記憶される。また、ＩＣカードの制御は、ＣＰＵ等の制御素子で行われている。このようなＩＣカードにおいて、ノイズやメモリの破損によりＣＰＵが暴走した場合に、例えばウォッチドックタイマー動作によってＣＰＵをリセットするような処置が行われている（特許文献１参照）。
【０００３】
このような場合において、上記のようなＩＣカードは、ＲＯＭ（読み出し専用メモリ）内にＨＡＬＴ（停止）命令を実装しており、暴走したときに、ＨＡＬＴ命令により、ＣＰＵの処理を停止するようになっている。
【０００４】
しかし、現実的に、ＣＰＵが暴走したときには、ＲＯＭからコードを読み出す場合に、どのアドレスからコードを読み出すか推定すること（すなわち、アクセス先のアドレスを確定すること）はできない。従って、ＨＡＬＴ命令が暴走したときに有効に働くかどうかが不明であり、暴走が停止するとは限らず、有効な暴走対策とはいえない。
【特許文献１】特開２００２−１８２８９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、有効な暴走対策を施したＩＣカードとその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一局面では、ワーキングメモリ（作業用メモリ、例えばＲＡＭ）、とデータメモリ（データ記憶用メモリ、例えばＥＥＰＲＯＭ）の空き領域に、ＨＡＬＴ命令を初期値として書き込み、暴走したときに、ＨＡＬＴ命令で停止するようにしている。他の局面では、デコーダに、ＲＡＭ、ＥＥＰＲＯＭの初期値をＨＡＬＴ命令と解釈する処理を追加することで、暴走対策としている。  
なお、本発明は、上記の処理を実行するハードウェアを装置に組み込んでも良いし、上記の処理を制御プログラム中の１つのプログラムで処理しても良い。また、本発明は、上記の処理を実行する方法の発明としても成立する。
【発明の効果】
【０００７】
本発明によれば、有効な暴走対策を施したＩＣカードを提供することができる。
【発明を実施するための最良の形態】
【０００８】
図面を参照して本発明の実施の形態を説明する。図１は、本発明の一実施形態に係るＩＣカードを利用したシステムの全体構成を示す図である。
【０００９】
図１に示すように、本システムは、カードリーダ１０２と、端末１０３と、キーボード１０４と、ＣＲＴ１０５と、プリンタ１０６とを備えている。ＩＣカード１０1は、カードリーダ・ライタ１０２に着脱可能に装着（挿入）され、ＩＣカード１０1に記録されたデータを読み込んだり、ＩＣカード１０1にデータが書き込まれたりする。ＩＣカード１０1からの読み出しデータは、このカードリーダ・ライタ１０２を介して端末１０３に転送され、ＩＣカード１０1への書込データは、カードリーダ・ライタ１０２を介して端末１０３から転送される。これによって、ＩＣカード１０１内のデータが書き換え、更新、或いは追加等なされる。また、端末１０３に接続されたキーボード１０３は、オペレターがＩＣカード１０１への入力データや、書込、更新指示などを行うための入力装置である。また、ＣＲＴ１０５と、プリンタ１０６は出力装置であって、所定の画面やフォーマットにより、ＩＣカード１０１に書き込まれたデータを出力したり、更新データ等を出力したりする。
【００１０】
図２は、ＩＣカード１０１の構成例を示すブロック図である。図２において、ＩＣカード１０１は、ＩＣチップ２００と通信部２０６とを備えている。また、ＩＣチップ２００（破線の枠内の部分）は、１つ（或いは複数）のＩＣチップで構成されており、制御素子２０１と、データメモリ２０２と、ワーキングメモリ２０３と、プログラムメモリ２０４と、デコーダ２０５とを備えている。なお、通信部２０６もＩＣチップ２００に搭載されていても良い。なお、ＩＣチップ２００と通信部２０６とが、樹脂等により、一体的にＩＣモジュール化されて、ＩＣカード１０１の本体内に埋設されている。通信部２０６は、接触式でも良いし、無線式でも良い。
【００１１】
制御素子（例えばＣＰＵ）２０１は、各部の制御やプログラムの実行を行う。データメモリ２０２は、各種データの記憶に使用されるデータ記憶用メモリであり、例えば、書き換え可能な不揮発性メモリ（例えば、ＥＥＰＲＯＭ）である。また、ワーキングメモリ２０３は、制御素子２０１が処理を行う際の処理データを一時的に保持するためのメモリ（すなわち、作業用メモリ）であり、例えば、ＲＡＭ（ランダムアクセスメモリ）で構成される。プログラムメモリ２０４は、たとえば、マスクＲＯＭで構成されており、制御素子２０１で動作するプログラムなどを記憶する。デコーダ２０５は、制御素子２０１に接続されており、特定のアドレス（例えば、ＲＡＭ、ＥＥＰＲＯＭ）の場合に、読み出した命令コードの値が、初期値である場合に、当該命令コードをＨＡＬＴ命令にデコードする機能を備えている。
【００１２】
図３は、ＩＣカードのＲＡＭエリアのデータ空間の一例を示す図である。第１のデータ格納部３０１および第２のデータ格納部３０２には、ＩＣカード１０１内で処理に必要なデータが格納されている。図３において、例えば、前記２つの格納部３０１、３０２の境界に、空き領域３０２があることが示されている。
【００１３】
図４は、ＩＣカードのＥＥＰＲＯＭエリアのデータ空間の一例を示す図である。第１のデータ格納部４０１および第２のデータ格納部４０２には、ＩＣカード１０１内で処理に必要なデータが格納されている。図４において、例えば、前記２つの格納部４０１、４０２の境界に、空き領域４０２があることを示している。
【００１４】
図５を参照して上記のように構成されたＩＣカード１０１の起動時の処理を説明する。図５は、ＩＣカードの起動時の処理を示すフローチャートである。  
まず、制御素子２０１のリセットの解除後に、プログラムがプログラムメモリ２０４から読み込まれて実行開始される（ステップ５０１）。次に、カード起動処理として、制御素子２０１が、例えば、レジスタのチェック、ワーキングメモリ２０３（ＲＡＭ）のチェックなどの自己診断、ＡＴＲ出力などを実行する（ステップ５０２）。そして、ワーキングメモリ２０３の全ての空き領域にＨＡＬＴ命令を書き込む（すなわち、ＨＡＬＴ命令で埋める）処理を実行する（ステップ５０３）。ＨＡＬＴ命令の埋め込みが終了したら、起動処理を完了する（ステップ５０４）。
【００１５】
図６は、カード製造時におけるデータメモリ２０２に対するメモリチェックの処理を示すフローチャートである。  
メモリチェックを開始すると（ステップ６０１）、データメモリ２０２（ＥＥＰＲＯＭ）の書き込み、読み出しチェック（検査）を行う。ここで、欠陥メモリ素子は別途管理されるので、本明細書では、メモリ素子が全て正常であるものとして、説明を行う。そして、データメモリ２０２のメモリの初期値として、ＨＡＬＴ命令を全メモリ領域に書き込んで（ステップ６０２）、メモリチェック処理を終了する（ステップ６０４）。
【００１６】
上記のように、全ての空き領域にＨＡＬＴ命令を書き込む（すなわちＨＡＬＴ命令で埋める）ことで、ＣＰＵが暴走した場合であっても、ＨＡＬＴ命令を実行する可能性が高くなるので、ＣＰＵの暴走を止めることができる。
【００１７】
ところで、基本的に、初期状態のときは、空き領域に書き込まれた情報は「Ｎｕｌｌ」の可能性が高い。すなわち、ＣＰＵの動作の開始時におけるワーキングメモリ２０３の初期化では、ワーキングメモリ２０３の全てのデータが消去された状態になる。更に、データメモリ２０２についても同様であって、データの追加、更新、削除等の動作において、空き領域にデータが残っている場合があるが、基本的に、空き領域のデータは消去状態にあることが多い。従って、空き領域の全メモリ素子のデータは消去状態であるものとする。なお、データの更新や消去時にインデックスのみを変更するのではなく、実際にデータも消去することが好ましい。以下、本明細書において、メモリ素子のデータの消去状態のときの値を「初期値」として説明を行う。
【００１８】
図７は、本発明の他の実施形態の流れを示すフローチャートであって、上記の実施形態のように、ＨＡＬＴ命令が書き込まれていない場合における、制御素子２０１（すなわち、ＣＰＵ）での命令解釈処理を示すフローチャートである。  
図７において、制御素子２０１が処理を開始すると（ステップ７０１）、制御素子２０１のアクセスするアドレスがワーキングメモリ２０３（ＲＡＭ）かどうかをチェックする（ステップ７０２）。アドレスがＲＡＭの場合には、命令を読み込み、この読み込んだ命令が初期値を示す値かどうかをチェックする（ステップ７０３）。ここで、命令が初期値でない場合には（ステップ７０４のＮＯ）、ステップ７０３で読み込んだ命令を実行する（ステップ７０４）。ステップ７０３において、読み込んだ命令が初期値の場合には、ＨＡＬＴ処理を実行する（ステップ７０５）。  
次に、ステップ７０２において、アドレスがＲＡＭではない場合に、アドレスがデータメモリ２０２（ＥＥＰＲＯＭ）かどうかをチェックする（ステップ７０６）。ここで、アドレスがＥＥＰＲＯＭの場合には、命令を読み込み、この読み込んだ命令が初期値を示す値かどうかをチェックする（ステップ７０７）。ここで、命令が初期値でない場合には（ステップ７０７のＮＯ）、ステップ７０７で読み込んだ命令を実行する（ステップ７０８）。ステップ７０７において、読み込んだ命令が初期値の場合には、ＨＡＬＴ処理を実行する（ステップ７０９）。ステップ７０６において、アドレスがＥＥＰＲＯＭでない場合には、読み込んだ命令を実行する。
【００１９】
上記のように、通常スキップされるような初期値に対して、ＨＡＬＴ命令とみなす処理を行うようにしたので、ＣＰＵが暴走した場合に、有効に停止できる。
【００２０】
本発明は、上記各実施の形態に限ることなく、その他、実施段階ではその要旨を逸脱しない範囲で種々の変形を実施し得ることが可能である。さらに、上記各実施形態には、種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組合せにより種々の発明が抽出され得る。
【００２１】
また、例えば各実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態に係るＩＣカードを利用したシステムの全体構成を示す図。
【図２】ＩＣカード１０１の構成例を示すブロック図。
【図３】ＩＣカードのＲＡＭエリアのデータ空間の一例を示す図。
【図４】ＩＣカードのＥＥＰＲＯＭエリアのデータ空間の一例を示す図。
【図５】ＩＣカードの起動時の処理を示すフローチャート。
【図６】カード製造時におけるデータメモリ２０２に対するメモリチェックの処理を示すフローチャート。
【図７】本発明の他の実施形態の流れを示すフローチャート。
【符号の説明】
【００２３】
ＲＯＭ…マスク
１０1…ＩＣカード
１０２…カードリーダ
１０２…カードリーダ・ライタ
１０３…端末
１０３…キーボード
１０４…キーボード
１０５…ＣＲＴ
１０６…プリンタ
２００…ＩＣチップ
２０１…制御素子（制御部）
２０２…データメモリ（第２のメモリ）
２０３…ワーキングメモリ（第１のメモリ）
２０４…プログラムメモリ
２０５…デコーダ
２０６…通信部
３０１…第１のデータ格納部
３０２…第２のデータ格納部
３０２…空き領域
４０１…第１のデータ格納部
４０２…第２のデータ格納部
４０２…空き領域
【図１】
2006244270.tif 000003
【図２】
2006244270.tif 000004
【図３】
2006244270.tif 000005
【図４】
2006244270.tif 000006
【図５】
2006244270.tif 000007
【図６】
2006244270.tif 000008
【図７】
2006244270.tif 000009