(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022188493
(43)【公開日】2022-12-21
(54)【発明の名称】ICカード
(51)【国際特許分類】
G06F 13/28 20060101AFI20221214BHJP
G06F 12/02 20060101ALI20221214BHJP
G06F 13/16 20060101ALI20221214BHJP
G06K 19/073 20060101ALI20221214BHJP
【FI】
G06F13/28 310E
G06F12/02 580A
G06F13/16 520B
G06K19/073
【審査請求】未請求
【請求項の数】1
【出願形態】OL
(21)【出願番号】P 2021096570
(22)【出願日】2021-06-09
(71)【出願人】
【識別番号】000003193
【氏名又は名称】凸版印刷株式会社
(72)【発明者】
【氏名】中村 裕也
(72)【発明者】
【氏名】荒井 和重
【テーマコード(参考)】
5B061
5B160
【Fターム(参考)】
5B061PP05
5B160AB09
5B160CA17
5B160MM00
(57)【要約】
【課題】周辺デバイスとメモリ間、またはメモリ-メモリ間のデータ転送を、CPUを介さずにDMA転送を用いて高速に行うことができ、かつデータ転送中、CPUが空いた時間を他の処理に割り当てる事ができることで、システム全体の処理効率を向上させる事が可能なICカードを供給すること。
【解決手段】少なくとも、外部とデータの送受信を行う通信部と、命令を実行するCPUと、CPUから実行されるプログラムを格納しているROMと、プログラムの実行中のデータを一時的に格納するRAMと、バッファメモリと、所定のデータが格納される不揮発性メモリと、CPUの外部バスと、DMAコントローラとを備えたICカードであって、
前記DMAコントローラは、前記CPUから受けたデータ転送に関する設定に基づいて、周辺機能とメモリ間、またはメモリ間のデータ転送を実行することを特徴とするICカードである。
【選択図】
図4
【特許請求の範囲】
【請求項1】
少なくとも、外部とデータの送受信を行う通信部と、命令を実行するCPUと、CPUから実行されるプログラムを格納しているROMと、プログラムの実行中のデータを一時的に格納するRAMと、バッファメモリと、所定のデータが格納される不揮発性メモリと、CPUの外部バスと、DMAコントローラとを備えたICカードであって、
前記CPUの外部バスには、前記通信部、前記バッファメモリ、前記不揮発性メモリおよび前記DMAコントローラが接続されており、
前記DMAコントローラは、前記CPUから受けたデータ転送に関する設定に基づいて、周辺機能とメモリ間、またはメモリ間のデータ転送を実行することを特徴とするICカード。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ICカードに内蔵するICチップに使う技術であり、CPUのリソースを効率よく利用し全体システムの処理効率を向上させたICカードに関するものである。
【背景技術】
【0002】
ICカードは、平板状の樹脂からなるICカード本体に、ICチップを埋め込んだものが知られている。ICチップは、外部とデータの送受信を行う通信機能(アンテナまたは接点端子)と、命令を実行するCPUと、前記CPUから実行されるプログラムを格納しているROMと、プログラムの実行中のデータを一時的に格納するRAMと、転送データが格納されるバッファメモリと、データを格納するために使用する書き込み可能な不揮発性メモリと、前記通信機能、前記バッファメモリ、および前記不揮発性メモリが接続されたバスがあり、集積回路を構成している。
【0003】
図1は、従来のICチップの構成を示すブロック図である。CPUには、内部にROMとRAMが接続されている。また外部バスには、通信部、バッファメモリ、不揮発性メモリが接続されている。ICカードの動作は、ROMに格納されているプログラムがCPUにより実行されることで行われ、通信部やRAM、バッファメモリ、不揮発性メモリへアクセスすることになる。またプログラムによっては、メモリ-メモリ間のデータ転送を行う場合もある。
【0004】
図2は、従来技術における通信機能とバッファメモリ間のデータ転送を示すブロック図である。外部バスに接続されているメモリ間でのデータ転送を、CPUを介して実行する方法であり、まずデータ転送元のメモリに対して読み出し処理を行い、その処理が完了後、データ転送先のメモリに対して書き込み処理を行う。
【0005】
一回で転送できるデータサイズは、デバイスとCPUの仕様で決められているため、CPUは、バッファメモリにデータの書き込み処理を行う際には、データを転送可能なサイズに分割し、その分割データを順次転送してバッファメモリに格納しなければならない。そのため処理時間が長くなるという課題がある。
【0006】
また、
図3は、従来技術における通信機能とバッファメモリ間のデータ転送の実現方法を示したものであるが、CPUは転送が完了したか確認するのに、データ転送完了ビットを監視し続ける必要があり、CPUは転送が完了するまで待ち状態となってしまい、待っている間CPUは何も処理できない為、リソースが無駄になる。この転送完了待ちをなくし、待ち時間を有効活用出来れば、全体システムの処理効率を向上させることができる。
【0007】
特許文献1では、高セキュリティが要求される複数のメモリを有するICカードにおけるメモリ間のデータ転送制御方法について提案がなされているが、上記の従来技術の課題には触れられていない。
【先行技術文献】
【特許文献】
【0008】
【発明の概要】
【発明が解決しようとする課題】
【0009】
したがって、本発明は上記の課題に鑑みてなされたものであり、その目的は、
外部バスに接続されている通信機能とメモリ(バッファメモリ、不揮発性メモリ)間、またはメモリ-メモリ間のデータ転送を、CPUを介さずにハードウェアで直接行う方法(DMA転送)を用いて高速に行うことができ、かつデータ転送中、CPUが空いた時間を他の処理に割り当てる事ができることで、システム全体の処理効率を向上させる事が可能なICカードを供給することである。
【課題を解決するための手段】
【0010】
本発明に於いて上記課題を解決するために、本発明の第一の態様は、
少なくとも、外部とデータの送受信を行う通信機能と、命令を実行するCPUと、CPUから実行されるプログラムを格納しているROMと、プログラムの実行中のデータを一時的に格納するRAMと、バッファメモリと、データを格納するために使用する書き込み可能な不揮発性メモリと、CPUの外部バスと、DMAコントローラとを備えたICカードであって、
前記CPUの外部バスには、前記通信機能、前記バッファメモリ、前記不揮発性メモリおよび前記DMAコントローラが接続されており、
前記DMAコントローラは、前記CPUから受けたデータ転送に関する設定に基づいて、通信機能とメモリ間、またはメモリ-メモリ間のデータ転送を実行することを特徴とするICカードである。
【0011】
DMAとはDirect Memory Accessの略で、CPUを使わずに、バスを通じて通信機能とメモリ間、またはメモリ-メモリ間のデータ転送を直接行う機能である。DMAがない場合、システム内のすべてのデータ転送はCPUが転送元からデータを読み込み、転送先に書き込むという処理を行う必要があるが、DMAに対応したシステムでは、CPUはDMAコントローラに指示を出し、コントローラがデータの読み書きを行う。これにより、CPUが負荷をDMAコントローラに分担させることで高速化が可能で、しかもCPUが機器の応答を待たず空いた時間を他の処理に進むことができるのでシステム全体の性能を向上させることができる。
【0012】
他の処理とは、例えばデフラグ処理、プログラムメモリチェック処理およびH/W処理などが考えられ、ICカードのセキュリティ及びパフォーマンスを向上させる事ができる。
【発明の効果】
【0013】
本発明においては、外部バスに接続されている周辺機能(通信機能)とメモリ(バッファメモリ、不揮発性メモリ)間、またはメモリ-メモリ間のデータ転送を、CPUを介さずにハードウェアで直接行う方法(DMA転送)を用いて高速に行うことができ、かつデータ転送中、CPUが空いた時間を他の処理に割り当てられる事が出来るため、システム全体の処理効率を向上させる事が可能なICカードを供給することが可能である。
【図面の簡単な説明】
【0014】
【
図1】
図1は、従来のICカードの構成を示すブロック図である。
【
図2】
図2は、従来技術における通信機能とバッファメモリ間のデータ転送を示すブロック図である。
【
図3】
図3は、
図2に示したデータ転送の課題を説明する図である。
【
図4】
図4は、本発明の実施形態にかかるICカードの構成を示すブロック図である。
【
図5】
図5は、本発明の実施形態にかかる通信機能とバッファメモリ間のデータ転送を示すブロック図である。
【
図6】
図6は、
図5に示したデータ転送の流れを説明する図である。
【
図7】
図7は、ICカードの動作の流れを説明する図である。
【発明を実施するための形態】
【0015】
<構成>
図4は、本発明の実施形態にかかるICカード11の構成を示すブロック図である。
図4を参照して、このICカード11は、少なくとも、外部とデータの送受信を行う通信機能4と、命令を実行するCPU1と、CPUから実行されるプログラムを格納しているROM2と、プログラムの実行中のデータを一時的に格納するRAM3と、バッファメモリ5と、データを格納するために使用する書き込み可能な不揮発性メモリ6と、CPUの外部バス7と、DMAコントローラ8を備えており、CPUの外部バス7には、通信機能4、バッファメモリ5、不揮発性メモリ6およびDMAコントローラ8が接続されている。通信機能4は、接点端子を持つ接触タイプ、カード内部にアンテナを持つ非接触タイプのどちらでもよい。
【0016】
CPU1は、ICカード11全体の制御を司る。CPU1は、外部装置からアンテナ等の通信機能4を介して受信データを受信した時には、DMAコントローラ8に対する制御を行い、DMAコントローラ8が受信した受信データをCPUの外部バス7を介してバッファメモリ5に転送する制御を行う。この際、DMAコントローラ8は、DMA転送により受信データをバッファメモリ5に転送する。
【0017】
<データ転送>
以上のように構成されたICカード11のデータ転送動作について、
図6を参照しつつ説明する。
図6は、
図5に示したICカード11におけるデータ転送の流れを示す図である。
図6を参照して処理の流れを、(1)CPU1が通信機能4からデータを受信(2)DMAコントローラ8に転送指示(3)シリアルバッファメモリ5へデータの書き込み、に分けて説明する。
【0018】
(1)CPUが通信部からデータを受信
CPU1は、通信機能4によって受信された信号データ(コマンド)に対して、処理を施し転送可能なサイズに分割してレスポンスデータを生成する。
【0019】
(2)DMAコントローラに指示
CPU1は、以下のデータ転送情報を作成する。そして、CPU1は、初回のレスポンスデータ(転送元)をバッファメモリ(転送先)に転送し、作成したデータ転送情報を、DMAコントローラ8に対してセットする。2回目以降の転送は、DMAコントローラ8が、データ転送情報に基づいて、レスポンスデータ(転送元)をバッファメモリ(転送先)に転送する。
データ転送情報:転送元アドレス・・・転送元データの場所
転送先アドレス・・・バッファメモリ内のアドレス
転送サイズ・・・転送データのサイズ
転送要因ビット・・・転送完了ビット
【0020】
(3)バッファメモリへデータの書き込み
割り込み信号C1を受けて、DMAコントローラ8は、転送設定データに基づいて、分割単位のデータを転送元から読み込み、順次転送先のバッファメモリ5へ書き込む。分割単位のデータの生成からDMAコントローラ8によるバッファメモリへの書き込みまでの処理が、分割単位のデータごとに繰り返し行われる。
【0021】
以上のように、DMA転送はCPU1がDMAコントローラに転送元アドレスと転送先アドレス及び転送サイズ、転送要因ビットを設定する。CPU1は一度設定し終わったら、あとの転送はDMAコントローラに任せる事ができる為、CPUがデータの転送終了まで待つ必要がなくなり、空いた時間を有効活用することができる。
【0022】
<ICカード動作>
リーダライタからコマンドを受信した際のICカード11の動作の流れを
図7を参照して説明する。リーダライタから、ICカード11に命令信号(コマンド)が送信される。ICカード11は、通信機能4を経由して、リーダライタから送信された命令信号(コマンド)に応答して、ICカード11は受信処理を行う。この受信は、電波を媒体としてアンテナまたは接点端子を通して行われる。
【0023】
CPU1は、通信機能4によって受信されたコマンドに対してコマンド処理を実行し、レスポンスデータを作成する。そしてCPU1は、コマンド処理が完了すると、初回のレスポンスデータ(転送元)を送信バッファメモリ(転送先)に転送し、作成したデータ転送情報を、DMAコントローラ8に対してセットする。2回目以降の転送は、DMAコントローラ8が、データ転送情報に基づいて、レスポンスデータ(転送元)を送信バッファメモリ(転送先)に転送する。レスポンスデータのデータ長が長いほど転送時間は長くなる。
【0024】
CPU1は一度データ転送情報をセットし終わったら、あとの転送はDMAコントローラ8に任せる事ができる為、CPU1がデータの転送終了まで待つ必要がなくなり、空いた時間を有効活用することができる。DMAコントローラ8は、データ転送情報に基づいて、転送元からレスポンスデータを読み込み、転送先のバッファメモリに転送単位毎に書き込みを繰り返す。
【0025】
DMA転送によるデータの送受信は、ハードウェアによる転送処理となるため、CPU1による転送よりも高速化が可能である。そして、さらに通信機能4は、コマンド処理結果であるレスポンスデータをリーダライタに対して送信処理を行って動作を完了する。
【0026】
CPUは、空いた時間を例として以下の3処理の実行にあてることができる。
(1)デフラグ処理(2)メモリチェック処理(3)H/Wチェック処理
【0027】
(1)~(3)の処理の一例を以下に説明する。
<デフラグ処理>
デフラグファイルを書き込み消去を行うと断片化が生じてしまう。ファイルシステムは断片化された際は書き込みや読み込みの際に時間がかかってしまいパフォーマンスの低下を招いてしまう。
図5に示すように、CPUがデフラグ処理を行う事により、断片化されたファイルを整理しファイルを連続データにすることが出来る。その為、ファイルの読み書きを行う処理時間が低下したパフォーマンスを改善させることにより、短くなり、パフオーマンスを向上させることが出来る。なお、一度に空いた時問で全てを実行することは出来ない為、デフラグ処理の実行は断片化の状況により、わけて行う。
【0028】
<メモリチェック処理>
CPUは、プログラム及びデータが不正に書き換えられていないか自己診断を行う。セキュリティ製品に使われるCPUでは不正対策を施す必要がある。アタッカーにより不正に書き換えられていないかをチェックする事によりセキュリティ性を向上させることが出来る。
図6に示すように、メモリに不正な値が入っていたら、異常検知信号を出しデータに処理を施す。一度に空いた時間では全てを実行することは出来ない為、メモリのチェックは優先順位をつけて実行する。優先順位は利用頻度の高い順番から設定を行うこととする。
【0029】
<H/Wチェック処理>
CPU内に内蔵しているコプロセッサやFLASHメモリの読み書きなどハードウェアに関するチェックを行う事によりセキュリティ性を向上させることが出来る。
【0030】
以上から、本発明によればCPUがデータ転送の処理をDMAコントローラに分担させることで高速化が可能で、しかもCPUが機器の応答を待たず空いた時間を、他の処理に充てることができ、システム全体の処理効率を向上させる事ができる。例えばデフラグ処理、プログラムメモリチェック処理およびH/W処理に充てることで、ICカードのセキュリティ及びパフォーマンスを向上させる事ができる。
【符号の説明】
【0031】
1・・・CPU
2・・・ROM
3・・・RAM
4・・・通信機能
5・・・バッファメモリ
6・・・不揮発性メモリ
7・・・CPUの外部バス
8・・・DMAコントローラ
10・・・従来のICカード
11・・・本発明のICカード