(57)【要約】【課題】  演算処理部を機能毎に分割し、使用する機能のみを動作させることにより、大幅に消費電流を低減する。【解決手段】  半導体集積回路装置に設けられたＣＰＵ４において、ｕｓｅ信号生成回路（選択制御信号生成部）１９は、データバスを介してインストラクションレジスタ２０が取り込んだ命令のオペコードをデコードしてｕｓｅ信号（選択制御信号）を生成し、実行部９と演算制御部２１とにそれぞれ出力する。ｕｓｅ信号は、実行部９、および演算制御部２１から、使用する機能ブロックをそれぞれ選択して動作させ、その他の機能ブロックは停止状態となる。【選択図】  図２ 
2005100102.tif 000002
【特許請求の範囲】
【請求項１】
機能ブロック毎に分割された複数の演算処理部と、
入力された命令に基づいて、前記複数の演算処理部のうち、動作させる演算処理部を選択する選択制御信号を生成する選択制御信号生成部とを含んだ中央演算処理装置を備えたことを特徴とする半導体集積回路装置。
【請求項２】
請求項１記載の半導体集積回路装置において、
前記演算処理部は、
機能別に分割され、演算処理を実行する実行部と、
分割された前記実行部をそれぞれ制御する制御部とよりなり、
前記選択制御信号生成部は、動作させる実行部と制御部とにそれぞれ選択制御信号を出力することを特徴とする半導体集積回路装置。
【請求項３】
請求項１または２記載の半導体集積回路装置において、
前記選択制御信号生成部は、命令のオペコードをデコードするデコーダよりなることを特徴とする半導体集積回路装置。
【請求項４】
請求項１〜３のいずれか１項に記載の半導体集積回路装置において、
前記各々の演算処理部はバッファを設け、
前記選択制御信号生成部は、動作させる演算処理部のバッファに選択制御信号を出力し、任意の前記演算処理部を活性化させることを特徴とする半導体集積回路装置。
【請求項５】
非接触タイプのＩＣカードであって、
外部から発行されたコマンドに基づいて動作指示を行うコントローラを備え、
前記コントローラは、
機能ブロック毎に分割された複数の演算処理部と、
入力された命令に基づいて、前記複数の演算処理部のうち、動作させる演算処理部を選択する選択制御信号を生成する選択制御信号生成部とを含んだ中央演算処理装置を備えたことを特徴とするＩＣカード。
【請求項６】
請求項５記載のＩＣカードにおいて、
前記演算処理部は、
機能別に分割され、演算処理を実行する実行部と、
分割された前記実行部をそれぞれ制御する制御部とよりなり、
前記選択制御信号生成部は、動作させる実行部と制御部とにそれぞれ選択制御信号を出力することを特徴とするＩＣカード。
【請求項７】
請求項５または６記載のＩＣカードにおいて、
前記選択制御信号生成部は、命令のオペコードをデコードするデコーダよりなることを特徴とするＩＣカード。
【請求項８】
請求項５〜７のいずれか１項に記載のＩＣカードにおいて、
前記各々の演算処理部はバッファを設け、
前記選択制御信号生成部は、動作させる演算処理部のバッファに選択制御信号を出力し、任意の前記演算処理部を活性化させることを特徴とするＩＣカード。
【請求項９】
演算処理機能別に分割され、入力された命令に基づいて演算処理を実行する複数の演算処理部と、
分割された前記複数の演算処理部をそれぞれ制御する複数の制御部を有する中央演算処理装置において、
いずれか一つ以上の前記演算処理部およびそれに対応する制御部とを動作可能に制御することを特徴とする半導体集積回路装置。
【請求項１０】
請求項９記載の半導体集積回路装置において、
前記演算処理部およびそれに対応する制御部は、前記中央演算処理装置に含まれる制御信号生成部によって動作制御されることを特徴とする半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置における演算処理部の消費電流の低減技術に関し、特に、ＩＣカードに用いられる半導体集積回路装置の低消費電力化に適用して有効な技術に関するものである。
【背景技術】
【０００２】
近年、クレジットカードや電話カードなどの機能を有するＩＣカードが普及しつつある。このＩＣカードは、磁気カードと同じような形状のカードにＣＰＵとメモリとが搭載されており、該ＣＰＵによってメモリのリード／ライトが管理され、暗号処理などをカードそれ自体に持たせ、高セキュリティ機能、および大記憶容量を有している。
【０００３】
また、ＩＣカードには、外部装置との情報伝達方式の１つとして、たとえば、該外部装置との間に機械的結合手段を有する接触タイプ、電波などの情報伝送媒体によって情報を伝達する非接触タイプ、ならびに接触／非接触兼用タイプ、いわゆるデュアルウェイタイプがある。
【０００４】
これらＩＣカードにおいては、電流制約が厳しく、限られた電流規格内で性能や機能などを向上させることが必要とされている。たとえば、ＩＣカードに用いられるマイクロコンピュータなどの半導体集積回路装置では、不使用時に、ＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ）、シフタ、アドレス演算ユニットなどからなる実行部の動作を停止させることによって、該半導体集積回路装置の低消費電力化を図っている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところが、上記のようなＩＣカードに用いられる半導体集積回路装置の低消費電力化技術では、次のような問題点があることが本発明者により見い出された。
【０００６】
ＣＰＵは汎用的であり、複数の演算ユニットなどを持つが、同時に全てを使用しないことが一般的である。使用していない実行部の動作は停止させているが、該実行部を制御する制御部（デコーダ）は、制御信号も保持するために、該制御信号を保持するフリップフロップを毎クロック動作させており、消費電流が大きくなってしまうという問題がある。
【０００７】
特に、電流制限が厳しい非接触タイプのＩＣカードでは、性能や機能などの向上が妨げられてしまう恐れがある。
【０００８】
本発明の目的は、演算処理部を機能毎に分割し、使用する機能のみを動作させることにより、大幅に消費電流を低減することのできる半導体集積回路装置およびＩＣカードを提供することにある。
【０００９】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１１】
本発明による半導体集積回路装置は、機能ブロック毎に分割された複数の演算処理部と、入力された命令に基づいて、複数の演算処理部のうち、動作させる演算処理部を選択するもしくは動作させない演算処理部を選択する選択制御信号（ｕｓｅ信号）を生成する選択制御信号生成部（ｕｓｅ信号生成部）とを含んだ中央演算処理装置を備えたものである。
【００１２】
また、本願のその他の発明の概要を簡単に示す。
【００１３】
本発明によるＩＣカードは、非接触タイプであって、外部から発行されたコマンドに基づいて動作指示を行うコントローラを備え、該コントローラは、機能ブロック毎に分割された複数の演算処理部と、入力された命令に基づいて、複数の演算処理部のうち、動作させる演算処理部を選択する選択制御信号（ｕｓｅ信号）を生成する選択制御信号生成部（ｕｓｅ信号生成部）とを含んだ中央演算処理装置を備えたものである。
【発明の効果】
【００１４】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１５】
（１）演算処理部を機能ブロックごとに分割し、使用する任意の演算処理部のみを動作させることにより、消費電流を大幅に低減することができる。
【００１６】
（２）上記（１）により、半導体集積回路装置の消費電力を大幅に低減することができ、該半導体集積回路装置を用いてＩＣカードを構成することにより、限られた電流規格内で、大幅な性能の向上や機能を追加させることができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１８】
図１は、本発明の一実施の形態によるＩＣカードの説明図、図２は、図１のＩＣカードに備えられた半導体集積回路装置に設けられたＣＰＵのブロック図、図３は、図２のＣＰＵに設けられた実行部の構成を示す回路図、図４は、図２のＣＰＵの動作を示すフローチャート、図５は、図２のＣＰＵに設けられた実行部の動作説明図、図６は、図２のＣＰＵに設けられた汎用レジスタのブロック図、図７は、図２のＣＰＵに設けられた制御部におけるパイプラインステージを示した説明図、図８は、図２のＣＰＵが加算命令とシフト命令とを連続実行した場合のタイミング図、図９は、図２のＣＰＵがメモリアクセス命令を実行した際のタイミング図である。
【００１９】
本実施の形態において、ＩＣカード１は、たとえば、外部装置との間に機械的結合手段を有する接触タイプからなる。ＩＣカード１は、図１に示すように、磁気カードと同じような形状のプラスティックカード２に半導体集積回路装置３が埋め込まれている。
【００２０】
また、プラスティックカード２の表面には、半導体集積回路装置３に設けられた複数の外部端子が露出して設けられており、これら外部端子は、ＩＣカード１がカード端末機の外部端子と機械的に接触することにより、電力供給や情報通信などが行われる。
【００２１】
半導体集積回路装置３は、ＣＰＵ（中央演算処理装置）４、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）７、および暗号コプロセッサ８から構成されている。
【００２２】
ＣＰＵ４は、ＲＯＭ５に格納されたプログラムに基づいてＩＣカード１におけるすべての制御を司る。ＲＯＭ５は、読み出し専用メモリであり、該ＲＯＭ５には、ＩＣカード１の制御プログラムなどが格納されている。
【００２３】
ＲＡＭ６は、揮発性メモリからなり、該ＲＡＭ６は、ＩＣカード１から入出力されるデータを一時的に格納する。ＥＥＰＲＯＭ７は、電気的に消去／書き換えが可能な不揮発性メモリであり、ＲＡＭ６に一時的に格納されたデータなどを格納する。暗号コプロセッサ８は、入出力されるデータの暗号化／復号化（たとえば、ＲＳＡ暗号、ＤＥＳ暗号など）を実行する。
【００２４】
図２は、ＣＰＵ４のブロック図である。
【００２５】
ＣＰＵ４は、実行部（演算処理部）９、および制御部１０から構成されている。実行部９は、たとえば、ＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）実行部（演算処理部、実行部）１１、シフタ実行部（演算処理部、実行部）１２、乗算器実行部（演算処理部、実行部）１３、分岐アドレス計算器実行部（演算処理部、実行部）１４、メモリアドレス計算器実行部（演算処理部、実行部）１５、メモリライトバッファ実行部（演算処理部、実行部）１６、メモリリードバッファ実行部（演算処理部、実行部）１７、および汎用レジスタ実行部（演算処理部、実行部）１８など演算実行部から構成されている。
【００２６】
ＡＬＵ実行部１１は、算術演算や論理演算などの処理を行う。シフタ実行部１２は、データの桁移動を行う。乗算器実行部１３は、乗算を行う。分岐アドレス計算器実行部１４は、分岐アドレスの計算を行い、メモリアドレス計算器実行部１５は、メモリアドレスの計算を行う。メモリライトバッファ実行部１６は、ＲＡＭ６などに書き込むデータを一時的に格納する。メモリリードバッファ実行部１７は、ＲＡＭ６などから読み出したデータを一時的に格納する。汎用レジスタ実行部１８は、実行部９の演算結果やメモリリードバッファ実行部１７に格納されたデータなどを一時的に格納する。
【００２７】
制御部１０は、ｕｓｅ信号生成回路（ｕｓｅ信号生成部、デコーダ、選択制御信号生成部）１９、インストラクションレジスタ２０、および演算制御部２１から構成されている。演算制御部２１は、ＡＬＵ制御部（演算処理部、制御部）２２、シフタ制御部（演算処理部、制御部）２３、乗算器制御部（演算処理部、制御部）２４、分岐アドレス計算器制御部（演算処理部、制御部）２５、メモリアドレス計算器制御部（演算処理部、制御部）２６、メモリライトバッファ制御部（演算処理部、制御部）２７、メモリリードバッファ制御部（演算処理部、制御部）２８、および汎用レジスタ制御部（演算処理部、制御部）２９などの演算制御機能部から構成されている。
【００２８】
ｕｓｅ信号生成回路１９は、インストラクションレジスタ２０に格納された命令に基づいてｕｓｅ信号（選択制御信号）を生成し、実行部９、ならびに演算制御部２１から使用する演算実行部と演算制御機能部とをそれぞれ選択する。このｕｓｅ信号は、実行部９、および演算制御部２１から、使用する演算実行部と演算制御機能部とをそれぞれ判定する。
【００２９】
インストラクションレジスタ２０は、実行中の命令を格納するレジスタである。演算制御部２１は、インストラクションレジスタ２０に格納された命令をデコードし、デコード結果に基づいて制御信号を生成し、生成した制御信号によって実行部９を制御する。ＡＬＵ制御部２２は、インストラクションレジスタ２０に格納された命令に基づいて、ＡＬＵ実行部１１を制御する。
【００３０】
同様に、シフタ制御部２３、乗算器制御部２４、分岐アドレス計算器制御部２５、メモリアドレス計算器制御部２６、メモリライトバッファ制御部２７、メモリリードバッファ制御部２８、ならびに汎用レジスタ制御部２９は、インストラクションレジスタ２０に格納された命令に基づいて、シフタ実行部１２、乗算器実行部１３、分岐アドレス計算器実行部１４、メモリアドレス計算器実行部１５、メモリライトバッファ実行部１６、メモリリードバッファ実行部１７、および汎用レジスタ実行部１８をそれぞれ個別に制御する。
【００３１】
図３は、ＡＬＵ実行部１１、シフタ実行部１２、乗算器実行部１３、分岐アドレス計算器実行部１４、メモリアドレス計算器実行部１５、メモリライトバッファ実行部１６、メモリリードバッファ実行部１７、および汎用レジスタ実行部１８の構成を示す回路図である。
【００３２】
ＡＬＵ実行部１１は、セレクタ１１ａ，１１ｂ、バッファ１１ｃ，１１ｄ、およびＡＬＵ１１ｅから構成されている。セレクタ１１ａ，１１ｂの入力部には、バスがそれぞれ接続されている。
【００３３】
セレクタ１１ａ，１１ｂの出力部には、バッファ１１ｃ，１１ｄがそれぞれ接続されており、該バッファ１１ｃ，１１ｄの出力部には、ＡＬＵ１１ｅが接続されている。
【００３４】
セレクタ１１ｂの出力部には、バッファ１１ｄが接続されている。
【００３５】
シフタ実行部１２は、セレクタ１２ａ，１２ｂ、バッファ１２ｃ，１２ｄ、およびシフタ１２ｅから構成されている。セレクタ１２ａ，１２ｂの入力部には、バスがそれぞれ接続されている。これらセレクタ１２ａ，１２ｂの出力部には、バッファ１２ｃ，１２ｄがそれぞれ接続されており、該バッファ１２ｃ，１２ｄの出力部には、シフタ１２ｅが接続されている。
【００３６】
乗算器実行部１３は、セレクタ１３ａ，１３ｂ、バッファ１３ｃ，１３ｄ、ならびに乗算器１３ｅから構成されている。セレクタ１３ａ，１３ｂの入力部には、バスがそれぞれ接続されており、これらセレクタ１２ａ，１２ｂの出力部には、バッファ１３ｃ，１３ｄがそれぞれ接続されている。そして、バッファ１３ｃ，１３ｄの出力部には、乗算器１３ｅが接続されている。
【００３７】
分岐アドレス計算器実行部１４は、バッファ１４ａ，１４ｂ、および分岐アドレス計算器１４ｃから構成されている。バッファ１４ａ，１４ｂは、バスに接続されており、該バッファ１４ａ，１４ｂの出力部には、分岐アドレス計算器１４ｃが接続されている。
【００３８】
そして、ＡＬＵ１１ｅ、シフタ１２ｅ、ならびに分岐アドレス計算器１４ｃには、セレクタ３０が接続されている。このセレクタ３０は、汎用レジスタ実行部１８に接続されており、ｕｓｅ信号生成回路１９によって生成されたセレクト信号に基づいて、任意の演算結果を該汎用レジスタ実行部１８に出力する。この汎用レジスタ実行部１８には、メモリリードバッファ実行部１７、ならびに乗算器１３ｅの出力部もそれぞれ接続されている。
【００３９】
メモリアドレス計算器実行部１５は、セレクタ１５ａ，１５ｂ、バッファ１５ｃ，１５ｄ、ならびにメモリアドレス計算器１５ｅから構成されている。セレクタ１５ａ，１５ｂの入力部には、バスがそれぞれ接続されており、セレクタ１５ａ，１５ｂの出力部には、バッファ１５ｃ，１５ｄがそれぞれ接続されている。バッファ１５ｃ，１５ｄの出力部には、メモリアドレス計算器１５ｅが接続されており、該メモリアドレス計算器１５ｅの出力部には、アドレスバスが接続されている。
【００４０】
メモリライトバッファ実行部１６は、セレクタ１６ａ、バッファ１６ｂ、およびメモリライトバッファ１６ｃから構成されている。セレクタ１６ａの入力部には、バスが接続されており、このセレクタ１６ａの出力部には、バッファ１６ｂが接続されている。バッファ１６ｂの出力部には、メモリライトバッファ１６ｃが接続されている。メモリライトバッファ１６ｃの出力部には、データバスが接続されている。
【００４１】
また、セレクタ１１ａ，１１ｂ、ＡＬＵ１１ｅ、セレクタ１２ａ，１２ｂ、シフタ１２ｅ、セレクタ１３ａ，１３ｂ、乗算器１３ｅ、分岐アドレス計算器１４ｃ、セレクタ１５ａ，１５ｂ、およびメモリアドレス計算器１５ｅには、演算制御部２１から出力される制御信号が入力されるように接続されており、これらは、該制御信号に基づいて動作する。
【００４２】
さらに、バッファ１１ｃ，１１ｄ、バッファ１２ｃ，１２ｄ、バッファ１３ｃ，１３ｄ、バッファ１４ａ，１４ｂ、バッファ１５ｃ，１５ｄ、ならびにバッファ１６ｂには、ｕｓｅ信号生成回路１９が生成したｕｓｅ信号がそれぞれ入力されるように接続されており、該ｕｓｅ信号に基づいて選択されたバッファが動作する。
【００４３】
次に、本実施の形態における半導体集積回路装置３の動作について説明する。
【００４４】
始めに、図４のフローチャートを用いて、ＣＰＵ４の動作を説明する。
【００４５】
まず、インストラクションレジスタ２０がデータバスを介して命令を取り込む（ステップＳ１０１）。その後、ｕｓｅ信号生成回路１９は、インストラクションレジスタ２０に格納されている命令のオペコードをデコードすることによってｕｓｅ信号を生成し（ステップＳ１０２）、実行部９と演算制御部２１とにそれぞれ出力する。
【００４６】
ｕｓｅ信号は、実行部９、および演算制御部２１から、使用する演算実行部と演算制御機能部とをそれぞれ選択して動作させる。実行部９、および演算制御部２１は、アサートとなったｕｓｅ信号を受けた任意の演算実行部と任意の演算制御機能部とのみが動作し、その他は停止状態となる。
【００４７】
たとえば、インストラクションレジスタ２０に格納された命令が、ＡＤＤ命令であるならば、ＡＬＵ１１ｅを使用するといったように命令の種類から使用する演算器を選択するようにｕｓｅ信号が生成される。
【００４８】
このように、ＡＬＵ実行部１１とＡＬＵ制御部２２とにｕｓｅ信号が入力された際には、該ＡＬＵ実行部１１とＡＬＵ制御部２２とのみが動作し、実行部９およびＡＬＵ制御部２２における他のすべての演算実行部と演算制御機能部とは停止状態となる。
【００４９】
そして、演算制御部２１のうち、ｕｓｅ信号がアサートしているある演算制御機能部（たとえば、ＡＬＵ制御部２２）は、インストラクションレジスタ２０からデータ（命令コード）を取り込み、格納する（ステップＳ１０３）。
【００５０】
続いて、格納したデータ（命令コード）をデコードし（ステップＳ１０４）、該デコードした信号を格納した後（ステップＳ１０５）、該信号を制御信号として、実行部９のうち、ｕｓｅ信号がアサートしているある演算実行部（たとえば、ＡＬＵ実行部１１）に出力し、該演算実行部を制御する（ステップＳ１０６）。
【００５１】
これによって、ＣＰＵ４は、使用する演算実行部と演算制御機能部とのみを動作させることにより、半導体集積回路装置３の消費電力を大幅に低減することができる。
【００５２】
また、ＣＰＵ４における実行部９の動作について、図５の回路図を用いて詳しく説明する。この図５においては、簡単化のため、演算器（ＡＬＵ１１ｅ、シフタ１２ｅ、乗算器１３ｅ、分岐アドレス計算器１４ｃ、メモリアドレス計算器１５ｅ）のみを示しており、該演算器に絞って説明する。各演算器には演算制御部によって生成された制御信号が供給される。
【００５３】
まず、汎用レジスタ実行部１８（図２）に格納されたデータがバスを介して出力される。これら演算器の前には、バッファ（１１ｃ，１１ｄ，１２ｃ，１２ｄ，１３ｃ，１３ｄ，１４ａ，１４ｂ，１５ｃ、１５ｄ）が設けられている。
【００５４】
この場合、バスに信号変化が発生しても、これらバッファが非活性であれば、信号変化が各演算器（たとえば、ＡＬＵ１１ｅ、シフタ１２ｅ、乗算器１３ｄ、分岐アドレス計算器１４ｃ、メモリアドレス計算器１５ｅ）まで伝わらないことになる。よって、使用する演算器の前段に設けられているバッファのみをｕｓｅ信号（後述するＤ１ステージにおいてｕｓｅ信号生成回路１９によって生成される）によって選択して動作させ、動作させたバッファにバスからデータをロードし、使用する演算器のみを動作させる。また、実行される命令によっては、上記演算器の中である複数の演算器がｕｓｅ信号によって選択され、動作されるように制御される。
【００５５】
次に、汎用レジスタ実行部１８について、図６を用いて説明する。
【００５６】
汎用レジスタ実行部１８は、セレクタ１８ａ、レジスタ１８ｂ〜１８ｉ、およびセレクタ１８ｊから構成されている。
【００５７】
セレクタ１８ａには、セレクタ３０（図３）、メモリリードバッファ実行部１７（図３）、ならびに乗算器１３ｄ（図３）から出力されるデータが入力信号として入力されるように接続されている。セレクタ１８ａは、汎用レジスタ制御部２９（図３）から出力される制御信号に基づいて、入力されたデータをセレクトして出力する。
【００５８】
セレクタ１８ａの出力部には、レジスタ１８ｂ〜１８ｉがそれぞれ接続されており、これらレジスタ１８ｂ〜１８ｉのうち、任意のレジスタがｕｓｅ信号によって選択されて動作する。
【００５９】
レジスタ１８ｂ〜１８ｉの出力部には、セレクタ１８ｊの入力部がそれぞれ接続されており、該セレクタ１８ｊは、汎用レジスタ制御部２９（図３）から出力される制御信号に基づいて、入力されたデータをセレクトして出力する。このセレクタ１８ｊから出力されたデータは、バスを介して演算器に出力される。
【００６０】
図７は、制御部１０のパイプラインステージを示した説明図である。
【００６１】
図７においては、上方から下方にかけて、Ｉ０（命令フェッチ）ステージ、Ｄ０（演算ユニットの使用判定）ステージ、Ｄ１（デコード）ステージ、Ｅ０（実行）ステージ、Ｍ０（メモリアクセス）ステージ、およびＷ（ライトバック）ステージをそれぞれ示している。
【００６２】
制御部１０においては、ＡＬＵ制御部２２やシフタ制御部２３といった各演算制御機能部毎に、専用のインストラクションレジスタＲ（図４のステップＳ１０３の処理で格納を行うレジスタ）を有している。これら専用のインストラクションレジスタＲは、Ｄ０ステージで生成されたｕｓｅ信号をイネーブルとして動作する。
【００６３】
このｕｓｅ信号と専用のインストラクションレジスタＲに入力されるクロック信号との論理積を取り、該ｕｓｅ信号がアサートされているインストラクションレジスタＲのクロック信号のみが供給されて動作することになる。
【００６４】
また、これら専用のインストラクションレジスタＲには、デコーダＤがそれぞれ接続されており、個々に接続されたインストラクションレジスタＲの値が変化しない限り、該デコーダＤの出力は変化しないことになる。つまり、使用しないデコーダＤに信号変化を起こさせないようにすることによって、消費電流を低減させている。
【００６５】
さらに、各々のデコーダＤには、専用の制御レジスタＣＲ（図４のステップＳ１０５の処理でデコード信号を格納する）が接続されており、該制御レジスタＣＲは、Ｄ１ステージのｕｓｅ信号をイネーブルとして動作する。このｕｓｅ信号と制御レジスタＣＲに入力されるクロック信号との論理積を取り、ｕｓｅ信号がアサートされている制御レジスタＣＲのみのクロックが供給されて動作する。
【００６６】
以下、パイプラインステージにおける各ステージの制御レジスタＣＲは、ｕｓｅ信号をイネーブルとして動作する。このように、制御部１０においては、使用する機能のクロック信号や論理回路のみを動作させることが可能となっている。
【００６７】
図８は、ＣＰＵ４において、加算命令「ＡＤＤ  Ｒ２，Ｒ０」とシフト命令「ＳＦＴ  Ｒ３，Ｒ１」とを連続実行した場合のタイミング図である。
【００６８】
ＡＤＤ命令では、演算制御部２１におけるＡＬＵ制御部２２、および実行部９のＡＬＵ実行部１１がそれぞれ動作する。また、ＳＦＴ命令では、演算制御部２１におけるシフタ制御部２３、および実行部９のシフタ実行部１２がそれぞれ動作する。
【００６９】
この場合、ｕｓｅ信号を生成するＣＰＵ４を用いることによって、図８における丸印で示した部分において、演算制御部２１における動作しない他の演算制御機能部、ならびに実行部９における動作しない他の演算実行部の信号変化を抑制することができる。
【００７０】
また、消費電力Ｉは、一般に以下の式で定義することができる。
【００７１】
Ｉ＝ＣＶＦ    （式１）
ただし、Ｃ：容量、Ｖ：電源電圧、Ｆ：信号変化の数とする。
【００７２】
ＣＰＵ４における消費電力は、上式の各ブロック毎の総和と定義することができる。
【００７３】
Ｉ＝Ｃ０ＶＦ０＋Ｃ１ＶＦ１＋Ｃ２ＶＦ２＋・・・
ただし、Ｖは一定、Ｃ０，Ｃ１，Ｃ２・・・は、実行部９、制御部１０などのブロック毎の容量とする。
【００７４】
ＣＰＵ４においては、不要な信号変化を抑制することができるので、Ｆ０，Ｆ１，Ｆ２・・・が低減されることになり、ＣＰＵ４全体の消費電力が低減されることになる。
【００７５】
図９は、ＣＰＵ４がメモリアクセス命令「ＭＯＶ．Ｗ＠Ｒｍ、Ｒｎ」を実行した際のタイミング図である。
【００７６】
この場合も、ｕｓｅ信号を生成するＣＰＵ４を用いることによって、図９における丸印で示した部分において、演算制御部２１における動作しない他の演算制御機能部、ならびに実行部９における動作しない他の演算実行部の信号変化を抑制することができる。
【００７７】
それにより、本実施の形態によれば、実行部９、および制御部１０における使用する機能のみを動作させることにより、ＣＰＵ４の消費電力を大幅に低減することができる。
【００７８】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００７９】
たとえば、前記実施の形態では、ＩＣカードが接触型からなる構成としたが、接触型と非接触型とを兼用した、いわゆるデュアルインタフェースＩＣカードまたは非接触型ＩＣカードであってもよい。
【００８０】
この場合、図１０に示すように、ＩＣカードには、半導体集積回路装置３ａとコイル３１とがプラスティックカードに埋め込まれる。コイル３１の両端は、半導体集積回路装置３ａの接続端子にそれぞれ接続されている。このコイル３１は、ＩＣカードの非接触動作時に、カード端末機からの電波を受け、電力供給や情報通信などを行う。
【００８１】
また、プラスティックカードの表面には、半導体集積回路装置３ａに設けられた複数の外部端子が露出して設けられており、これら外部端子は、ＩＣカードが接触動作時にカード端末機の外部端子と機械的に接触することにより、電力供給や情報通信などが行われる。
【００８２】
半導体集積回路装置３ａは、ＲＦ−ＩＤ回路３２、ＣＰＵ４、ＲＯＭ／ＲＡＭ３３、ＥＥＰＲＯＭ７、および暗号コプロセッサ８から構成されている。ＲＦ−ＩＤ回路３２は、ＩＣカードが非接触動作する際に用いられる高周波インタフェース機能であり、接続端子を介してコイル３１の両端部が接続されている。
【００８３】
ＲＯＭ／ＲＡＭ３３は、読み出し専用メモリと揮発性メモリとからなる。読み出し専用メモリには、ＩＣカード１の制御プログラムなどが格納されており、不揮発性メモリは、ＩＣカードから入出力されるデータを一時的に格納する。
【００８４】
また、ＣＰＵ４、ＥＥＰＲＯＭ７、および暗号コプロセッサ８においては、機能や構成などは前記実施の形態と同様であるので説明は省略する。
【図面の簡単な説明】
【００８５】
【図１】本発明の一実施の形態によるＩＣカードの説明図である。
【図２】図１のＩＣカードに備えられた半導体集積回路装置に設けられたＣＰＵのブロック図である。
【図３】図２のＣＰＵに設けられた実行部の構成を示す回路図である。
【図４】図２のＣＰＵの動作を示すフローチャートである。
【図５】図２のＣＰＵに設けられた実行部の動作説明図である。
【図６】図２のＣＰＵに設けられた汎用レジスタのブロック図である。
【図７】図２のＣＰＵに設けられた制御部におけるパイプラインステージを示した説明図である。
【図８】図２のＣＰＵが加算命令とシフト命令とを連続実行した場合のタイミング図である。
【図９】図２のＣＰＵがメモリアクセス命令を実行した際のタイミング図である。
【図１０】本発明の他の実施の形態によるＩＣカードに設けられた半導体集積回路装置、およびコイルの構成を示すブロック図である。
【符号の説明】
【００８６】
１  ＩＣカード
２  プラスティックカード
３  半導体集積回路装置
３ａ  半導体集積回路装置
４  ＣＰＵ（中央演算処理装置）
５  ＲＯＭ
６  ＲＡＭ
７  ＥＥＰＲＯＭ
８  暗号コプロセッサ
９  実行部
１０  制御部
１１  ＡＬＵ実行部（演算処理部、実行部）
１１ａ，１１ｂ  セレクタ
１１ｃ，１１ｄ  バッファ
１１ｅ  ＡＬＵ
１２  シフタ実行部（演算処理部、実行部）
１２ａ，１２ｂ  セレクタ
１２ｃ，１２ｄ  バッファ
１２ｅ  シフタ
１３  乗算器実行部（演算処理部、実行部）
１３ａ，１３ｂ  セレクタ
１３ｃ，１３ｄ  バッファ
１３ｅ  乗算器
１４  分岐アドレス計算器実行部（演算処理部、実行部）
１４ａ，１４ｂ  バッファ
１４ｃ  分岐アドレス計算器
１５  メモリアドレス計算器実行部（演算処理部、実行部）
１５ａ，１５ｂ  セレクタ
１５ｃ，１５ｄ  バッファ
１５ｅ  メモリアドレス計算器
１６  メモリライトバッファ実行部（演算処理部、実行部）
１６ａ  セレクタ
１６ｂ  バッファ
１６ｃ  メモリライトバッファ
１７  メモリリードバッファ実行部（演算処理部、実行部）
１８  汎用レジスタ実行部（演算処理部、実行部）
１８ａ  セレクタ
１８ｂ〜１８ｉ  レジスタ
１８ｊ  セレクタ
１９  ｕｓｅ信号生成回路（ｕｓｅ信号生成部、デコーダ、選択制御信号生成部）
２０  インストラクションレジスタ
２１  演算制御部
２２  ＡＬＵ制御部（演算処理部、制御部）
２３  シフタ制御部（演算処理部、制御部）
２４  乗算器制御部（演算処理部、制御部）
２５  分岐アドレス計算器制御部（演算処理部、制御部）
２６  メモリアドレス計算器制御部（演算処理部、制御部）
２７  メモリライトバッファ制御部（演算処理部、制御部）
２８  メモリリードバッファ制御部（演算処理部、制御部）
２９  汎用レジスタ制御部（演算処理部、制御部）
３０  セレクタ
３１  コイル
３２  ＲＦ−ＩＤ回路
３３  ＲＯＭ／ＲＡＭ
Ｒ  インストラクションレジスタ
Ｄ  デコーダ
ＣＲ  制御レジスタ
【図１】
2005100102.tif 000003
【図２】
2005100102.tif 000004
【図３】
2005100102.tif 000005
【図４】
2005100102.tif 000006
【図５】
2005100102.tif 000007
【図６】
2005100102.tif 000008
【図７】
2005100102.tif 000009
【図８】
2005100102.tif 000010
【図９】
2005100102.tif 000011
【図１０】
2005100102.tif 000012