(57)【要約】【課題】利用可能なメモリ領域をコスト増大を抑制して容易に増やすことができ、メモリ領域のデータに対するセキュリティ処理にも容易に対応する。【解決手段】ＩＣカード用半導体装置（１００）は、外部との間で入出力制御を行う入出力インタフェース制御回路（１２０）の他に外部のメモリカードとの間で入出力制御を行うメモリカードインタフェース制御回路（１６０）を有し、メモリカードのホスト機能を持つ。前記入出力インタフェース制御回路に供給されるセキュリティ処理要求には中央処理装置（１５０）が応答する。中央処理装置は前記メモリカードインタフェース制御回路にメモリカードアクセスの指示を与えることも可能である。前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求には転送制御回路（１４０）が応答して前記メモリカードインタフェース制御回路にメモリカードアクセスの指示を与える。【選択図】図１
2009129402.tif 000002
【特許請求の範囲】
【請求項１】
所定の入出力インタフェース仕様に準拠して外部との間で入出力制御を行う入出力インタフェース制御回路と、
所定のメモリカードインタフェース仕様に準拠して外部のメモリカードとの間で入出力制御を行うメモリカードインタフェース制御回路と、
前記入出力インタフェース制御回路に供給されるセキュリティ処理要求に応答してデータ処理を行ない、前記メモリカードインタフェース制御回路にメモリカードのアクセス指示を与えることが可能な中央処理装置と、
前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求に応答して前記メモリカードインタフェース制御回路にメモリカードのアクセス指示を与える転送制御回路と、を有するＩＣカード用半導体装置。
【請求項２】
前記転送制御回路と前記メモリカードインタフェース制御回路との間にバッファメモリを有し、
前記転送制御回路は前記メモリカードへの書込みデータを前記データバッファに転送制御し、前記メモリカードインタフェース制御回路は前記メモリカードからのリードデータを前記データバッファに転送制御する、請求項１記載のＩＣカード用半導体装置。
【請求項３】
前記入出力インタフェース制御回路と中央処理装置とを接続する内部バスと、前記入出力インタフェース制御回路から転送制御回路を経由して前記バッファに至る内部バスとを別々に持つ、請求項２記載のＩＣカード用半導体装置。
【請求項４】
前記メモリカードインタフェース制御回路は、メモリカードのアクセス動作を指示するアクセスコマンドが格納される命令キューを有し、
前記中央処理装置と転送制御回路は前記命令キューにアクセスコマンドを書込み可能であり、
前記メモリカードインタフェース制御回路は命令キューに書込まれたアクセスコマンドに従って外部のメモリカードに対するインタフェース制御を行う、請求項１記載のＩＣカード用半導体装置。
【請求項５】
前記転送制御回路は、前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求が書き込みの場合、前記転送制御回路からバッファへの転送経路のバス権を獲得し、前記バッファの空き領域に書込みデータを転送し、前記メモリカードインタフェース制御回路の命令キューに書込みアクセスコマンドを転送して、前記メモリカードインタフェース制御回路にバッファの書込みデータをメモリカードに書込む制御を開始させる、請求項４記載のＩＣカード用半導体装置。
【請求項６】
前記転送制御回路は、前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求が読出しの場合、前記メモリカードインタフェース制御回路の命令キューに読出しアクセスコマンドを転送して、前記メモリカードインタフェース制御回路に前記メモリカードからデータをリードさせてバッファの空き領域に格納させ、バッファから転送制御回路への転送経路のバス権を獲得して、バッファのリードデータを前記入出力インタフェース制御回路に供給する、請求項４記載のＩＣカード用半導体装置。
【請求項７】
前記メモリカードインタフェース制御回路は、読出しアクセスコマンドに応答するとき、前記バッファに空き領域がない場合には前記命令キューに格納されている書込みアクセスコマンドによる書込みを先に行ってバッファに空き領域を確保する、請求項６記載のＩＣカード用半導体装置。
【請求項８】
前記転送制御回路は、前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求が消去の場合、前記メモリカードインタフェース制御回路の命令キューに消去アクセスコマンドを転送して、前記メモリカードインタフェース制御回路に前記メモリカードに対する消去動作を開始させる、請求項４記載のＩＣカード用半導体装置。
【請求項９】
カード基板に、請求項１記載のＩＣカード用半導体装置と、前記ＩＣカード用半導体装置の入出力インタフェース制御回路に接続する第１インタフェース端子と、前記ＩＣカード用半導体装置のメモリカードインタフェース制御回路に接続する第２インタフェース端子と、を有すＩＣカード。
【請求項１０】
請求項９記載のＩＣカードにおける前記第１インタフェース端子のうちＩＣカードの外部に露出した前記第１インタフェース端子に接続される第1端末インタフェース端子と、請求項９記載のＩＣカードにおける前記第２インタフェース端子のうちＩＣカードの外部に露出した前記第２インタフェース端子に接続される第２端末インタフェース端子と、メモリカードが接続される第３端末インタフェース端子と、前記第２端末インタフェース端子を前記第３端末インタフェース端子に接続するバイパス経路と、を有するＩＣカード用端末装置。
【請求項１１】
所定の入出力インタフェース仕様に準拠して外部との間で入出力制御を行う入出力インタフェース制御回路と、
所定のメモリカードインタフェース仕様に準拠して外部のメモリカードとの間で入出力制御を行うメモリカードインタフェース制御回路と、
前記入出力インタフェース制御回路に供給されるセキュリティ処理要求に応答してデータ処理を行なう第１データ処理装置と、
前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求に応答して前記メモリカードインタフェース制御回路にメモリカードアクセスの指示を与える第２データ処理回路と、を有し、
前記メモリカードインタフェース制御回路は、メモリカードに動作電源を供給するための電源端子に入力端子が接続された電圧検出回路を有し、前記電圧検出回路により外部から電圧が供給されていないときにメモリカードに対するアクセス動作を開始する、ＩＣカード用半導体装置。
【請求項１２】
前記第１データ処理装置は前記メモリカードインタフェース制御回路にメモリカードのアクセス指示を与えることが可能である、請求項１１記載のＩＣカード用半導体装置。
【請求項１３】
カード基板に、請求項１１記載のＩＣカード用半導体装置と、前記ＩＣカード用半導体装置の入出力インタフェース制御回路に接続する第１インタフェース端子と、前記ＩＣカード用半導体装置のメモリカードインタフェース制御回路に接続する第２インタフェース端子と、を有するＩＣカード。
【請求項１４】
請求項１３記載のＩＣカードにおける前記第１インタフェース端子のうちＩＣカードの外部に露出した第１インタフェース端子に接続される第1端末インタフェース端子と、請求項１３記載のＩＣカードにおける前記第２インタフェース端子のうちＩＣカードの外部に露出した第２インタフェース端子に接続される第２端末インタフェース端子と、メモリカードが接続される第３端末インタフェース端子と、前記ＩＣカードからメモリカードに動作電源を供給するための前記第２端末インタフェース端子のうちの電源端子に入力端子が接続された電圧検出回路とを有し、前記電圧検出回路により外部から電圧が供給されていないときに第３端末インタフェース端子を介してメモリカードに対するアクセス動作を開始する、ＩＣカード用端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はセキュリティ処理とメモリカードアクセス処理に応答するＩＣカード用半導体装置、この半導体装置を搭載したＩＣカード、並びに当該ＩＣカードに接続されるＩＣカード用端末装置に関する。
【背景技術】
【０００２】
ＩＣカードは、従来の磁気カードに置き換わるデバイスとして、交通システムや認証装置で広く利用されている。ＩＣカードは一般に電流差分解析や物理的なタンパリングに抗する仕組みを取り入れた小型のマイクロコンピュータと、接触または非接触のインタフェースをＩＤ−０またはＩＤ−１等の形状のカードに組み込んだ構成を備える。このＩＣカードは、電気的な認証を行うことなくカード内の情報にアクセスできない方式を取り得ることから、従来の磁気カードで問題となっていた不正な改ざんや摩耗による読み取り不良に強いという特性がある。また電気的に読み書き可能であると言う特性は、磁気カードでは非常に困難であった小型化を容易にし、携帯電話機などの小型端末内の認証デバイスとして優れている。
【０００３】
現在ＩＣカードまたはＩＣカードチップ（ＩＣカード用半導体装置）は、様々な装置の認証デバイスとして利用されており、ＩＣカードまたはＩＣカードチップへの機能並びに性能に対する要求は年々増大している。特にＩＣカードチップ内に格納するアプリケーションの多様化と大規模化により、ＩＣカードチップに要求される記憶容量も増大しており、これは今後とも増大する傾向にある。さらにＩＣカードチップ内のデータ量の増大は、ＩＣカードチップ内で処理するデータ量の増大と、端末装置とやりとりするデータ量の増大にもつながり、既存の仕組みでＩＣカードの能力を向上させることは困難になってきている。
【０００４】
このような流れの中で、ＩＳＯ／ＩＥＣ ７８１６―１２に記載されているような、高速通信インタフェースを有するＩＣカードの規格が策定されており、インタフェース部分の速度に関する課題に対しては一定の解決がなされている。しかしながら、ＩＣカードチップ内のデータ容量の増大に対しては、ＩＣカード内に大容量のフラッシュメモリなどを組み込むことが解決策になるが、ＩＣカードチップのコストに比べてフラッシュメモリのコストが大きいことから、ＩＣカード製造者にとって大きな負担となっている。
【０００５】
このような課題に対する解決策の一つとして、特許文献１に見られるような、ＩＣカードとメモリカードを、インタフェースを独立にして一枚のカードに混載するという構成が考えられる。この場合、ＩＣカード部分とフラッシュメモリ部分を独立に製造できるため、各インタフェースに対して従来品がそのまま利用できるという効果があるものの、製品としての価格は単品としてもトータルとしても増大してしまうと言う問題がある。また回路が独立であることから、ＩＣカードのセキュリティデータの一部を格納するという用途には使いにくい。
【０００６】
【特許文献１】特開２００５−３２２１０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記のように、ＩＣカードの記憶容量の増大に対しては、ＩＣカードを利用する端末装置上に大容量メモリを組み込んだり、メモリカードデバイスを接続する手段が考えられるが、これらは端末装置自身が制御するデバイスであることから、ＩＣカードの記憶容量に関する課題の解決には適さない。
【０００８】
本発明の目的は、利用可能な不揮発性メモリ領域をコストの増大を抑制して容易に増やすことができ且つ前記不揮発性メモリ領域のデータに対するセキュリティ処理にも容易に対応することができるＩＣカード用半導体装置を提供することにある。
【０００９】
本発明の別の目的は、利用可能な不揮発性メモリ領域をコスト増大を抑制して容易に増やすことができ且つ前記不揮発性メモリ領域のデータに対するセキュリティ処理にも容易に対応することができるＩＣカード並びのそのＩＣカードに好適なＩＣカード用端末装置を提供することにある。
【００１０】
本発明の更に別の目的は、メモリカードホスト機能を備えたＩＣカードでアクセス可能なメモリカードにも単独アクセス可能なＩＣカード用端末装置を提供することにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１３】
すなわち、ＩＣカード用半導体装置は、外部との間で入出力制御を行う入出力インタフェース制御回路の他に外部のメモリカードとの間で入出力制御を行うメモリカードインタフェース制御回路を有し、メモリカードのホスト機能を持つ。前記入出力インタフェース制御回路に供給されるセキュリティ処理要求には中央処理装置が応答する。中央処理装置は前記メモリカードインタフェース制御回路にメモリカードアクセスの指示を与えることも可能である。前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求には転送制御回路が応答して前記メモリカードインタフェース制御回路にメモリカードアクセスの指示を与える。
【００１４】
上記手段によれば、ＩＣカード用半導体装置が利用する不揮発性メモリ領域を増設するには前記メモリカードインタフェース制御回路に接続するメモリカードを当該半導体装置の外部に追加すれば良い。メモリカードアクセス処理要求には転送制御回路が応答するから中央処理装置の負担が軽減される。中央処理装置はセキュリティ処理を行なったデータ等の格納にも外部のメモリカードを利用することができる。
【発明の効果】
【００１５】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１６】
すなわち、外付けのメモリカードを追加することで、ＩＣカード用半導体装置から直接外付けのメモリカード内のデータを扱うことが出来るようになり、利用可能な不揮発性メモリ領域をコスト増大を抑制して増やすことができ、且つ前記不揮発性メモリ領域のデータに対するセキュリティ処理にも容易に対応することができる。
【発明を実施するための最良の形態】
【００１７】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１８】
〔１〕ＩＣカード用半導体装置（１０５）は、所定の入出力インタフェース仕様に準拠して外部との間で入出力制御を行う入出力インタフェース制御回路（１２０）と、メモリカードインタフェース制御回路（１６０）と、中央処理装置（１５０）と、転送制御回路（１４０）とを有する。メモリカードインタフェース制御回路は所定のメモリカードインタフェース仕様に準拠して外部のメモリカードとの間で入出力制御を行う。中央処理装置は前記入出力インタフェース制御回路に供給されるセキュリティ処理要求に応答してデータ処理を行ない、また、前記メモリカードインタフェース制御回路にメモリカードのアクセス指示を与える。転送制御回路は、前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求に応答して前記メモリカードインタフェース制御回路にメモリカードのアクセス指示を与える。
【００１９】
上記手段によれば、ＩＣカード用半導体装置はメモリカードホスト機能を有するから、利用する不揮発性メモリ領域を増設するにはメモリカードを当該半導体装置の外部に追加して前記メモリカードインタフェース制御回路に接続すればよい。メモリカードアクセス処理要求には転送制御回路が応答するから中央処理装置の負担が軽減される。中央処理装置はセキュリティ処理を行なったデータ等の格納にも外部のメモリカードを利用することができる。したがって、利用可能な不揮発性メモリ領域をコスト増大を抑制して増やすことができ、且つ前記不揮発性メモリ領域のデータに対するセキュリティ処理にも容易に対応することができる。
【００２０】
〔２〕項１のＩＣカード用半導体装置は更に、前記転送制御回路と前記メモリカードインタフェース制御回路との間にバッファ（１４５）を有する。前記転送制御回路は前記メモリカードへの書込みデータを前記バッファに転送制御し、前記メモリカードインタフェース制御回路は前記メモリカードからのリードデータを前記バッファに転送制御する。バッファッメモリは転送制御回路と前記メモリカードインタフェース制御回路による共有バッファになるから、メモリカードに対する書込みデータ及びリードデータのデータ転送制御の容易化に資することができる。
【００２１】
〔３〕項２のＩＣカード用半導体装置は更に、前記入出力インタフェース制御回路と中央処理装置とを接続する内部バス（１３０）と、前記入出力インタフェース制御回路から転送制御回路を経由して前記データバッファに至る内部バス（１３３Ａ，１３３Ｂ）とを別々に持つ。メモリカードアクセス処理とセキュリティ処理との間でデータ転送のバス競合を回避することが容易になり、データ処理の効率化に資することができる。
【００２２】
〔４〕項１のＩＣカード用半導体装置において、前記メモリカードインタフェース制御回路は、メモリカードのアクセス動作を指示するアクセスコマンドが格納される命令キュー（１６５）を有する。前記中央処理装置と転送制御回路は前記命令キューにアクセスコマンドを書込み可能である。前記メモリカードインタフェース制御回路は命令キューに書込まれたアクセスコマンドに従って外部のメモリカードに対するインタフェース制御を行う。
【００２３】
〔５〕項４のＩＣカード用半導体装置において、前記転送制御回路は、前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求が書き込みの場合、前記転送制御回路からバッファへの転送経路のバス権を獲得し、前記バッファの空き領域に書込みデータを転送する。そして、前記メモリカードインタフェース制御回路の命令キューに書込みアクセスコマンドを転送して、前記メモリカードインタフェース制御回路にバッファの書込みデータをメモリカードに書込む制御を開始させる。命令キューへの書き込みアクセスコマンドのセットはバッファに書込みデータを転送した後に行うから、前記バッファに空き領域が無くても、先に設定されている書込みアクセスコマンド又は読み出しアクセスコマンドが実行されることになり、前記バッファに空き領域が無ければ空くまで待てばよい。
【００２４】
〔６〕項４のＩＣカード用半導体装置において、前記転送制御回路は、前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求が読出しの場合、前記メモリカードインタフェース制御回路の命令キューに読出しアクセスコマンドを転送して、前記メモリカードインタフェース制御回路に前記メモリカードからデータリードさせてバッファの空き領域に格納させる。そして、バッファから転送制御回路への転送経路のバス権を獲得して、バッファのリードデータを前記入出力インタフェース制御回路に供給する。
【００２５】
〔７〕項６のＩＣカード用半導体装置において、前記メモリカードインタフェース制御回路は、読出しアクセスコマンドに応答するとき、前記バッファに空き領域がない場合には前記命令キューに格納されている書込みアクセスコマンドによる書込みを先に行ってバッファに空き領域を確保する。命令キューへの読出しアクセスコマンドのセットはバッファに読出しデータが転送される前に行うから、前記バッファに空き領域が無いときそのまま待っているだけではバッファには空きが生じないので、先に設定されている書込みアクセスコマンドを先に実行させることにより、強制的に前記バッファに空き領域を確保することが可能になる。
【００２６】
〔８〕項４のＩＣカード用半導体装置において、前記転送制御回路は、前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求が消去の場合、前記メモリカードインタフェース制御回路の命令キューに消去アクセスコマンドを転送して、前記メモリカードインタフェース制御回路に前記メモリカードに対する消去動作を開始させる。
【００２７】
〔９〕項１のＩＣカード用半導体装置を適用したＩＣカード（１００）は、カード基板に、当該ＩＣカード用半導体装置（１０５）と、前記ＩＣカード用半導体装置の入出力インタフェース制御回路に接続する第１インタフェース端子（７０４，７０８）と、前記ＩＣカード用半導体装置のメモリカードインタフェース制御回路に接続する第２インタフェース端子（７０２，７０３，７０６，７０７）と、を有す。例えば第１インタフェース端子及び第２インタフェース端子がＩＣカード用端末装置にインタフェースされるとき、ＩＣカード用端末装置に装着された増設用のメモリカードをＩＣカード用端末装置内部で第２インタフェース端子に接続すれば良い。第２インタフェース端子が直接メモリカードを着脱可能であれば、ＩＣカードに直接メモリカードを装着して増設することができる。メモリカードが単一の半導体チップで形成された半導体デバイスである場合には当該デバイスをＩＣカードに予め組み込んでおくことも可能である。
【００２８】
〔１０〕項９のＩＣカードが利用される一つのＩＣカード用端末装置（１８０）は、当該ＩＣカードにおける前記第１インタフェース端子のうちＩＣカードの外部に露出した前記第１インタフェース端子に接続される第1端末インタフェース端子（１８２）と、項９のＩＣカードにおける前記第２インタフェース端子のうちＩＣカードの外部に露出した前記第２インタフェース端子に接続される第２端末インタフェース端子（１８１Ａ）とを有する。更に、メモリカードが接続される第３端末インタフェース端子（１８１Ｂ）と、前記第２端末インタフェース端子を前記第３端末インタフェース端子に接続するバイパス経路（１８３）と、を有する。これにより、前記ＩＣカードに好適なＩＣカード用端末装置を実現することができる。
【００２９】
〔１１〕別の観点によるＩＣカード用半導体装置（１０５）は、所定の入出力インタフェース仕様に準拠して外部との間で入出力制御を行う入出力インタフェース制御回路（１２０）と、メモリカードインタフェース制御回路（１６０）と、第１データ処理装置（１５０）と、第２データ処理回路（１４０）とを有する。メモリカードインタフェース制御回路は所定のメモリカードインタフェース仕様に準拠して外部のメモリカードとの間で入出力制御を行う。第１データ処理装置は前記入出力インタフェース制御回路に供給されるセキュリティ処理要求に応答してデータ処理を行なう。第２データ処理回路は前記入出力インタフェース制御回路に供給されるメモリカードアクセス処理要求に応答して前記メモリカードインタフェース制御回路にメモリカードアクセスの指示を与える。このとき、前記メモリカードインタフェース制御回路は、メモリカードに動作電源を供給するための電源端子に入力端子が接続された第１電圧検出回路（２１０）を有し、前記第１電圧検出回路により外部から電圧が供給されていないときにメモリカードに対するアクセス動作を開始する。
【００３０】
上記手段によれば、ＩＣカード用半導体装置はメモリカードホスト機能を有するので、利用する不揮発性メモリ領域を増設するにはメモリカードを当該半導体装置の外部に追加して前記メモリカードインタフェース制御回路に接続すればよい。メモリカードアクセス処理要求には転送制御回路が応答するから中央処理装置の負担が軽減される。また、第１電圧検出回路を持つことによりメモリカードホスト機能を有するＩＣカードからのアクセスが端末装置からのアクセスと競合することをＩＣカード用半導体装置自らで回避可能になる。
【００３１】
〔１２〕項１１のＩＣカード用半導体装置において前記第１データ処理装置は前記メモリカードインタフェース制御回路にメモリカードのアクセス指示を与えることが可能である。これにより、第１データ処理装置はセキュリティ処理を行なったデータ等の格納にも外部のメモリカードを利用することができる。
【００３２】
〔１３〕項１１のＩＣカード用半導体装置を適用したＩＣカード（１００）は、カード基板に、当該ＩＣカード用半導体装置と、前記ＩＣカード用半導体装置の入出力インタフェース制御回路に接続する第１インタフェース端子と、前記ＩＣカード用半導体装置のメモリカードインタフェース制御回路に接続する第２インタフェース端子と、を有する。例えば第１インタフェース端子及び第２インタフェース端子がＩＣカード用端末装置にインタフェースされるとき、ＩＣカード用端末装置に装着された増設用のメモリカードをＩＣカード用端末装置内部で第２インタフェース端子に接続すれば良い。
【００３３】
〔１４〕項１３のＩＣカードが利用される一つのＩＣカード用端末装置（１８０Ａ）は、当該ＩＣカードにおける前記第１インタフェース端子のうちＩＣカードの外部に露出した第１インタフェース端子に接続される第1端末インタフェース端子（１８２）と、前記ＩＣカードにおける前記第２インタフェース端子のうちＩＣカードの外部に露出した第２インタフェース端子に接続される第２端末インタフェース端子（１８１Ａ）とを有する。更に、メモリカードが接続される第３端末インタフェース端子（１８１Ｂ）と、前記ＩＣカードからメモリカードに動作電源を供給するための前記第２端末インタフェース端子のうちの電源端子に入力端子が接続された第２電圧検出回路（２２０）とを有し、前記第２電圧検出回路により外部から電圧が供給されていないときに第３端末インタフェース端子を介してメモリカードに対するアクセス動作を開始する。これにより、ＩＣカード用端末装置は第２電圧検出回路を持つことによりメモリカードホスト機能を有するＩＣカードによるメモリカードのアクセスとの競合をＩＣカード用端末装置自らで回避可能になる。
【００３４】
２．実施の形態の詳細
実施の形態について更に詳述する。以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明する。なお、発明を実施するための最良の形態を説明するための全図において、同一の機能を有する部材には同一の符号を付し、その繰り返しの説明は省略する。
【００３５】
図１には本発明に係るＩＣカード（ＩＣＣＲＤ）１００の一例が示される。ＩＣカード１００は端末装置（ＴＲＭＬ）１８０とインタフェース可能にされると共に、端末装置１８０に接続されたメモリカード１９０を当該端末装置１８０経由でアクセス可能にされる。ＩＣカード１００は外部インタフェース端子を有するカード基板にＩＣカードチップ（ＩＣＣＲＤＣＨＰ）１０５を搭載して構成される。ＩＣカードチップ１０５は例えば相補型ＭＯＳ集積回路製造技術等にとって単結晶シリコン等の半導体基板に形成され、マイクロコンピュータ若しくはデータプロセッサを構成する。外部インタフェース端子は接触端子、或いは非接触インタフェースのためのアンテナ端子とされる。
【００３６】
ＩＣカードチップ１０５は、外部インタフェース端子を介して端末装置１８０にインタフェースされる入出力インタフェース制御回路である端末インタフェース制御回路（ＴＲＭＩＦＣＮＴ）１２０と、前記メモリカード１９０に対してカードホストと同様のインタフェース制御を行うメモリカード制御回路（ＭＣＲＤＣＮＴ）１６０を有する。端末インタフェース制御回路１２０は入出力インタフェース１２７を介して端末装置（ＴＲＭＬ）１８０の外部インタフェース端子１８２とインタフェース可能にされる。メモリカード制御回路１６０はメモリカードインタフェース１６７Ａを介して端末装置１８０のインタフェース端子１８１Ａに結合される。メモリカード１９０はメモリカードインタフェース１６７Ｂを介して端末装置１８０のインタフェース端子１８１Ｂに結合される。インタフェース端子１８１Ａと１８１Ｂとは端末装置１８０の内部で対応端子がバイパス経路もしくはスルー経路を構成するバス１８３によって接続可能にされる。
【００３７】
ＩＣカードチップ１０５の全体的な制御を行うために、中央処理装置（ＣＰＵ）１５０と共に、バッファメモリ（ＭＥＭ）１５５等が設けられ、それらは内部バス１３０を介して端末インタフェース制御回路１２０とメモリカード制御回路１６０に接続される。中央処理装置１５０は例えばプロセッサコとしての構成を有する。中央処理装置１５０は、暗号化・復号や認証などのセキュリティ処理等を行ない、必要に応じてメモリカードを各種データ処理のための補助記憶装置として用いる。また、メモリカード１９０は端末装置１８０にとっても画像データ等の大量のストリームデータを格納するためのストレージとして利用可能にされる。端末装置１８０からの要求に答えてメモリカード１９０を利用可能に制御するとき、ＣＰＵ１５０の負担を軽減するために、転送制御回路（ＴＲＣＮＴ）１４０、セレクタ１３２及びバッファ（ＢＵＦＦ）１４５を有する。端末インタフェース制御回路１２０と転送制御回路１４０はバス１３３Ａで接続され、転送制御回路１４０とバス１３０はセレクタ１４１を介して選択的にバス１４１に接続され、バス１４１にバッファ１４５が接続される。
【００３８】
端末インタフェース制御回路１２０と端末装置１８０の入出力インタフェース２７０はＵＳＢ（universal serial bus）インタフェース等の適宜のインタフェースであってよい。例えば端末インタフェース制御回路１２０は端末装置のＵＳＢマス・ストレージ・クラスのドライバソフトを介するアクセス（単にＭＳＣアクセス）要求を受け付けると共に、セキュリティ処理用のＩＣカードコマンドを受け付ける。端末インタフェース制御回路１２０は、ＭＳＣアクセス要求を伴うデータストレージ処理のための命令及びデータ（単にＭＳＣデータストリームともも称する）が入力されるとこれをＭＳＣバッファ（ＭＳＣＢＵＦ）１２０Ａに格納し、ＩＣコマンドを伴うセキュリティ処理のための命令及びデータ（単にＩＣＣデータストリームとも称する）が供給されるとこれをＩＣＣバッファ（ＩＣＣＢＵＦ）１２０Ｂに格納する。端末インタフェース制御回路１２０は、ＭＳＣアクセス要求がリード要求であるときは、これに応答するリードデータがＭＳＣバッファ１２０Ａに内部転送されるのを待って端末装置１８０に出力し、セキュリティ処理がリード要求を伴うときにはこれに応答するリードデータがＩＣＣバッファ１２０Ｂに内部転送されるのを待って端末装置１８０に出力する。
【００３９】
端末インタフェース制御回路１２０は、ＭＳＣデータストリームをＭＳＣＢＵＦ１２０Ａに格納すると、ＴＲＣＮＴ１４０に転送要求を発行する。ＴＲＣＮＴ１４０は、ＭＳＣアクセス要求がＭＣＲＤ１９０に対する書込み、読出し、又は消去の要求に応じて、バス１４１の利用権獲得、ＢＵＦＦ１４５のリード／ライト制御、及びＭＣＲＤＣＮＴ１６０に対する動作制御を行う。書き込みの場合にＴＲＣＮＴ１４０は、バス１４１の利用権を獲得してバススイッチ１３２をＴＲＣＮＴ１４０側に切換え、ＢＵＦＦ１４５の空き領域に書込みデータを転送し、ＭＣＲＤＣＮＴ１６０の命令キュー（ＩＱＵＥ）１６５に書込みコマンド（書込み命令）を転送し、制御レジスタ（ＣＲＥＧ）１６３を操作する。命令キュー１６５と制御レジスタ１６３に対する操作はバス１３４を経由して行われる。これによってＭＣＲＤＣＮＴ１６０はＢＵＦＦ１４５に格納されている書込みデータをＭＣＲＤ１９０に書込むためのメモリカード１９０の書込み制御を行う。読出しの場合にＴＲＣＮＴ１４０は、ＭＣＲＤＣＮＴ１６０の命令キュー（ＩＱＵＥ）１６５にバス１３４経由で読出しコマンド（読出し命令）を転送し、制御レジスタ（ＣＲＥＧ）１６３を操作する。そして、ＭＣＲＤＣＮＴ１６０からのリードデータの転送要求を待ってバス１４１の利用権を獲得してバススイッチ１３２をＴＲＣＮＴ１４０側に切換え、ＭＣＲＤＣＮＴ１６０によってＢＵＦＦ１４５の空き領域に転送されたリードデータをＭＳＣＢＵＦ１２０Ａに転送する制御を行う。消去の場合にＴＲＣＮＴ１４０は、ＭＣＲＤＣＮＴ１６０の命令キュー（ＩＱＵＥ）１６５にバス１３４経由で消去コマンド（消去命令）を転送し、制御レジスタ（ＣＲＥＧ）１６３を操作して、ＭＣＲＤＣＮＴ１６０に消去コマンドに従ったアドレス領域のデータをＭＣＲＤ１９０から削除させる。ＴＲＣＮＴ１４０は端末装置から受取ったＭＳＣデータストリームの処理を行なっていないときはその状態をＣＰＵ１５０に通知する。
【００４０】
端末インタフェース制御回路１２０は、ＩＣＣデータストリームをＩＣＣＣＢＵＦ１２０Ｂに格納すると、ＣＰＵ１５０に割り込みを要求する。ＣＰＵ１５０はその割込み要求に応答してＩＣＣＢＵＦ１２０ＢのＩＣＣデータストリームを読み込んでＩＣカードコマンドで所持されるセキュリティ処理を実行する。セキュリティ処理に際してＭＣＲＤ１９０のアクセスが必要な場合は、ＴＲＣＮＴ１４０がＭＳＣデータストリームの処理を行なっていないこと条件に、ＭＣＤＣＮＴ１６３にアクセスコマンドを発行する。ＩＣカードコナンドによるセキュリティ処理にリード要求を伴うときＣＰＵ１５０はこれに応答するリードデータをＩＣＣバッファ１２０Ｂに内部転送する。
【００４１】
図１のシステムを更に詳述する。前記端末１８０は携帯電話やＰＣ、自動現金預け払い機、ＩＣカードリーダ・ライタ、ネットワーク端末等の装置であるが、入出力のためのインタフェース（ＩＦ）と演算処理装置を有する装置であれば、この例に限定されるものではない。このようなＩＦとしては、ＵＳＢ（登録商標）、ＭＭＣ（登録商標）ＩＦ、 Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＷｉＭＡＸ（登録商標）、Ｅｔｈｅｒｎｅｔ（登録商標）、ＡＴＡ ＩＦ、ＩＳＯ １４４４３に基づいた非接触ＩＦ等が該当する。ＩＣカード１００はＩＳＯ７８１０で規定されているＩＤ−１やＩＤ−０の形状のＩＣカードであるが、ＵＳＢトークンやメモリカードの形状であってもよく、認証処理などのセキュリティ処理を安全に実施可能なデバイスであればこの限りではない。またメモリカード１９０は、ＳＤ(Secure Digitalの略である)カード、ＭＭＣ(MultiMediaCardの略である)、メモリースティック（登録商標）、コンパクトフラッシュ（登録商標）等のメモリカードに限らず、ＵＳＢメモリやＨＤＤ等の装置、コントローラ付きＮＡＮＤフラッシュ（登録商標）等であっても良く、データストレージ用のデバイスであればこの限りではない。これらの場合、メモリカード制御回路１６０は、対応するデバイスに適した制御回路になるが、本発明は接続するデータストレージ用のデバイスの種類に依らないため、ここでは代表してＭＭＣで実現した場合を記載する。入出力インタフェース１２７及び端末インタフェース制御回路１６７は、ＩＳＯ７８１６で定められたＩＣカードの端子にアサインされていても良いし、別の端子を利用して接続されてもよい。例えば、入出力インタフェース１２７としてＩＣカード端子Ｃ１〜Ｃ８の規格を採用する場合には、Ｃ１：ＶＣＣ、Ｃ４： (D+)、Ｃ５： GND、Ｃ８： (D-)を利用してＵＳＢ通信を行い、Ｃ１： VCC、Ｃ２： ＣＭＤ、Ｃ３：ＣＬＫ、Ｃ５：ＧＮＤ、Ｃ６：ＶＣＣ２、Ｃ７：ＤＡＴＡを利用してＭＭＣ通信を行っても良い。ここでＣ６はＩＣカード１００からメモリカード１９０へ供給する電源のための端子に利用する。この構成のＩＣカード１００が特開２００５−３２２１０９の構成と異なるのは、メモリカード１９０がＩＣカードチップ１０５によりドライブされる点で、その結果、メモリカードへクロックやコマンド、データ、電力を供給するために信号の入出力が逆になる点である。要するに、それらはＩＣカードチップ１０５からメモリカード１９０に供給される。特開２００５−３２２１０９と同様に、ＩＣカード規格の端子とは別の端子を用いてその機能を実現しても良い。ここでメモリカード１９０がコンパクトフラッシュなどのパラレル転送方式のデバイスで、ＩＣカード１００のインタフェースとして割り当てるには数が多すぎる場合、ＩＣカードとは別の端子を実装し、この端子を用いてアクセスすることとしてもよい。上記のＩＣカード１００のインタフェースへの割り当ては、ＩＣカードへ適用した際の、互換性を重視した実装のためのものであり、別の端子を設けて運用が可能ならばこの限りではなく、前述の端子への割り当てもこれに限定されるものではない。
【００４２】
入出力インタフェース１２７を介して送られてきた前記ＩＣＣデータストリームに含まれる命令及びデータは、内部バス１３０を介してＣＰＵ１５０及びメモリ１５５に送られて処理される。ここでＣＰＵ１５０は、演算処理装置の他に、剰余除算などの特定の演算を高速に処理するためのアクセラレータ、更には、マスクＲＯＭ又はＥＥＰＲＯＭ等のプログラムやデータを格納するメモリ、ＳＲＡＭ等のワークメモリ等を含んだものを指す。またＣＰＵ１５０が大容量のデータを格納したい場合には、メモリカード制御回路１６０を介してメモリカード１９０にデータを格納することができる。このとき、メモリカード１９０へ格納するデータは格納したいデータ全体の一部だけでも良く、残りのデータをＣＰＵ１５０が有するＥＥＰＲＯＭに格納しても良い。またデータを格納する際に、ＣＰＵ１５０またはメモリカード制御回路１６０により暗号化して格納しても良い。その際に、格納するデータのハッシュ値をＣＰＵ１５０のＥＥＰＲＯＭに格納し、読出し時にこのハッシュ値と比較することで改ざんの検知を行っても良い。また、本来書き込みたいデータとは別に、書き込みたいデータを隠蔽するためのデータを書き込んでも良く、アドレス変換テーブルやアドレス変換式を用いることで、データの格納場所を分散させても良い。例えばデータを暗号化して格納する場合、暗号化されたデータは元データとの相関がわかりにくい乱数的性質を有するデータに変換される。したがって任意のタイミングで乱数値を書き込むことで、攻撃者に対してどれが正しいデータかをわかりにくくさせる効果がある。
【００４３】
メモリカード１９０はメモリカード制御回路１６０により電力及び転送クロックを供給され、この転送クロックに基づき命令やデータを転送すればよい。ただし、データ転送が非同期なメモリカードインタフェース１６７Ａ，１６７Ｂで接続されている場合は、転送クロックはなくても良い。図１ではメモリカードインタフェース１６７Ａ，１６７Ｂは一度端末装置１８０を経由してメモリカード１９０に接続されていることから、メモリカード１９０用の電源は端末から供給するという方式を採ることも可能である。その場合には、メモリカード１９０への電力を端末装置１８０側で制御することになることから、データを転送したい場合に、何らかの手段を用いて端末装置１８０にメモリカード制御回路１６０からデータ転送開始を通知するか、常にメモリカード１９０の電源を入れておく必要がある。データの通信開始を端末装置１８０に知らせる手段としては、メモリカード制御回路１６０からのクロック信号線を利用する方法や、命令又はデータ転送用の信号線を利用して、データ転送が必要ないときはプルダウンしておき、データ転送が必要になった際にプルアップしてデータ転送開始を通知する仕組みであっても良い。また、メモリカード１９０をＩＣカード１００からのデータを格納する目的の他に、端末装置１８０のデータを格納する目的でも利用したい場合がある。この時、入出力インタフェース１６７の電力供給線またはクロック信号線を利用することで制御を行うことも可能である。
【００４４】
図２には別の端末装置１８０Ａが例示される。端末装置１８０Ａはメモリカード１９０に対する直接アクセス機能を有し、アクセス競合回避の構成を備えることが図１の端末装置１８０と相違する点である。即ち、メモリカード制御回路１６０に信号レベル検出回路（ＳＩＧＤＴＣ）２１０を配置し、端末装置１８０Ａに信号レベル検出回路（ＳＩＧＤＴＣ）２２０を配置し、信号レベル検出回路２１０と２２０との間をメモリカードインタフェース２３０で接続し、信号レベル検出回路２２０とメモリカード１９０間をメモリカードインタフェース２３５で接続した例が示される。メモリカードインタフェース２３０は図１の１６７Ａに対応され、メモリカードインタフェース２３０は図１の１６７Ｂに対応される。２４０は端末装置１８０９がメモリカード１９０をアクセスするときの電力供給方向を示し、２４１はメモリカード制御回路１６０がメモリカード１９０をアクセスするときの電力供給方向を示す。
【００４５】
図３は図２の構成に基づいてメモリカード１９０を端末装置１８０とＩＣカード１００のどちらが制御するかを決定するためのフローチャートである。メモリカード１９０を利用しない場合、消費電力削減のために電源をオフにし、クロックを停止しているとする。ここでＩＣカード１００からメモリカード１９０へのアクセス要求が発生した場合（３１０）、メモリカード制御回路１６０は信号レベル検出回路２１０を用いて、メモリカードインタフェース２３０供給される電力レベルを測定する（３２０）。自分が電力を供給していない状態で、メモリカードインタフェース２３０からの電力が検出される場合、それは端末装置１８０が電力を供給していることから端末装置１８０がメモリカード１９０へアクセス中であることを意味する。このときＩＣカード１００はその電力供給が停止されるまで待って再び判断を行う（３３０）。信号レベル検出回路２１０は、電力が検出されない場合、メモリカード１９０への電力供給を開始し(３４０)、メモリカード１９０へアクセスを行う。逆に端末装置１８０がメモリカード１９０へのアクセス要求を発行する場合（３５０）、端末装置１８０は信号レベル検出回路２２０を用いて、メモリカードインタフェース２３０からの電力供給レベルを測定する（３６０）。自分が電力を供給していない状態で、メモリカードインタフェース２３０からの電力が検出される場合、それはＩＣカード１００が電力を供給していることから、ＩＣカード１００がメモリカード１９０へアクセス中であることを意味する。このとき端末装置１８０はＩＣカード１００からの電力供給が停止するまで待って再び判断を行う（３７０）。電力供給が検出されない場合、端末装置１８０はメモリカード１９０への電力供給を開始し(３８０)、メモリカード１９０へアクセスを行う。ステップ３３０またはステップ３７０において、メモリカード１９０の準備が出来ていない場合、ＩＣカード１００または端末装置１８０に内蔵のメモリを利用して、書き込みデータのキャッシュを行い、書き込みが完了したことにしても良い。このときメモリが揮発メモリならば電源遮断の考慮と書き込みサイズに関する注意が必要であり、不揮発メモリの場合は、書き込みサイズに関する注意が必要になる。メモリが揮発性で、実際の書き込みが終了するまでに電源が切られてしまうと、書き込むはずのデータの保証が出来ない。またキャッシュに用意したデータサイズを超えるデータの書き込み要求が発生した場合には、キャッシュに頼ることはできず、バスが解放されるまで待つ必要が生じる。
【００４６】
このように端末１８０とＩＣカード１００の双方から制御する場合、排他制御の仕組みが複雑になる。図１に示す構成のように、端末装置１８０からのメモリカード１９０へのアクセス要求であっても、前記ＭＳＣデータストリームを用いる場合に代表されるように、前記ＩＣカード１００を経由して書き込む構成にすれば、その制御を簡略化できるという効果がある。以下、その場合の制御形態について詳細に説明する。
【００４７】
端末インタフェース制御回路１２０がＵＳＢのような複数のデータストリームを制御できるインタフェースである場合、認証や鍵交換などのセキュリティ処理のための前記ＩＣＣデータストリームのようなデータストリームを処理する経路と、コンテンツやファイルなどのデータ転送処理のための前記ＭＳＣデータストリームのようなデータストリームを処理する経路とを分けた。これにより、効率的な処理が可能になる。例えば、図１に基づいて説明したように、認証や鍵交換などのセキュリティ処理のためのデータストリーム用のエンドポイントとしてのＩＣＣＢＵＦ１２０Ｂにデータが格納された場合、そのデータはＣＰＵ１５０により読み出され処理される。一方、コンテンツやファイルなどのデータ転送処理のためのデータストリーム用のエンドポイントとしてのＭＳＣＢＵＦ１２０Ａにデータが格納された場合、ＣＰＵ１５０ではなく専用の制御回路を用い、ＣＰＵ１５０のリソースをほとんど消費することなく転送する処理を行なう。そのために、例えば前記転送制御回路１４０、セレクタ１３２、バッファ１４５、命令キュー１６５、及び制御レジスタ１６３に代表される制御モジュールが設けられている。
【００４８】
図６には命令キュー１６５と制御レジスタ１６３の詳細が例示される。命令キュー１６５は、命令コード（ＩＮＳＴ）６１０をキューイングするためのバッファであり、要求種別６１２、要求元６１４、転送サイズ６１６、バッファアドレス６１８、パラメータ６２０を有してもよい。要求種別６１２はリード（読出し）、ライト（書込み）、イレーズ（消去）等のメモリカード１９０へ転送する命令の種別を格納し、ＳＤカードやＭＭＣにおけるコマンドコードを格納しても良い。要求元６１４には処理要求を発行したのが端末装置１８０なのかＣＰＵ１５０なのかに関する情報を格納する。転送サイズは、実際に転送するデータのサイズを格納し、バッファアドレス６１８はバッファ１４５上のどこにデータが格納されるかを表す。パラメータ６２０は付加情報で、メモリカード１９０からデータを呼び出してくる番地やオプション番号、セキュリティパラメータなどを格納する。制御レジスタ６３０は、キューポインタ６３０、ベースポインタ６３２、空きバッファレジスタ６３４、転送要求レジスタ６３６、ライトロックレジスタ６３８、バスイネーブルレジスタ６４０、カードディスエブルレジスタ６４２、処理終了レジスタ６４４を有しても良い。キューポインタ６３０とベースポインタ６３２は命令コードキュー１６５上の番地を表す。通常、メモリカード制御回路１６０はベースポインタ６３２から検索を開始するが、リード処理時にリードのための空きバッファがない場合、ポインタを進めてキューに溜まったライト処理を実行していく。この処理によりバッファに空きが出来た場合、メモリカード制御回路１６０はベースポインタ６３２のリード処理を実行する。転送制御回路１４０又はＣＰＵ１５０からの命令コード６１０をセットしたい場合、命令コードキュー１６５のキューポインタ６３０の位置に格納し、ポインタを一つ進める。空きバッファレジスタ６３４は、バッファ１４５の空き番地を管理するためのレジスタである。通常、メモリカード１９０へのリードライトは５１２バイトなどの規程のデータサイズをベースに行われるため、レジスタが管理するバッファも、このサイズで管理した方が効率的である。例えば、５１２バイト単位で管理する場合、３２ビットのレジスタを用意すれば１６ＫＢ迄のバッファを管理可能となる。転送要求レジスタ６３６はリード要求時に転送回路が入出力制御回路１２０へ転送するデータが、バッファ１４５のどこに格納されているかを表す。この情報は、空きバッファレジスタ６３４と同じ要領で転送したいデータが格納されている領域に“１”をセットし、それ以外の領域に“０”をセットする事で表しても良いし、絶対アドレスや、転送回路１４０との間で有効な相対アドレス、又は固定アドレスを格納することで通知しても良い。転送要求６３６は、端末装置１８０からのリード要求とＣＰＵ１５０からのリード要求を処理するために、２つ以上用意されていても良い。またこのような方式を採る代りにリード要求時のバッファアドレス６１８にこの情報を格納するようにしても良い。ライトロックレジスタ６３８はリード要求時に空きバッファがないとき、追加のライト要求のセットを禁止するためのレジスタである。バスイネーブルレジスタ６４０は、バッファ１４５へのアクセスを、転送回路１４０とバス１３０との間で切替えるためのレジスタである。カードディスエブルレジスタ６４２は、カードが利用できないことを転送回路１４０またはＣＰＵ１５０に通知するためのレジスタである。処理終了レジスタ６４４は命令コードキュー１６５にセットされた処理が完了したことを通知するためのレジスタである。処理終了レジスタ６４４を用いる代りに命令コードの一部に処理終了の通知を格納する領域を設けてもよい。この場合、命令キュー１６３にキューイングされている命令を消去するのは転送制御回路１４０又はＣＰＵ１５０である。メモリカード制御回路１６０のデータ制御部は、要求元以外がキューを消そうとしたときに、要求元６１４の情報を用いてアクセス制限を行っても良い。また、メンテナンスを可能とするために、ＣＰＵ１５０からは転送元が端末１８０の時の要求を削除できるようにしても良い。転送制御回路１４０はキューが消去された場合、リード要求時は処理がリセットされたとして扱っても良い。
【００４９】
図４には転送制御回路１４０の動作フローが例示される。転送制御回路１４０は、端末インタフェース制御回路１２０からの転送要求を割り込みの発生（又はポーリング）によって確認を行う(４１０)。転送要求がある場合、まずそれが書き込み要求かどうかを判断する（４１２）。書き込み要求である場合、転送制御回路１４０は、バッファ１４５へアクセスが可能かどうかを、バスイネーブルレジスタ６４０を読み出すことで確認する（４３２）。バスイネーブルレジスタ６４０がセットされていないならば、バスイネーブルレジスタ６４０をセットし、セレクタ１３２を転送制御回路１４０からバッファ１４５へアクセス可能なように設定を行う(４３６)。バスイネーブルレジスタ６４０が既にセットされているならば、リセットされるまで待ち（４３４）、再び確認を行う。ただし、ＣＰＵ１５０がメモリカード１９０のとのバスが占有されており、端末との取り決めによる一定期間、バスが解放されない状態が続いた場合、エラーとして処理を中断しても良い。セレクタ１３２を切換えてデータ転送可能な状態にした後、転送制御回路１４０はバッファ１４５に空きがあるかどうかを空きバッファレジスタ６３４を用いて確認する（４３８）。空きがない場合はバッファ１４５に空きが出来るまで待機し(４４０)、再びバッファ１４５に空きがあるかどうかを確認する。通常、端末装置１８０から直接メモリカード１９０に対して要求が出される場合、それらは同時に実行されない。すなわち、バッファ１４５に空きがない状態というのは、ＣＰＵ１５０からのメモリアクセスが存在している場合を意味する。従って時間が経てばバッファ１４５の空きが生じることになる。ただし、空きが生じないケースとして、メモリカード１９０に不具合が生じた場合が考えられる。メモリカード制御回路１６０は、メモリカード１９０に不具合が発生したことを検知した場合、カードディスエブルレジスタ６４２をセットし、転送回路１４０にエラーがあることを通知しても良い。カードディスエブルレジスタ６４２はメモリカード１９０へのアクセス要求が発生し、その時メモリカード１９０の初期化が出来なかった場合や、転送エラー後の再初期化処理で失敗した場合などにセットされる。バッファ１４５に空きがある場合、転送制御回路１４０は書き込み要求に基づいた命令を命令キュー１６５にセットし、かつ空きバッファレジスタ６３４をセットする（４４２）。その後、端末インタフェース制御回路内１２０内のデータをバッファ１４５に格納し（４４４）、バスイネーブルレジスタ６４０をリセットすることでバス利用権を解放する（４４６）。転送制御回路１４０は処理終了レジスタ６４４を利用して書き込みが完了したかどうかを判断する(４４８)。また転送回路１４０は命令キュー１６５内の当該命令が削除された事をもって処理の終了を判断しても良い。書き込みが終了したことを確かめると、そのことを端末インタフェース制御回路１２０に通知する。
【００５０】
次に図４において読出し要求に応答する場合(４１４)について説明する。読出し要求が合った場合、転送制御回路１４０は、読出し要求に基づいた命令を、命令キュー１６５にセットする（４６２）。セットされた命令に従ってメモリカード制御回路１６０がメモリカード１９０に対して読出しの処理を行う。この例では、メモリカード１９０からの読出しデータを一時的に蓄えるバッファ１４５の確保はメモリカード制御回路１６０が行っているが、転送制御回路１４０又はＣＰＵ１５０が行っても良い。メモリカード制御回路１６０が行う場合、転送制御回路１４０は、メモリカードからの読出しが終わるまで待つことになる。転送制御回路１４０は転送要求レジスタ６３６と処理終了レジスタ６４４を利用して読出しが完了したかどうかを確かめる。転送要求レジスタ６３６にはバッファ１４５のアドレスが記載されていたり、バッファを複数の領域に分けてその領域のデータの有無を示すビットマップ表示されていてもよい。このアドレス情報が、一意であったり、相対的なアドレスによる通知から計算して求める場合等、他の方式で実現されていてもよい。また端末装置１８０との転送用と、ＣＰＵ１５０との転送用に、転送要求レジスタ６３６と処理終了レジスタ６４４は二組あっても良い。またこれらのレジスタを複数組持つ代りに、命令コード６１０を拡張し、データが格納されたアドレスをＢｕｆｆｅｒ Ａｄｄｒ. ６１８に、終了通知を追加のデータとしてもたせ、転送回路１４０は自分が書き込んだ命令コード１６０を確認することにしてもよい。この場合、転送後に命令キュー１６５内の当該命令を削除するのは転送制御回路１４０の役割になる。転送要求があった場合、転送制御回路１４０は、バッファ１４５へのアクセスが可能かどうかをバスイネーブルレジスタ６４０を利用して確かめる（４６６）。バスイネーブルレジスタ６４０が既にセットされている場合、バスが解放されるまで待つ（４６８）。バスが利用可能になった場合、バスイネーブルレジスタ６４０をセットすることでバス利用権を設定し、セレクタ１３２で転送制御回路１４０からバッファ１４５がアクセス可能なように切換える（４７０）。その後、データを端末インタフェース制御回路１２０に転送し(４７２)、バスイネーブルレジスタ６４０をリセットすることでバス利用権を解放し、命令キュー１６５内の当該命令を削除し、利用中だった空きバッファレジスタ６３４をクリアする(４７４)。これらの処理が終わると、入出力制御回路１２０に完了を通知する（４７６）。
【００５１】
処理が書き込み要求でも読出し要求でもない場合、削除要求かどうかを判断する(４１６)。転送制御回路１４０は削除要求の場合、削除要求に基づいた命令を命令キュー１６５にセットする（４９２）。その命令に従ってメモリカード制御回路１６０がメモリカード１９０に対して削除の処理を行う。セットした後、転送制御回路１４０は削除処理が完了したかどうかを処理終了レジスタ６４４を利用して調べる(４９４)。処理が終了した場合、入出力制御回路１２０へ完了を通知する(４９６)。
【００５２】
要求がこれのどれにも当てはまらない場合、ＣＰＵ１５０に通知して処理をＣＰＵ１５０に任せてもよい(４１８)。このような処理としては、メモリカード１９０のロックやＩＤの読出し、プロテクトの設定、セキュリティ処理などが考えられるが、これらの処理を転送制御回路１４０で処理できるようにしても良い。
【００５３】
図５にはメモリカード制御回路１６０の動作フローが例示される。メモリカード制御回路１６０は、ベースポインタ６３２の位置にある命令コードキュー１６５の内容を参照し、命令コード６１０が存在するかどうかを確認する(５１０)。キューポインタ６３０とベースポインタ６３２の位置が等しい場合は、キューが溜まっていない状態なので、積まれていないと判断しても良い。積まれている場合、命令がリード系の要求であるかを判断する(５１２)。リード系の要求とは、メモリカード１９０から引き出してきた何らかの情報を、バッファ１４５に格納する必要がある要求を指す。リード系の要求である場合は、空きバッファレジスタ６３４に転送サイズ６１６で指定された空き容量があるかどうかを確認する（５１４）。空き容量がない場合、追加のライト要求を発生させないためにライトロックレジスタ６３８をセットする（５１６）。ライト処理をしている間に他のライト系命令が挿入されることで大きな遅延が発生する危険がなかったり、遅延が問題にならない場合は、ライトロック６３８を利用した処理を行わなくても良い。次にベースポインタ６３２の次の命令を調べ（５３０）、ライト系命令が積まれているかどうかを確認する（５３２）。ここでライト系要求が積まれていないならば再びポインタを進めてライト系要求を確認する。また命令がリード系命令であった場合も再びポインタを進めても良い。ここで説明する方式を用いる場合、リード系命令は実行の直前までバッファ１４５を要求しないため、バッファ１４５に空きがないのは、ライト系命令が積まれているか、ＣＰＵ１５０又は転送制御回路１４０へ転送中のデータがあるためであると判断できる。データが転送中の場合、時間が経てば処理が完了してバッファ１４５の空きが生じるが、ライト系命令は処理を進めないと空きバッファが生じないため、ライト処理を優先して実施することで空き容量を確保することができる。端末装置１８０からの転送要求とＣＰＵ１５０からの転送要求により、バッファ１４５のシェアが必要になる場合、お互いに相手の通信量を見積もることは難しい。しかしながら、そのことを想定してバッファ１４５に空きを設けると、片方の通信がないときでもバッファ１４５の一部が空いたままとなるため効率が悪くなる。この方法を用いると、非常に単純な方式ながらも効率的にスケジューリングが行えると言う効果がある。このループはキューポインタ６３０に達するまで行い、その結果、ライト系要求がない場合は(５３４)、再び空きバッファ６３４の状態を確認する。ライト系要求がある場合は、ライト処理を実施する(５４０)。ここでライト処理は、処理５５２，５５４，５５６を併せたものを指す。手順５１４で空きバッファレジスタ６３４に空きがあることがわかった場合、空きバッファレジスタ６３４をセットし、ライトロックレジスタ６３８をセットしているなら、リセットする(５１８)。次にメモリカード１９０用のコマンドの生成を行う(５２０)。ＳＤカードやＭＭＣ等のコマンドは、コマンド番号とパラメータから構成され、これは要求種別６１２とパラメータ６２０を利用することで生成可能である。コマンドを生成すると、それを用いてメモリカード１９０からのデータの読出しを開始する（５２２）。読出しが終了すると(５２４)、転送要求に利用中のバッファ１４５の場所をバッファアドレス６１８または転送要求６３４にセットし、処理終了レジスタ６４４をセットすることで転送終了を通知する(５２６)。
【００５４】
手順５１２でリード系要求でない場合、ライト系要求かどうかを判断する(５５０)。ライト系要求とは、バッファ１４５におかれた何らかの値を、メモリカード１９０に転送する処理が該当する。ライト系要求である場合、メモリカード１９０用のコマンドを手順５２０と同様に生成し(５５２)、メモリカード１９０へのライト処理を開始する(５５４)。この後、命令キュー１６５内の当該命令を削除し、ベースポインタを進め、利用していた空きバッファレジスタ６３４を解放し、ライト終了を通知する(５５６)。このとき転送回路１４０は転送要求レジスタ６３６を確認することで処理の終了を受け取っても良いし、命令キュー１６５内の当該命令が削除された事をもって処理の終了を判断しても良い。
【００５５】
手順５５０で命令がライト系でもない場合、データ転送を伴わない命令と解釈して処理を行う。メモリカード制御回路１６０はコマンドを手順５２０と同様に生成し(５７０)、メモリカード１９０に対する処理を開始する(５７２)。この後、現在のキューを削除し、ベースポインタを進め、処理終了を通知する(５７４)。
【００５６】
以上のような仕組みを採ることで、ＩＣカード１００は、メモリカード１９０のホストとして動作し、端末からはメモリカードリーダライタのように動作し、ＩＣカード１００からは拡張データ領域であるかのように動作させることが可能となる。
【００５７】
上記仕組みを持つＩＣカード１００は、従来のＩＣカードの端末装置と互換性を保った状態で動作可能である。
【００５８】
図７は既存のシステムとの互換性を考えた構成である。ＵＡＲＴＣＮＴ７４０はＵＡＲＴ（Universal Asynchronous Receiver/Transmitter）ようなシリアルインタフェース制御回路、ＯＴＨＣＮＴはその他の制御回路であり、例えば内部バス１３０に接続された回路モジュールである。記号７１０は信号伝播方向が矢印で示された一方向であることを意味する。ＣＬＫＤＴＣ７２０はクロック検出回路、ＬＶＬＤＴＣ７３０は電位検出回路である。
【００５９】
端末装置でＵＡＲＴ（Universal Asynchronous Receiver/Transmitter）が有効である場合、端末装置１８０は電源投入後、端子Ｃ３にクロック、端子Ｃ２にリセット信号を入力するが、メモリカード制御回路１６０がメモリカード１９０の電源をオンにしていない状態でこれらの通信が発生した場合、ＩＣカードチップ１００はその状態をクロック検出回路７２０等で検知できる。このため、ＩＣカード１００は、ＵＡＲＴを利用した通常の動作が期待されていることを認識できてもよい。例えば、端子Ｃ３：７０３からクロックの入力があった場合、クロック検出回路（ＣＬＫＤＴＣ）７２０を利用することでＵＡＲＴ制御回路（ＵＡＲＴＣＮＴ）７４０を動作させるように回路を切替えることが出来る。また、外部より端子Ｃ６に電気的なアクセスがあった場合、ＩＣカード１００は端子Ｃ６が別の目的で利用されていることを検出できるため、メモリカード制御回路１６０の動作をオフにし、別の機能を割り当ててもよい。例えば、メモリカード制御回路１６０が動作されるよりも前に、端子Ｃ６：７０６からの電位が電位検出回路（ＬＶＬＤＴＣ）７３０により検出された場合、端子Ｃ６：７０６を利用する他の制御回路（ＯＴＨＣＮＴ）７５０を利用するように回路を切替える事ができる。
【００６０】
図１に代表される上述の構成を採用することにより、端末装置１８０はそのユーザにより、ＩＣカード１００とメモリカードスロットがついた端末装置であるかのように利用できる。例えば端末装置１８０を携帯電話機とする。携帯電話器はＳＩＭ（登録商標）カードスロットと、メモリカードスロットを持つが、従来の機種ではこの両者に強い相関はなかった。しかし、本発明を適用することにより、ユーザからは全く同じ構成にみえながらも、メモリカード１９０へ格納するデータは端末装置のソフトウエアの脆弱性に関わりなく暗号化され、またアドレススクランブルを施して格納可能であり、またＩＣカード１００内で生成する乱数を利用してメモリカード１９０をロックすることも可能となる。またＩＣカード１００がメモリカード１９０にデータを格納したい場合も、可能な限り安全な方法でメモリカード１９０へデータを格納することが可能である。例えば書き込んだデータは乱数と共に暗号化しておき、そのハッシュ値をＩＣカード１００で保持しておけば、改ざんや盗聴が非常に困難な仕組みを採ることが出来る。またメモリカード１９０側にＩＣカード１００とセキュアセッションを構築できる機能を設ければ、メモリカードインタフェース１６７Ａ，１６７Ｂ上に流れるデータを隠蔽することもできる。
【００６１】
図８にはＩＣカードチップ１０５を適用した第２の例が示される。前記メモリカードのホスト機能を備えたＩＣカードチップ１０５はＵＳＢトークン（ＵＳＮＴＫＮ）８１０等のＵＳＢインタフェース８２０を備えた装置に組み込むことができる。このとき、ＵＳＢトークン８１０はメモリカードスロット８３０を持つ。このメモリカードスロット８３０の端子をＩＣカードチップ１０５のメモリカード制御回路１６０に接続することで、メモリカードスロット付きＵＳＢトークンを実現することができる。この構成を採用することにより、端末装置側の部品数を削減できるという効果がある。また、上記同様に、メモリカード１９０へ書き込むデータをＩＣカードチップ１０５が暗号化やアドレススクランブル、更には予測困難なデータをパスワードとして利用することによるカードロックを行うことができることから、通常のＩＣカードリーダ・ライタのような端末装置を利用して直接メモリカードを利用する場合に比べて安全性を向上させることができるという効果がある。尚、一般的に、トークンは、ＩＣカードと同様に証明書等を格納して持ち運びのできる認証デバイスであるが、ＩＣカードがリーダを必要とするのに対し、トークンではリーダを必要とせず、標準のＵＳＢポート等に接続できたりするものである。
【００６２】
図９にはＩＣカードチップ１０５を適用した第３の例が示される。前記ＩＣカードチップ１０５は、携帯電話会社が発行する契約者情報を記録したＩＣカードであるＳＩＭ（Subscriber Identity Module）カード９１０に適用される。ＳＩＭカード９１０の基板上にＩＣカードチップ１０５が搭載され、メモリカード制御回路１６０からの信号を、同基板上に配置したフラッシュメモリカードインタフェース回路（ＦＭＣＮＴ）９２１とフラッシュメモリ（ＦＭＥＭ）９２２を有する単体チップとしてのフラッシュメモリカードチップ（ＦＭＣＲＤＣＨＰ）９２０へ接続することで、大容量フラッシュメモリ付きＳＩＭカードを実現することができる。フラッシュメモリカードインタフェース回路９２１はメモリカードコントローラ１６０から供給されるコマンドを受けてフラッシュメモリ９２２をアクセスするためのフラッシュメモリコマンドをフラッシュメモリ９２２に発行して制御するフラッシュメモリコントローラとカードホストインタフェース機能を備える。この構成を採用することで、通常は大容量フラッシュメモリを外付けで搭載する場合、単価の安いＩＣチップに複雑で大規模なフラッシュメモリコントローラを搭載する必要があることから、ＩＣカードチップ１０５のコストに大きく影響すると言う問題があった。このとき、メモリカードインタフェース回路付きフラッシュメモリカードチップ９２０を利用することで、複雑なフラッシュメモリコントローラを単価の高いフラッシュメモリ部に持って行くことが出来るため、フラッシュメモリの互換性に関する問題をケアする必要がなくなり、またシリアルインタフェースで通信できることから、配線を簡略化できるという効果がある。
【００６３】
図１０にはＩＣカードチップの変形例が示される。同図に示されるＩＣチップ（ＩＣＣＲＤＣＨＰ）１０７０は、複数のメモリカード制御回路（ＭＣＲＤＣＮＴ）１６０及び１０３０を持ち、複数のメモリカード（ＭＣＲＤ）１９０及び１０２０を接続可能な構成を有する。この場合、メモリカード１９０とメモリカード１０２０は同じ種類のデバイスであっても良いし、違う種類のデバイスであっても良い。メモリカード制御回路の拡張数は３以上であってもよい。例えば図１０においてＩＣカードチップ１０７０はメモリカードリーダライタ（ＭＣＲＤＲＤ／ＷＲ）１０６０に適用される。この構成において、様々なメモリカード仕様をサポートすることで、どんなメモリカードであっても暗号化やアドレススクランブルによりセキュアに管理可能となる効果を奏することができる。また、図１の例と同様にメモリカード１９０を端末装置のデータストレージとして、メモリカード１０２０をＩＣカードチップ１０７０の拡張メモリとして利用するように使い方を分けることも可能である。この場合には、メモリカード制御回路１６０及び１０３０中にバスの競合を回避する仕組みを入れなくても済むという効果がある。ここでは、入出力インタフェースとしてＵＳＢインタフェース（ＵＳＢＩＦ）１０５０をもち、端末インタフェース制御回路（ＴＲＭＩＦＣＮＴ）１０８０は夫々専用バスを介してメモリカード制御回路１６０，１０３０に接続され、図１と同様の構成を備える。
【００６４】
図１１にはＩＣカードチップの更に別の変形例が示される。同図に示されるＩＣチップ（ＩＣＣＲＤＣＨＰ）１１９０は、メモリカード制御回路１６０に代えてＵＳＢ制御回路１１６０を持ち、ＵＳＢデバイスをＵＳＢインタフェース（ＵＳＢＩＦ）１１３０及び１１１０経由で接続可能な構成を有する。先に説明したように、端末装置インタフェース制御回路１１５０がＵＳＢの場合、ファイルなどのデータストリーム対して１４０のような転送制御回路を用いてメモリカード１９０へデータを転送することも可能である。ここでは、ＩＣカードチップ１１９０が処理するデータストリーム以外のデータをそのままＵＳＢＩＦ１１３０、１１１０に受け渡すか、ＣＰＵ１５０が制御する新しいエンドポイントを追加する構成とする。例えば、図１１はＵＳＢハブ１１８０に適用した場合を例示する。この構成を採用することで、ＵＳＢＩＦ１１７０からのデータストリームを端末装置に負荷を与えることなく暗号化する事が可能となる効果がある。
【００６５】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００６６】
例えば、入出力インタフェース制御回路としての端末インタフェース制御回路はＵＳＢインタフェースに限定されず、メモリカードインタフェース制御回路はＭＭＣインタフェースに限定されず、メモリカードはフラッシュメモリカードに限定されず、適宜変更可能である。ＩＣカード用半導体装置は暗号化復号処理又は認証処理等のセキュリティ処理が可能なマイクロコンピュータと同義である。ＩＣカード用半導体装置は図１に示されていないその他の周辺回路や演算回路等を備えてよいことは言うまでもない。
【図面の簡単な説明】
【００６７】
【図１】本発明を適用したＩＣカードの一例を示すブロック図である。
【図２】ＩＣカードからだけでなく端末装置からもメモリカードをアクセス可能にする例を示すブロック図である。
【図３】図２の構成に基づいてメモリカードを端末装置とＩＣカードのどちらが制御するかを決定するためのフローチャートである。
【図４】転送制御回路による処理を示す動作フローチャートである。
【図５】メモリカード制御回路による処理を示す動作フローチャートである。
【図６】命令キューと制御レジスタの詳細を例示する説明図である。
【図７】図１のＩＣカードにおいて従来のＩＣカードとの互換性を保つための構成を例示するブロック図である。
【図８】ＩＣカードチップをメモリカードスロット付きＵＳＢトークンカードに適用した例を示す概略構成図である。
【図９】ＩＣカードチップを大容量フラッシュメモリ付きＳＩＭカードに適用した例を示す概略構成図である。
【図１０】セキュアメモリカードリーダライタに適用したＩＣカードチップの変形例を示す概略構成図である。
【図１１】セキュアＵＳＢハブに適用したＩＣカードチップの変形例を示す概略構成図である。
【符号の説明】
【００６８】
１００  ＩＣカード（ＩＣＣＲＤ）
１０５  ＩＣカードチップ（ＩＣＣＲＤＣＨＰ）
１２０  端末インタフェース制御回路（ＴＲＭＩＦＣＮＴ）
１２０Ａ  ＭＳＣバッファ（ＭＳＣＢＵＦ）
１２０Ｂ  ＩＣＣバッファ（ＩＣＣＢＵＦ）
１２７  入出力インタフェース
１３０  内部バス
１３２  セレクタ１３２
１４０  転送制御回路（ＴＲＣＮＴ）
１４５  バッファ（ＢＵＦＦ）
１５０  中央処理装置（ＣＰＵ）
１５５  内部メモリ（ＭＥＭ）
１６０  メモリカード制御回路（ＭＣＲＤＣＮＴ）
１６３  制御レジスタ（ＣＲＥＧ）
１６５  命令キュー（ＩＱＵＥ）
１６７Ａ、１６７Ｂ  メモリカードインタフェース
１８０  端末装置（ＴＲＭＬ）
１８１Ａ，１８１Ｂ  インタフェース端子
１９０  メモリカード（ＭＣＲＤ）
２７０  入出力インタフェース
【図１】
2009129402.tif 000003
【図２】
2009129402.tif 000004
【図３】
2009129402.tif 000005
【図４】
2009129402.tif 000006
【図５】
2009129402.tif 000007
【図６】
2009129402.tif 000008
【図７】
2009129402.tif 000009
【図８】
2009129402.tif 000010
【図９】
2009129402.tif 000011
【図１０】
2009129402.tif 000012
【図１１】
2009129402.tif 000013