(57)【要約】      （修正有）【課題】ＣＰＵを動作させるソフトウエアのコードがリバースエンジニアリングなどの目的で読み出される事がないようにセキュリティ強度を高めること。【解決手段】ＣＰＵ２０と、オンチップデバッグ回路７０と、命令用メモリ３０とを含む集積回路装置１０であって、ＣＰＵ２０と前記命令用メモリ３０に接続された命令バス５０と、前記命令バス５０とは分離され、ＣＰＵ２０と前記命令メモリ３０以外のメモリ４０が接続されるデータバス６０とを含み、前記ＣＰＵ２０は、前記命令バス５０と接続される第１の端子２２と、前記データバス６０と接続される第２の端子２４と、第１の端子２２から入力された信号を処理する命令コード処理部２６と、第２の端子２４から入力された信号を処理するデータ処理部２８とを含み、前記オンチップデバッグ回路７０は、ＣＰＵ２０に第１の端子２２から入力された信号を参照できないように構成されている。【選択図】図１
2006277333.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、
省ピン型のデバッグツールと通信を行いオンチップデバッグを行うオンチップデバッグ回路と、
ＣＰＵで実行される命令の命令コードが格納された命令用メモリと、
を含む集積回路装置であって、
ＣＰＵと前記命令用メモリに接続された命令バスと、
前記命令バスとは分離され、ＣＰＵと前記命令メモリ以外のメモリが接続されるデータバスとを含み、
前記ＣＰＵは、
前記命令バスと接続される第１の端子と、
前記データバスと接続される第２の端子と、
第１の端子から入力された信号を処理する命令コード処理部と、
第２の端子から入力された信号を処理するデータ処理部と、を含み
前記命令バスを介して読み出された命令の実行を行うように構成され、
前記オンチップデバッグ回路は、
ＣＰＵに第１の端子から入力された信号を参照できないように構成されていることを特徴とする集積回路装置。
【請求項２】
請求項１において、
デバッグ時にＣＰＵが実行する命令コードが格納され、前記命令バスと前記データバスの両方に接続された書き換え可能なメモリを含み、
前記ＣＰＵは、デバッグ時には、前記命令バスを介して前記書き換え可能なメモリに格納された命令コードを読み出して命令の実行を行うように構成されていることを特徴とする集積回路装置。
【請求項３】
請求項１乃至２のいずれかにおいて、
暗号化されたデータを受け取り復号化する復号処理部を含み、
前記復号処理部は、
外部メモリに格納された暗号化された命令コードを受け取り復号化し、
前記命令用メモリは、
書き換え可能なメモリとして構成され、前記復号処理部によって復号化された命令コードが格納されることを特徴とする集積回路装置。
【請求項４】
請求項１乃至３のいずれかに記載の集積回路装置を含むマイクロコンピュータ。
【請求項５】
請求項４に記載のマイクロコンピュータと、
前記マイクロコンピュータの処理対象となるデータの入力源と、
前記マイクロコンピュータにより処理されたデータを出力するための出力装置とを含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路装置、マイクロコンピュータ、及び電子機器に関する。
【背景技術】
【０００２】
近年、ゲーム装置、カーナビゲーションシステム、プリンタ、携帯情報端末、ネットワーク機能を有するDVDレコーダなどの電子機器に組み込まれ、高度な情報処理を実現できるマイクロコンピュータに対する需要が高まっている。
【０００３】
このような組み込み型のマイクロコンピュータ等のＣＰＵを集積したシステムＬＳＩにおいて、ＣＰＵを動作させるソフトウエア（ファームウエア）のコードがリバースエンジニアリングなどの目的で読み出される事がセキュリティの観点から問題となっていた。
【０００４】
従来はもともと暗号化されたコードをＲＯＭに格納するなどして読み出しを防止したり、ＩＣチップ内蔵のＲＯＭにコードを格納することで、外部からの読み出しを防止していた。
【特許文献１】特開２０００−３４７９４２号
【特許文献２】特開平５−３２４４８０号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしＲＯＭのコードを暗号化されていたとしても、何らかの方法で、ＲＯＭコードを復号化してＲＡＭ上に展開してＣＰＵが実行していた。また内蔵ＲＯＭにコードが格納されていたとしても、当然ＣＰＵからは参照可能であった。そのためＣＰＵにＩＣＥ等の省ピン型デバッグツールを接続されてしまった場合、ＩＣＥ経由でＲＡＭ上の復号化されたコード又は内蔵ＲＯＭ上にあるコードが読みとられしまう可能性があった。
【０００６】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、ＣＰＵを動作させるソフトウエアのコードがリバースエンジニアリングなどの目的で読み出される事がないようにセキュリティ強度を高めた集積回路装置等を提供することにある。
【課題を解決するための手段】
【０００７】
（１）本発明は、
ＣＰＵと、
省ピン型のデバッグツールと通信を行いオンチップデバッグを行うオンチップデバッグ回路と、
ＣＰＵで実行される命令の命令コードが格納された命令用メモリと、
を含む集積回路装置であって、
ＣＰＵと前記命令用メモリに接続された命令バスと、
前記命令バスとは分離され、ＣＰＵと前記命令メモリ以外のメモリが接続されるデータバスとを含み、
前記ＣＰＵは、
前記命令バスと接続される第１の端子と、
前記データバスと接続される第２の端子と、
第１の端子から入力された信号を処理する命令コード処理部と、
第２の端子から入力された信号を処理するデータ処理部と、を含み
前記命令バスを介して読み出された命令の実行を行うように構成され、
前記オンチップデバッグ回路は、
ＣＰＵに第１の端子から入力された信号を参照できないように構成されていることを特徴とする。
【０００８】
ここにおいて命令用メモリは、書き換え不可能なメモリ（例えばＲＯＭ、マスクＲＯＭ等）でもよいし、揮発性又は不揮発性の書き換え可能なメモリ（ＲＡＭやフラッシュＲＯＭ等）でもよい。
【０００９】
本発明によればＣＰＵのパスが命令とデータで分離されており、命令のほうのパスは、オンチップデバッグ回路等を介して外部のデバッグモジュールから参照できないように構成されている。
【００１０】
従って、ＩＣＥ等のデバッグツール等を用いてもＣＰＵで実行される命令コードを外部に取り出すことができず、ＩＣＥ等を用いたリバースエンジニアリングに対してセキュリティ強度の高い集積回路装置を提供することができる。
【００１１】
（２）本発明の集積回路装置は、
デバッグ時にＣＰＵが実行する命令コードが格納され、前記命令バスと前記データバスの両方に接続された書き換え可能なメモリを含み、
前記ＣＰＵは、デバッグ時には、前記命令バスを介して前記書き換え可能なメモリに格納された命令コードを読み出して命令の実行を行うように構成されていることを特徴とする。
【００１２】
書き換え可能なメモリは、揮発性メモリ（ＲＡＭ）でもよいし不揮発性メモリ（フラッシュＲＯＭ等）でもよい。
【００１３】
本発明では、ＣＰＵはデバッグ時には命令バスを介して書き換え可能なメモリに格納された命令コードを読み出して命令の実行を行うように構成されている。またオンチップデバッグ回路は、デバッグ時に前記書き換え可能なメモリに格納された命令コードを、前記データバスを介してよみだし可能に構成されている。
【００１４】
従ってデバッグ時に実行された命令コードの内容が知りたい場合には、例えばプログラムカウンタの値で命令コードを特定し、前記データバスを介して書き換え可能なメモリからよみだすようにしてもよい。
【００１５】
このように本実施の形態では命令バスとデータバスが両方接続された書き換え可能なメモリをもち、開発中（デバッグ中）はこの書き換え可能なメモリ上に命令コードを配置することで、命令の実行コードを参照しながらのデバッグが可能になり、効率的なデバッグを行うことができる。
【００１６】
なおＣＰＵが通常実行時（デバッグ時ではない時）には、前記命令バスを介して前記命令用メモリに格納された命令コードを読み出して命令の実行を行うように構成されているので、デバッグが終了すると書き換え可能なメモリに格納されていた命令コードを命令用メモリに格納するようにしてもよい。
【００１７】
（３）本発明の集積回路装置は、
暗号化されたデータを受け取り復号化する復号処理部を含み、
前記復号処理部は、
外部メモリに格納された暗号化された命令コードを受け取り復号化し、
前記命令用メモリは、
書き換え可能なメモリとして構成され、前記復号処理部によって復号化された命令コードが格納されることを特徴とする。
【００１８】
本発明では、前記命令用メモリに格納された復号化された命令コードはＩＣＥ等のデバッグモジュールによって参照することはできない。従って外部メモリを復号化して命令を実行する場合においても復号化された命令コードを外部に取り出すことができず、ＩＣＥ等を用いたリバースエンジニアリングに対してセキュリティ強度の高い集積回路装置を提供することができる。
【００１９】
（４）本発明は、
上記のいずれかに記載の集積回路装置を含むマイクロコンピュータである。
【００２０】
（５）本発明は、
上記記載のマイクロコンピュータと、
前記マイクロコンピュータの処理対象となるデータの入力源と、
前記マイクロコンピュータにより処理されたデータを出力するための出力装置とを含むことを特徴とする電子機器である。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００２２】
１．本実施形態の特徴
図１は、第１の実施の形態の集積回路装置について説明するための図である。
【００２３】
第１の実施の形態の集積回路装置１０はＣＰＵ２０と、オンチップデバッグ回路７０と、命令用メモリ３０と、命令バス５０と、データバス６０とを含む。
【００２４】
命令用メモリ３０は、チップ外から読めないように構成された内蔵メモリであり、ＣＰＵ２０で実行される命令の命令コードが格納されている。命令用メモリ３０は、書き換え不可能なメモリ（例えばＲＯＭ）でもよいし、揮発性又は不揮発性の書き換え可能なメモリ（ＲＡＭやフラッシュＲＯＭ等）でもよい。命令用メモリ３０は、命令バス５０以外の他のバス（例えばデータバス６０等）には接続されておらず、命令バス５０を介してのみ読み出し可能に構成されている。
【００２５】
命令バス５０はＣＰＵ２０と前記命令用メモリ３０に接続されている。
【００２６】
データバス６０は、命令バス５０とは分離され、ＣＰＵ２０と前記命令メモリ３０以外のメモリ（ここではデータ用メモリ４０）が接続される。
【００２７】
前記ＣＰＵ２０は、前記命令バス５０と接続される第１の端子５２と、前記データバス６０と接続される第２の端子２４と、第１の端子２２から入力された信号を処理する命令コード処理部２６と、第２の端子２４から入力された信号を処理するデータ処理部５８とを含む。ＣＰＵ２０は、命令バス５０を介して前記命令用メモリ３０に格納された命令コードを読み出して命令の実行を行うように構成さる。
【００２８】
命令コード処理部２６は、例えば入力された命令コードをフェッチするフェッチ回路や、入力された命令コードをデコードするデコード回路等を含んで構成されている。またデータ処理部５８は、入力されたデータを保持する汎用レジスタ等を含んで構成される。
【００２９】
オンチップデバッグ回路７０は、省ピン型のデバッグツールと通信を行いオンチップデバッグを行う機能を有し、ＣＰＵ２０に第１の端子２２から入力された信号を参照できないように構成されている。
【００３０】
オンチップデバッグ回路７０は、ＲＯＭ、ＲＡＭ、制御レジスタ、ＳＩＯ等を含み、デバッグモードにおいてＣＰＵ２０にモニタプログラムやデバッグコマンドを実行させるために必要な各種名処理（デバッグモジュールとのＩ／Ｏインターフェースや、デバッグコマンドの解析や、ユーザープログラムからモニタプログラムへの割り込み処理等）を行うもので、ＣＰＵの命令レジスタを参照できないように構成されている。
【００３１】
本実施の形態では命令コードが格納された命令用メモリ３０と、データが格納されたデータ用メモリ４０が別個に設けられ、それぞれが分離されたバス（酩酊バス５０、データバス４０）に接続されている。そして命令とデータはＣＰＵの別個の端子（第１の端子、第２の端子）から入力される。
【００３２】
このように本実施の形態ではＣＰＵのパスが命令とデータで分離されており、命令のほうのパスは、オンチップデバッグ回路等を介して外部のデバッグモジュールから参照できないように構成されている。
【００３３】
一般にＩＣＥ等のデバッグモジュールによって命令の実行コードが読めるのは、命令バスとデータバスとデータバスから共にアクセス可能なメモリであるケースである。しかし本実施の形態の命令用メモリ３０は、命令バス５０からはアクセス可能であるが、データバス６０からはアクセスできないように構成されている。
【００３４】
従って、ＩＣＥ等のデバッグツール等を用いてもＣＰＵで実行される命令コードを外部に取り出すことができず、ＩＣＥ等を用いたリバースエンジニアリングに対してセキュリティ強度の高い集積回路装置を提供することができる。
【００３５】
図２は、第２の実施の形態の集積回路装置について説明するための図である。
【００３６】
第２の実施の形態の集積回路装置１０は、第２の実施の形態に加え書き換え可能なメモリ（デバッグ用／汎用メモリ）８０、バスブリッジ８２をさらに含む。
【００３７】
第２の実施の形態において第１の実施の形態と同じ構成要素については図１と同じ番号を付しており、説明を省略する。
【００３８】
書き換え可能なメモリ（デバッグ用／汎用メモリ）８０は、デバッグ時にＣＰＵが実行する命令コードが格納され、前記命令バスと前記データバスの両方に接続される。
【００３９】
書き換え可能な揮発性メモリは命令バスとデータバスに接続されそれらを切り替え可能なバスブリッジ回路８２に接続され、デバッグ時にはバスブリッジ回路８２はデータバスに接続されるようにしても良い。このようにすると、内部デバッグモジュールはデバッグ時に、書き換え可能な揮発性メモリ（デバッグ用／汎用メモリ）８０に格納された命令コードを参照することができる。
【００４０】
書き換え可能なメモリ（デバッグ用／汎用メモリ）８０は、揮発性メモリ（ＲＡＭ）でもよいし不揮発性メモリ（フラッシュＲＯＭ等）でもよい。
【００４１】
本実施の形態ではＣＰＵ２０は、デバッグ時には命令バス５０を介して書き換え可能なメモリ（デバッグ用／汎用メモリ）８０に格納された命令コードを読み出して命令の実行を行うように構成されている。
【００４２】
オンチップデバッグ回路７０は、デバッグ時に前記書き換え可能なメモリ（デバッグ用／汎用メモリ）８０に格納された命令コードを、前記データバスを介してよみだし可能に構成されている。
【００４３】
従ってデバッグ時に実行された命令コードの内容が知りたい場合には、例えばプログラムカウンタの値で命令コードを特定し、前記データバスを介して書き換え可能なメモリ（デバッグ用／汎用メモリ）８０からよみだすようにしてもよい。
【００４４】
このように本実施の形態では命令バス５０とデータバス６０が両方接続された書き換え可能なメモリ（デバッグ用／汎用メモリ）８０をもち、開発中（デバッグ中）はこの書き換え可能なメモリ（デバッグ用／汎用メモリ）８０上に命令コードを配置することで、命令の実行コードを参照しながらのデバッグが可能になり、効率的なデバッグを行うことができる。
【００４５】
なおＣＰＵが通常実行時（デバッグ時ではない時）には、前記命令バスを介して前記命令用メモリに格納された命令コードを読み出して命令の実行を行うように構成されているので、デバッグが終了すると書き換え可能なメモリに格納されていた命令コードを命令用メモリに格納するようにしてもよい。
【００４６】
図３は、第３の実施の形態の集積回路装置について説明するための図である。
【００４７】
第３の実施の形態の集積回路装置１０は、第２の実施の形態に加え復号回路９０をさらに含む。
【００４８】
第２の実施の形態において第１の実施の形態及び第１の実施の形態と同じ構成要素については図１、図２と同じ番号を付しており、説明を省略する。
【００４９】
復号回路９０は、外部メモリ１１０に格納された暗号化された命令コードを受け取り復号化する処理を行う。
【００５０】
そして前記命令用メモリ３０は、ＲＡＭやフラッシュＲＯＭ等の書き換え可能なメモリとして構成され、前記復号回路９０によって復号化された命令コードが格納される。
【００５１】
本実施の形態では、前記命令用メモリ３０に格納された復号化された命令コードはＩＣＥ等のデバッグモジュールによって参照することはできないので、外部メモリを復号化して命令を実行する場合においても復号化された命令コードを外部に取り出すことができず、ＩＣＥ等を用いたリバースエンジニアリングに対してセキュリティ強度の高い集積回路装置を提供することができる。
【００５２】
２．マイクロコンピュータ
図４は、本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【００５３】
本マイクロコンピュータ７００は、ＣＰＵ５１０、キャッシュメモリ５２０、ＲＡＭ７１０，ＲＯＭ７２０、ＭＭＵ７３０ＬＣＤコントローラ５３０、リセット回路５４０、プログラマブルタイマ５５０、リアルタイムクロック（ＲＴＣ）５６０、ＤＲＡＭコントローラ５７０、割り込みコントローラ５８０、通信制御装置（シリアルインターフェース）５９０、バスコントローラ６００、Ａ／Ｄ変換器６１０、Ｄ／Ａ変換器６２０、入力ポート６３０、出力ポート６４０、Ｉ／Ｏポート６５０、クロック発生装置６６０、プリスケーラ６７０及びそれらを接続する汎用バス６８０、デバッグモジュール７４０、専用バス７５０等、各種ピン６９０等を含む。
【００５４】
３．電子機器
図５に、本実施の形態の電子機器のブロック図の一例を示す。本電子機器８００は、マイクロコンピュータ（またはＡＳＩＣ）８１０、入力部８２０、メモリ８３０、電源生成部８４０、ＬＣＤ８５０、音出力部８６０を含む。
【００５５】
ここで、入力部８２０は、種々のデータを入力するためのものである。マイクロコンピュータ８１０は、この入力部８２０により入力されたデータに基づいて種々の処理を行うことになる。メモリ８３０は、マイクロコンピュータ８１０などの作業領域となるものである。電源生成部８４０は、電子機器８００で使用される各種電源を生成するためのものである。ＬＣＤ８５０は、電子機器が表示する各種の画像（文字、アイコン、グラフィック等）を出力するためのものである。  音出力部８６０は、電子機器８００が出力する各種の音（音声、ゲーム音等）を出力するためのものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００５６】
図６（Ａ）に、電子機器の１つである携帯電話９５０の外観図の例を示す。この携帯電話９５０は、入力部として機能するダイヤルボタン９５２や、電話番号や名前やアイコンなどを表示するＬＣＤ９５４や、音出力部として機能し音声を出力するスピーカ９５６を備える。
【００５７】
図６（Ｂ）に、電子機器の１つである携帯型ゲーム装置９６０の外観図の例を示す。この携帯型ゲーム装置９６０は、入力部として機能する操作ボタン９６２、十字キー９６４や、ゲーム画像を表示するＬＣＤ９６６や、音出力部として機能しゲーム音を出力するスピーカ９６８を備える。
【００５８】
図６（Ｃ）に、電子機器の１つであるパーソナルコンピュータ９７０の外観図の例を示す。このパーソナルコンピュータ９７０は、入力部として機能するキーボード９７２や、文字、数字、グラフィックなどを表示するＬＣＤ９７４、音出力部９７６を備える。
【００５９】
本実施の形態のマイクロコンピュータを図６（Ａ）〜図６（Ｃ）の電子機器に組みむことにより、低価格で画像処理速度の速いコストパフォーマンスの高い電子機器を提供することができる。
【００６０】
なお、本実施形態を利用できる電子機器としては、図６（Ａ）、（Ｂ）、（Ｃ）に示すもの以外にも、携帯型情報端末、ページャー、電子卓上計算機、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、ビューファインダ型又はモニタ直視型のビデオテープレコーダ、カーナビゲーション装置等のＬＣＤを使用する種々の電子機器を考えることができる。
【００６１】
ＬＣＤを使用しないもの、例えばネットワーク機能を有するDVDレコーダ等の電子機器でもよい。
【００６２】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【図面の簡単な説明】
【００６３】
【図１】第１の実施の形態の集積回路装置について説明するための図。
【図２】第２の実施の形態の集積回路装置について説明するための図。
【図３】第３の実施の形態の集積回路装置について説明するための図。
【図４】本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【図５】マイクロコンピュータを含む電子機器のブロック図の一例を示す。
【図６】図６（Ａ）（Ｂ）（Ｃ）は、種々の電子機器の外観図の例である。
【符号の説明】
【００６４】
１０  集積回路装置、２０  ＣＰＵ、２２  第１の端子、２４  第２の端子、２６  命令コード処理部、２８  データ処理部、３０  命令用メモリ、４０
データ用メモリ、５０  命令バス、６０  データバス、７０  オンチップデバッグ回路、８０  デバッグ用／汎用メモリ、８２  バスブリッジ、９０  復号回路、９２  メモリインターフェース、５１０、ＣＰＵ、５２０  キャッシュメモリ５３０  ＬＣＤコントローラ、５４０  リセット回路、５５０  プログラマブルタイマ、５６０  リアルタイムクロック（ＲＴＣ）、５７０  DMAコントローラ兼バスＩ／Ｆ、５８０  割り込みコントローラ、５９０  通信制御回路（シリアルインターフェース）、６００  バスコントローラ、６１０  Ａ／Ｄ変換器、６２０  Ｄ／Ａ変換器、６３０  入力ポート、６４０  出力ポート、６５０  Ｉ／Ｏポート、６６０  クロック発生装置（ＰＬＬ）、６７０  プリスケーラ、６８０  汎用バス、６９０  各種ピン、７００  マイクロコンピュータ、７１０  ＲＯＭ、７２０  ＲＡＭ、７３０  ＭＭＵ、７４０  絵バッグモジュール、７５０  専用バス、８００  電子機器、８１０  マイクロコンピュータ（ＡＳＩＣ）、８２０  入力部、８３０  メモリ、８４０  電源生成部８５０  ＬＣＤ、８６０  音出力部、９５０  携帯電話、９５２  ダイヤルボタン、９５４  ＬＣＤ、９５６  スピーカ、９６０  携帯型ゲーム装置、９６２  操作ボタン、９６４  十字キー、９６６  ＬＣＤ、９６８  スピーカ、９７０  パーソナルコンピュータ、９７２  キーボード、９７４  ＬＣＤ、９７６  音出力部
【図１】
2006277333.tif 000003
【図２】
2006277333.tif 000004
【図３】
2006277333.tif 000005
【図４】
2006277333.tif 000006
【図５】
2006277333.tif 000007
【図６】
2006277333.tif 000008