(57)【要約】【課題】半導体集積回路に接続されたＣＰＵのユーザーランド上のアプリケーションから半導体集積回路に特化したデバイスドライバを書くことなく容易に制御し得る半導体集積回路を提供する。【解決手段】半導体集積回路としてのＡＳＩＣ２０は、ＣＰＵ１１と接続し得る高速シリアルインタフェース３０Ｂを備えていると共に、通常のＵＡＲＴモジュール２３と同等のレジスタ仕様を有し、ＣＰＵ側からデータ送受信のためのレジスタアクセスを行うと、そのレジスタアクセスをデバッグコマンドとみなして、ローカルバス２１へのレジスタアクセスを行うダミーデバッグシリアルモジュール２２を備えた。【選択図】図１
2012221461.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと接続し得る高速シリアルインタフェースを備えていると共に、
通常のＵＡＲＴモジュールと同等のレジスタ仕様を有し、ＣＰＵ側からデータ送受信のためのレジスタアクセスを行うと、そのレジスタアクセスをデバッグコマンドとみなして、ローカルバスへのレジスタアクセスを行うダミーデバッグシリアルモジュールを備えたことを特徴とする半導体集積回路。
【請求項２】
前記ダミーデバッグシリアルモジュールは、前記ＣＰＵ側からデータ送受信のためのレジスタアクセスを行うとき、該ＣＰＵ側のシリアルデバイスのシリアル通信を行う部分から当該ダミーデバッグシリアルモジュールのシリアル通信を行う部分までの信号を省いて、該ＣＰＵ側のシリアルデバイスと直接データ送受信を行う、ことを特徴とする半導体集積回路。
【請求項３】
通常のＵＡＲＴモジュールをさらに備え、スイッチ等の切り替えにより、前記ダミーデバッグシリアルモジュールとの切り替えができることを特徴とする請求項１記載の半導体集積回路。
【請求項４】
通常のＵＡＲＴモジュールをさらに備え、ＣＰＵ側から前記高速シリアルインタフェースを介してこのＵＡＲＴモジュールへのレジスタアクセスができると共に、前記ダミーデバッグシリアルモジュールへのレジスタアクセスができることを特徴とする請求項１記載の半導体集積回路。
【請求項５】
前記ダミーデバッグシリアルモジュールが割り込みを通知することができることを特徴とする請求項１ないし３のいずれかに記載の半導体集積回路。
【請求項６】
前記ダミーデバッグシリアルモジュールが、通常のＵＡＲＴモジュールの動作速度の制約を超えた動作機能を備えていることを特徴とする請求項１記載の半導体集積回路。
【請求項７】
前記ダミーデバッグシリアルモジュールが、通常のＵＡＲＴモジュールへのレジスタ設定により、シリアル通信エラーが発生した状態を再現できる機能をさらに備えたことを特徴とする請求項１記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ伝送の際、デジタルデータを１ビットずつ順次伝送するシリアルインタフェースを有する、特定の用途、例えば画像処理等に向けた複数機能の回路を１つにまとめた半導体集積回路に関する。
【背景技術】
【０００２】
従来において、半導体集積回路のデバッグを目的として、シリアルインタフェース（ＰＣＩｅ；Peripheral Component Interconnect Express）を内蔵した半導体集積回路であるＡＳＩＣ（Application Specific Integrated Circuit）と、シリアルインタフェースを内蔵したデバッグ端末とを接続し、シリアル通信によりデバッグ端末からＡＳＩＣのレジスタを操作する方法が開示されている。これによれば、実際のシリアルポートを使い、シリアル通信を行った上で、ＡＳＩＣのシリアル受信側であるデバッグシリアルモジュールがコマンドを解釈し、ローカルバスに対してレジスタアクセスを行う。
【０００３】
また、特許文献１には、特殊なＢＩＯＳを用い、この特殊なＢＩＯＳに対するセットアップ画面からの書き込みにより、ＡＳＩＣをデバッグするときには、ＥＨＣＩホストコントローラを用い、かつレジスタを用いた通信が可能となる非ＵＡＲＴデバイス（例えば、ＵＳＢ２デバッグデバイス）を通信回線として使用し、デバッグを行うとき以外のＡＳＩＣの本来機能の動作を行わせる使用のときには、非ＵＡＲＴデバイスを仮想的なＵＡＲＴモジュールとして通常使用でエミュレーション動作させる構成が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載された発明は、仮想的なＵＡＲＴモジュールをソフトウェア上から動作させるものであるが、ユーザーランドからＣＰＵに接続されたＡＳＩＣのモジュールを動作させるためには、専用のデバイスドライバを用意しなければならない、という問題がある。
【０００５】
ＡＳＩＣをＯＳ上に搭載されているソフトウェアで制御する場合、そのソフトウェアは、ＯＳの書き方に従ったデバイスドライバを書き、このデバイスドライバを介してＡＳＩＣを制御する必要がある。従って、ＡＳＩＣの新規部分を制御するためには新たにデバイスドライバを書く必要があるが、デバイスドライバの記述には手間がかかる。ユーザーランド（ＯＳにおけるカーネルより上層の構成物。アプリケーション、シェル等がこれに該当する。）上に存在するソフトウェアと、デバイスドライバの開発環境などを比較すると、デバイスドライバはデバッグ環境の構築が難しい。このため、ＯＳ上にあるアプリケーションを用いてＡＳＩＣをテストすることには工数上の問題があった。
【０００６】
また、シリアル通信を用いたＡＳＩＣのレジスタ操作は、ＡＳＩＣに接続されたＣＰＵと、それに搭載されるアプリケーションとは別個のものとして用意する必要があり、また、シリアルインタフェースは速度も低速だという問題があった。
【０００７】
本発明は、上述した点に鑑み案出されたもので、半導体集積回路に接続されたＣＰＵのユーザーランド上のアプリケーションから半導体集積回路に特化したデバイスドライバを書くことなく容易に制御し得る半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の半導体集積回路は、ＣＰＵと接続し得る高速シリアルインタフェースを備えていると共に、通常のＵＡＲＴモジュールと同等のレジスタ仕様を有し、ＣＰＵ側からデータ送受信のためのレジスタアクセスを行うと、そのレジスタアクセスをデバッグコマンドとみなして、ローカルバスへのレジスタアクセスを行うダミーデバッグシリアルモジュールを備えたことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、半導体集積回路に接続されたＣＰＵ上で動作するＯＳのユーザーランド上のアプリケーションから、半導体集積回路に特化したデバイスドライバを書くことなく容易に制御し得る半導体集積回路を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の半導体集積回路が半導体制御装置に接続された状態を示す図である。
【図２】従来のＡＳＩＣをデバッグする通常のデバッグ時のシリアル信号データの通常の流れを説明する図である。
【図３】本発明のＡＳＩＣをデバッグする通常のデバッグ時のシリアル信号データの通常の流れを説明する図である。
【発明を実施するための形態】
【００１１】
以下、本発明の半導体集積回路の実施形態を図面を参照して説明する。
＜第１の実施形態＞
図１は、半導体集積回路が半導体制御装置に接続された状態を示す図である。図１において、ＡＳＩＣコントロールハードウエア（Control Hardware）としてのデバッグ用ＰＣ端末１０と、デバッグターゲット（Debug Target）であるＡＳＩＣ２０とが、ＣＰＵ Ｉ／Ｆ、あるいはＰＣＩｅ等の高速シリアルインタフェースにより接続されて成る。図１ではＣＰＵ Ｉ／Ｆを用いている。
【００１２】
ＡＳＩＣコントロールハードウエア１０は、ＣＰＵ１１と、メモリ１２と、ＢＩＯＳ−ＲＯＭ１３と、シリアルモジュール１４と、その他、必要機能モジュール（図示しない）等を含んで構成される。
【００１３】
メモリ１２に格納されたＯＳのカーネル（アプリケーションソフトや周辺機器の監視、ディスクやメモリなどの資源の管理、割り込み処理、プロセス間通信などの基本機能を実装した中核ソフトウェア部分）には、シリアルドライバ（Serial 1/F Driver）１５が搭載されている。このシリアルドライバ１５は、後述するＵＡＲＴモジュール（汎用的なシリアルＩ／Ｆ）２３を操作するためのドライバであり、後述するダミーデバッグシリアルモジュール２２に特化してカスタマイズされたものではない。
【００１４】
また、ＯＳのユーザーランド（上記カーネル以外のソフトウェア部分として、ファイルシステムやデバイスノード、カーネルとユーザーを繋ぐシェル等、オペレーティングシステムとしての基本機能を提供する上で最低限必要とされるソフトウェア部分）には、シリアルドライバ１５を用いて、ＡＳＩＣ２０にアクセスを行うアプリケーション（Application）１６が動作しているものとする。
【００１５】
シリアルモジュール１４は、通常のシリアルデバイスからシリアル通信機能を省いた構成であり、これについては、図２と図３において説明する。
【００１６】
デバッグ時において、ＣＰＵ１１は、ＢＩＯＳ−ＲＯＭ１３に格納された各種ハードウェアコンポーネントを制御するプログラムであるＢＩＯＳプログラム（以下、単にＢＩＯＳという。）を読み込んで起動し、次いでメモリ１２に格納されたＯＳ（Operating System）を読み込んで動作する。
【００１７】
ＡＳＩＣ２０は、高速シリアルインタフェース３０Ｂにローカルバス（local bus）２１が接続され、このローカルバス（local bus）２１に、ダミーデバッグシリアルモジュール（Dummy Debug Serial Module）２２と、通常のＵＡＲＴ（シリアルインタフェース）モジュール２３と、その他、必要な機能モジュール２４が接続されている。
【００１８】
ダミーデバッグシリアルモジュール２２は、通常のＵＡＲＴモジュール２３の動作速度（〜１１５２００ｂｐｓ程度）の制約を超えた動作機能を備え、かつ、通常のＵＡＲＴモジュール２３と同等のレジスタ仕様を有している。
【００１９】
デバッグ用ＰＣ端末１０に備えた高速シリアルインタフェース３０Ａと、ＡＳＩＣ２０に備えた高速シリアルインタフェース３０Ｂとが、シリアルケーブル３１で接続されている。
【００２０】
ダミーデバッグシリアルモジュール２２の内部モジュールのインタフェースは、ダミーデバッグシリアルモジュール２２をマスタ側として、ローカルバス２１にアクセスするためのバスを有していると共に、高速シリアルインタフェース３０からレジスタアクセスされるために、ローカルバス２１に対してスレーブ側のバスを有している。
【００２１】
ダミーデバッグシリアルモジュール２２は、高速シリアルインタフェース３０Ｂからのレジスタアクセスに対して、通常のシリアルモジュールと全く同様に動作する機能を備えている。ダミーデバッグシリアルモジュール２２は、外部からのシリアルポートによる接続を持っていない。
【００２２】
ダミーデバッグシリアルモジュール２２と通常のＵＡＲＴモジュール２３とは、高速シリアルインタフェース３０との接続をスイッチ等により切り替えることができる。ＣＰＵ側から高速シリアルインタフェースを介してＵＡＲＴモジュール２３へのレジスタアクセスができる。
【００２３】
ダミーデバッグシリアルモジュール２２は、高速シリアルインタフェース３０上でシリアル通信エラーが発生すると、高速シリアルインタフェース３０を介してＣＰＵ側へ割り込みを通知する機能を備えていると共に、自身のレジスタに保存したエラーパケットのヘッダーを、通常のＵＡＲＴモジュール２３のレジスタに書き込み（設定、保存）、シリアル通信エラーが発生した状態を再現する機能を備えている。
【００２４】
ダミーデバッグシリアルモジュール２２は、高速シリアルインタフェース３０に対応する図示しないデータバンクレジスタ（ＤＴ）を有しており、ＣＰＵ１１側から、高速シリアルインタフェース３０を介してこのデータバンクレジスタ（ＤＴ）にレジスタアクセスができる。
【００２５】
ダミーデバッグシリアルモジュール２２は、データバンクレジスタ（ＤＴ）に、ＣＰＵ側から高速シリアルインタフェース３０を介してデータ送受信のためのレジスタアクセスが行われると、このレジスタアクセスをローカルバス２１に接続されたスレーブ側のバスを介して受け取り、そのレジスタアクセスをデバッグコマンドとみなして、ローカルバス２１へのレジスタアクセスを行う機能を備えている。
【００２６】
ダミーデバッグシリアルモジュール２２は、データバンクレジスタＤＴに対し、ＣＰＵ１１から高速シリアルインタフェース３０を介して、レジスタライトされると、ライトされた値を内蔵バッファに一時的に蓄積する。ここで、ライトされた値が”ＣＲ（０ｘ０ｃ）”だった場合、いままで保持されたバッファを解釈し、コマンドであるかどうかをチェックする。コマンドとしては、デバッグシリアルとして用意されるべきコマンドとする。
【００２７】
ここで２つ例を挙げる。
例１： ＲＨ ００１２３ｃ（アドレス０ｘ００１２３ｃからデータをハーフワード分リードする)
応答：００１２３ｃ ４４８８（アドレス０ｘ００１２３ｃからデータをハーフワード分リードした結果は０ｘ４４８８だった）
例２： ＷＢ ００１５４ｂ ３１ （アドレス０ｘ００１５４ｂにデータ０ｘ３１を１バイトライトする）
応答：ＯＫ
【００２８】
ダミーデバッグシリアルモジュール２２は、コマンドを正しく認識した場合、ローカルバス２１に対して、そのコマンドに対応するアクセスを行う。そのアクセスに対するローカルバス２１からの応答をもとに、データリード用バッファにコマンドに対する応答を設定する。
【００２９】
ＣＰＵ１１は、この結果を高速シリアルインタフェース３０を介してダミーデバッグシリアルモジュール２２のレジスタＤＴに対してレジスタリードをすることにより、レジスタＤＴからコマンドに対する応答を読み取ることができる。
【００３０】
ダミーデバッグシリアルモジュール２２は、ＣＰＵのＩ／Ｆ側からのレジスタアクセスではシリアルポート操作をしているように見せかけながら、デバッグシリアル同様のレジスタ操作を行う。ダミーデバッグシリアルモジュール２２は、ＣＰＵのＩ／Ｆから見た場合のレジスタアクセスでは、通常のシリアルポートと同様の制御機能を有し、設定後の動作は、シリアルポート経由でデバッグ目的の通信を行っているのと同様の振る舞いを行う。
【００３１】
図２は、従来のＡＳＩＣをシリアルポートを用いたデバッグ環境における、通常のデバッグ時のシリアル信号データの通常の流れを説明する図である。通常のＡＳＩＣデバッグ時には、デバッグ用ＰＣ端末１０を用い、デバッグ対象のＡＳＩＣ２０のシリアルポートから該ＡＳＩＣ２０を操作する。デバッグ用ＰＣ端末１０のシリアルデバイス１６のシリアルポートと、デバッグ対象のＡＳＩＣ２０の通常のデバッグシリアルモジュール２２’のシリアルポートとがシリアルケーブルとで接続されている。
【００３２】
デバッグ用ＰＣ端末１０側のキーボード等の入力装置からシリアルデバイスドライバ１４とＣＰＵ１１を順に経由してシリアルデバイス１６に入力が行われ、その入力信号が、シリアルケーブルを経由し、デバッグ対象のＡＳＩＣ２０の通常のデバッグシリアルモジュール２２’に到達し、このデバッグシリアルモジュール２２Ａが、その信号をデバッグコマンド（例えばレジスタリード、レジスタライトなど）とみなして認識した後に、ローカルバス２１を介して対象のモジュールである通常のＵＡＲＴモジュール２３に対してレジスタアクセスを行う。そして、通常のＵＡＲＴモジュール２３からの応答を待ち、通常のデバッグシリアルモジュール２２’は逆のパスを通って、デバッグ用ＰＣ端末１０側に信号を送出する。
【００３３】
この実施形態によれば、図１に示すダミーデバッグシリアルモジュール２２は、図２に示す信号の流れの一部を省略して高速処理するために、図２に示すデバッグ時のシリアル信号データの通常の流れにおいて、図３のハッチングで示す部分を省略し得るダミーデバッグシリアルモジュール２２を備えている。すなわち、ダミーデバッグシリアルモジュール２２は、図２のシリアルデバイス１４Ａからシリアル通信を行う部分を除いた残り部分であるシリアルモジュール１４と、デバッグシリアルモジュール２２Ａからシリアル通信を行う部分を除いた残り部分であるデバッグシリアルモジュール２２Ａ’とを合わせた内容に等しく構成されている。このため、ダミーデバッグシリアルモジュール２２は、ＣＰＵ１１を経由してシリアルモジュール１４に送出された内容がデバッグシリアルモジュール２２Ａにメッセージとして直接送られ、応答信号についても、同様のカットが行われて、デバッグシリアルモジュール２２から応答内容がシリアルモジュール１４にメッセージとして直接送られ高速処理が行われる。
【００３４】
上記実施形態の半導体集積回路は、ＣＰＵを接続し得る高速シリアルインタフェースを備え、かつ通常のＵＡＲＴ（シリアルインタフェース）モジュールと同等のレジスタ仕様を持ち、ＣＰＵ側からデータ送受信のためのレジスタアクセスを行うと、そのアクセスをデバッグコマンドとみなして、ローカルバスへのレジスタアクセスを行うモジュールを備えた構成であるので、ＣＰＵのＩ／Ｆ側からのレジスタアクセスではシリアルポート操作をしているように見せかけながら、デバッグシリアル同様のレジスタ操作を行い、半導体集積回路に対してＩ／Ｆで接続されたＣＰＵ上で動作しているＯＳのユーザーランド上のアプリケーションから容易に、かつ高速にレジスタを操作し得る。
【００３５】
上記実施形態の半導体集積回路によれば、通常のシリアルポートデバイスとは異なり、その動作にはシリアルポートからの入出力信号を介在することが無く、かつ、ＣＰＵのＩ／Ｆ側からのレジスタアクセスでは通常のシリアルポートデバイスと同様の制御動作を持ちシリアルポート操作をしているように見せかけながら、レジスタ操作に対するデバイスの設定後の動作は、シリアルポートデバイスにシリアルポート経由でデバッグ目的で通信を行っているのと同様の振る舞い（デバッグシリアル同様のレジスタ操作を行う）をするので、半導体集積回路に接続されたＣＰＵ上で動作するＯＳのユーザーランド上のアプリケーションから、半導体集積回路に特化したデバイスドライバを書くことなく容易に制御ができる。
【００３６】
上述した実施形態は以下のようにすることもできる。
【００３７】
本実施形態のＡＳＩＣは、ＣＰＵの接続のために、ＣＰＵのＩ／Ｆもしくは、ＰＣＩｅ等のインタフェースを有し、且つ、通常のＵＡＲＴモジュールと同等のレジスタ仕様を有し、ＣＰＵ側からのデータ送受信のためのレジスタアクセスを行うモジュールを備えたことを特徴とする。
【００３８】
本実施形態のＡＳＩＣは、通常のＵＡＲＴモジュールを有し、スイッチ等の切り替えにより、上記のモジュールとの切り替えができることを特徴とする。
【００３９】
本実施形態のＡＳＩＣは、通常のＵＡＲＴモジュールを有し、上記のモジュールやＣＰＵのＩ／Ｆからの他モジュールへの同時レジスタアクセスができることを特徴とする。
【００４０】
本実施形態のＡＳＩＣは、当該モジュールが割り込みを通知できることを特徴とする。
【００４１】
本実施形態のＡＳＩＣは、上記のモジュールが、通常のＵＡＲＴの動作速度（〜１１５２００ｂｐｓ程度）の制約を超え、動作を行える特徴を更に備えたことを特徴とする。
【００４２】
本実施形態のＡＳＩＣは、上記のモジュールが、該当モジュールへのレジスタ設定により、シリアル通信エラーが発生した状態を作成できる特徴を更に備えたことを特徴とする。
【００４３】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範囲な趣旨および範囲から逸脱することなく、これら具体的に様々な修正および変更が可能である。
【符号の説明】
【００４４】
１０    ＡＳＩＣコントロールハードウエア
１１    ＣＰＵ
２０    ＡＳＩＣ（半導体集積回路）
２１    ローカルバス
２２    ダミーデバッグシリアルモジュール
２３    通常のＵＡＲＴモジュール
３０Ｂ    高速シリアルインタフェース
【先行技術文献】
【特許文献】
【００４５】
【特許文献１】特許第４４１０２９４号公報
【図１】
2012221461.tif 000003
【図２】
2012221461.tif 000004
【図３】
2012221461.tif 000005