(57)【特許請求の範囲】
【請求項１】
データ処理システム（１０）において、
アドレス値、データ値、制御値およびリセット信号をモード制御手段（５６）及びバス制御手段（５８）へ通信するバス・インターフェース手段（４０）と、
システム・クロック信号を発生するシステム・クロック回路（４４）と、
前記システム・クロック回路に結合され、前記システム・クロック信号を受け取るシミュレーション・クロック発生器（４６）であって、前記システム・クロック信号に応答して内部条件クロック信号を生成する前記シミュレーション・クロック発生器（４６）と、
前記リセット信号に応答して前記データ処理システムの動作モードを決定する前記モード制御手段（５６）であって、前記バス・インターフェース手段に結合され前記リセット信号を受け取り、前記データ処理システムが第１動作モードで動作しているとき第１論理状態のモード信号を発生し、前記データ処理システムが第２動作モードで動作しているとき第２論理状態のモード信号を発生する前記モード制御手段（５６）と、
前記データ処理システムが前記第１動作モードにあるとき前記内部条件クロック信号と異なる情報値であって任意の種類の情報を含む任意の種類の値である前記情報値を外部回路へ供給し、前記データ処理システムが第２動作モードにあるとき前記内部条件クロック信号を前記外部回路へ供給する前記バス制御手段（５８）であって、前記バス・インターフェース手段に結合され前記リセット信号を受け取り、前記モード制御手段に結合され前記モード信号を受け取り、前記シミュレーション・クロック発生器に結合され前記内部条件クロック信号を受け取り、前記リセット信号及び前記第１論理状態のモード信号に応答して前記情報値を前記外部回路へ供給し、前記リセット信号及び前記第２論理状態のモード信号に応答して前記内部条件クロック信号を前記外部回路へ供給する前記バス制御手段（５８）と
を備えるデータ処理システム（１０）。
【請求項２】
データ・プロセッサ（１０）とエミュレーション・システム（５２）とを備える開発システム（５）において、
前記データ・プロセッサ（１０）は、
アドレス値、データ値、制御値およびリセット信号をモード制御手段（５６）及びバス制御手段（５８）へ通信するバス・インターフェース手段（４０）と、
システム・クロック信号を発生するシステム・クロック回路（４４）と、
前記システム・クロック回路に結合され前記システム・クロック信号を受け取るシミュレーション・クロック発生器（４６）であって、前記システム・クロック信号に応答して内部条件クロック信号を生成する前記シミュレーション・クロック発生器（４６）と、
前記リセット信号に応答して前記データ・プロセッサの動作モードを決定する前記モード制御手段（５６）であって、前記バス・インターフェース手段に結合され前記リセット信号を受け取り、前記データ・プロセッサが第１動作モードで動作しているとき第１論理状態のモード信号を発生し、前記データ・プロセッサが第２動作モードで動作しているとき第２論理状態のモード信号を発生する前記モード制御手段（５６）と、
前記データ・プロセッサが前記第１動作モードにあるとき前記内部条件クロック信号と異なる情報値であって任意の種類の情報を含む任意の種類の値である前記情報値を複数の集積回路端子部（４８）へ供給し、前記データ処理システムが第２動作モードにあるとき前記内部条件クロック信号を前記複数の集積回路端子部（４８）へ供給する前記バス制御手段（５８）であって、前記バス・インターフェース手段に結合され前記リセット信号を受け取り、前記モード制御手段に結合され前記モード信号を受け取り、前記シミュレーション・クロック発生器に結合され前記内部条件クロック信号を受け取り、前記リセット信号及び前記第１論理状態のモード信号に応答して前記情報値を前記複数の集積回路端子部（４８）へ供給し、前記リセット信号及び前記第２論理状態のモード信号に応答して前記内部条件クロック信号を前記複数の集積回路端子部（４８）へ供給する前記バス制御手段（５８）と、
前記バス制御手段に結合され、外部アドレス値、外部データ値、外部制御値、前記リセット信号および前記システム・クロック信号を受け取る前記複数の集積回路端子部（４８）であって、前記データ・プロセッサが前記第１動作モードにあるとき前記情報値を前記エミュレーション・システム（５２）へ通信し、前記データ・プロセッサが前記第２動作モードにありかつ前記リセット信号がアサートされているとき前記内部条件クロック信号を前記エミュレーション・システム（５２）へ通信する前記複数の集積回路端子部（４８）と、
前記システム・クロック信号と前記内部条件クロック信号との間の関係を示す分周比値を記憶する制御レジスタと、を備え、
前記エミュレーション・システム（５２）は、
前記複数の集積回路端子部に結合され、前記外部データ値及び前記外部アドレス値を受け取り、当該外部データ値及び前記外部アドレス値に基づいて前記制御レジスタに記憶されている分周比値が変更されたことを示す書き込み指示信号を生成し当該指示信号をシャドウ制御レジスタ（９０）へ供給するエミュレーション機能回路（７２）と、
前記制御レジスタのコピーを記憶するシャドウ制御レジスタ（９０）であって、前記複数の集積回路端子部の第１部分に結合され前記外部データ値及び前記外部アドレス値を受け取り、前記書き込み指示信号に応答して、当該外部データ値及び外部アドレス値により決定され且つ前記制御レジスタのコピーと関連したシャドウ分周比を記憶する前記シャドウ制御レジスタ（９０）と、
前記複数の集積回路端子部の第２部分に結合され前記リセット信号及び前記システム・クロック信号を受け取る同期回路（６６）であって、前記リセット信号及び前記システム・クロック信号に基づいて同期信号を生成する前記同期回路（６６）と、
前記シャドウ制御レジスタに結合され前記シャドウ分周比を受け取り、前記複数の集積回路端子部の第２部分に結合され前記システム・クロック信号を受け取り、前記同期回路に結合され前記同期信号を受け取るクロック合成回路（９２）であって、前記シャドウ分周比、前記システム・クロック信号及び前記同期信号に基づいて、エミュレーション機能を実行し得る程度に前記内部条件クロック信号と実質的に同様の外部条件クロック信号を発生する前記クロック合成回路（９２）と、を備える、開発システム（５）。
【請求項３】
データ処理システム（１０）により内部信号を外部回路へ供給する方法であって、
システム・クロック回路（４４）を用いて、前記データ処理システム内のシステム・クロック信号を発生するステップと、
前記システム・クロック回路に結合され前記システム・クロック信号を受け取るシミュレーション発生器（４６）を用いて、前記システム・クロック信号に応答して前記内部信号を発生するステップと、
前記データ処理システムを選択的に初期化するリセット信号を受け取るステップと、
前記リセット信号が２つの論理状態のうちの一方の論理状態にあるとき、前記シミュレーション発生器を用いて前記内部信号を発生するステップを繰り返すステップと、
前記リセット信号が前記２つの論理状態のうちの他方の論理状態にあるとき、前記データ処理システムが所定の動作モードにあるか否かを決定するステップと、
前記データ処理システムが前記所定の動作モードで動作しているとき、集積回路端子部（４８）を通じて前記内部信号を前記外部回路へ供給するステップと、
前記データ処理システムが前記所定動作モードで動作していないとき、前記集積回路端子部を通じて任意の多重化された信号を前記外部回路へ供給するステップと
を備える方法。
【請求項４】
データ処理システム（１０）において、
リセット信号をモード制御手段（５６）及びバス制御手段（５８）へ通信するバス・インターフェース手段（４０）と、
システム・クロック信号を発生するシステム・クロック回路（４４）と、
前記システム・クロック回路に結合され前記システム・クロック信号を受け取るシミュレーション・クロック発生器（４６）であって、前記システム・クロック信号に応答して内部条件クロック信号を生成する前記シミュレーション・クロック発生器（４６）と、
前記リセット信号に応答して前記データ処理システムの動作モードを決定する前記モード制御手段（５６）であって、前記データ処理システムが第１動作モードで動作しているとき第１論理状態のモード信号を発生し、前記データ処理システムが第２動作モードで動作しているとき第２論理状態の前記モード信号を発生する前記モード制御手段（５６）と、
前記データ処理システムが前記第１動作モードにあるとき前記内部条件クロック信号と異なる情報値であって任意の種類の情報を含む任意の種類の値である前記情報値を外部回路へ供給し、前記データ処理システムが第２動作モードにあり且つ前記リセット信号がアサートされているとき前記内部条件クロック信号を外部回路へ供給する前記バス制御手段（５８）であって、前記バス・インターフェース手段に結合され前記リセット信号を受け取り、前記モード制御手段に結合され前記モード信号を受け取り、前記シミュレーション・クロック発生器に結合され前記内部条件クロック信号を受け取り、前記リセット信号及び前記第１論理状態のモード信号に応答して前記情報値を前記外部回路へ供給し、前記リセット信号及び前記第２論理状態のモード信号に応答して前記内部条件クロック信号を前記外部回路へ供給する前記バス制御手段（５８）と
を備えるデータ処理システム（１０）。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、一般的に集積回路データ・プロセッサに関する。更に特定すれば、本発明は、プロセッサがリセットされると外部では検出されない、内部発生信号に対応する出力信号を供給することができる、集積回路データ・プロセッサに関するものである。
【０００２】
【従来の技術】
集積回路データ・プロセッサは増々複雑化し、以前は集積回路の外部で実施していた機能を徐々に、内部素子として内蔵するようになっている。集積回路用パッケージを製造するために利用可能な技術が進歩し、設置可能な外部端子即ちピンの数を増加することができるようになったが、ピンの数は、集積回路のパッケージと同様、半導体素子の価格に影響を与えることも、相変わらず真実である。更に、プリント回路基板のアセンブリに利用可能な技術は、ピン数の多いパッケージでは、比較的高価なものとなる。パッケージの物理的サイズも、重要な問題となり得る。これらの要因のために、比較的少数のピンを有する集積回路パッケージに、非常に複雑なデータ・プロセッサを収容する結果となっている。
【０００３】
必要なピン数を少なくする公知の方法の１つに、多数の機能を単一のピンに割り当てる方法がある。ある時点である特定のピンに割り当てられる特定の機能は、ソフトウエア、ハードウエアまたはそれらの組み合わせによって決定される。しばしばマイクロコントローラと呼ばれているある種の集積回路データ・プロセッサは、多くの場合、異なる動作モードにおいて異なる機能を特定のピンに持たせることによって、多数モードで動作することができる。一般的な例として、いわゆる「シングル・チップ・モード」またはいわゆる「拡張モード」のいずれかで動作可能なマイクロコントローラがある。拡張モードでは、集積回路パッケージのピンの内あるものは、マイクロコントローラを外部バスに接続するために必要な、アドレス、データおよび制御接続を設けるために用いられる。このモードでは、マイクロコントローラはメモリや、バスによってのみアクセス可能な周辺素子にアクセスすることができる。シングル・チップ・モードでは、これらのピンは、タイミング機能、並列Ｉ／Ｏ、直列通信等のような、他の入出力（Ｉ／Ｏ）のために用いられる。マイクロプロセッサは、シングル・チップ・モードの間、内部メモリ記憶部と周辺素子とを使用する。
【０００４】
集積回路データ・プロセッサのピンに多数の機能を割り当てることも、開発ツールの設計者にとって、問題を生じる元となる。開発ツールは、集積回路データ・プロセッサのアプリケーション設計者によって用いられ、かれら自身の製品を作るためのハードウエアおよびソフトウエア・システムである。開発システムは、典型的に、いくつかの役割を担わなければならない。まず、開発システムは、集積回路データ・プロセッサの内部状態に関してできるだけ多くの情報を提供し、エラー源や動作状態の特徴(characaterization)の識別を補佐しなければならない。開発システムは、開発中のソフトウエアのコードが最終的にはマイクロプロセッサ内部の不揮発性メモリに常駐するとしても、それらが集積回路外部のメモリに常駐できるようにしなければならない。また、開発システムは、最終的に生産規模で用いられる集積回路の機能性(functationality)を、できるだけ正確に複製できなければならない。例えば、シングル・チップ・モードでマイクロコントローラを用いる製品の開発を可能にするよう意図された開発システムは、常に同じマイクロコントローラまたは非常に類似したものを、拡張モードで用いなければならず、更に、シングル・チップ・モードでは使用できるが拡張モードでは使用できない全てのピン機能を交換(replace)またはエミュレート(emulate)するのに必要な全てのロジックを含んでなければならない。
【０００５】
多くの開発システムの具体的な課題を１つあげると、開発システムによって必要とされる代替機能のために多重化データを通信する集積回路ピン上にクロック信号が供給されていないときに、マイクロコントローラからエミュレーションシステムへ、内部クロックを反映するクロック信号を供給することである。かかる状況では、クロック信号を合成し、多重化データの一部である残りの信号が妨害されずにピンに出力される外部回路を、エミュレーション・システム内で開発すればよい。クロック信号の外部合成は、この問題に対する適切な解決案であるが、エミュレーション・システムによって発生される合成信号を、マイクロコントローラによって用いられる実際の信号と同期させる機構が必要となる。同期段階は、通常外部素子には使用可能とされていない信号については特に問題がある。合成信号を同期させるという問題に加えて、開発システムの設計者は、マイクロコントローラ内の信号特性が変更し得るという可能性にも直面する。かかる変更が認識できず、開発システムによって必要とされる別の機能のために集積回路のピンを用いなければならないために、マイクロコントローラが外部に信号を供給できない場合、エミュレーション・システムによる信頼性の高い外部再生は不可能であろう。
【０００６】
【発明が解決しようとする課題】
したがって、これまで外部では見ることができなかった内部発生信号にアクセスすることができる集積回路データ・プロセッサが必要とされている。この必要性は、かかる内部発生信号を常に正確にシミュレートしなければならない開発システムによって、集積回路データ・プロセッサがエミュレートされるときに、特に例証されている。
【０００７】
【課題を解決するための手段】
先に述べた必要性は、本発明によって実現される。即ち、第１形態では、データ処理システムが提供される。このデータ処理システムは、リセット信号を通信するバス・インターフェース回路と、システム・クロック信号を通信するシステム・クロック回路とを含む。シミュレーション・クロック発生器がシステム・クロック回路に接続され、システム・クロック信号を受ける。シミュレーション・クロック発生器は、システム・クロック信号に応答して、内部条件クロック信号(internal conditioned clock signal)を発生する。モード制御回路がデータ処理システムの動作モードを決定する。モード制御回路は、データ処理システムが第１動作モードで動作しているとき第１論理状態のモード信号を発生し、データ処理システム第２動作モードで動作しているとき第２論理状態のモード信号を発生する。バス制御回路は、データ処理システムが第１動作モードのとき第１情報値を発生し、データ処理システムが第２動作モードのとき内部条件クロック信号を発生する。バス制御回路は、バス・インターフェース回路に接続されてリセット信号を受け、モード制御回路に接続されてモード制御信号を受け、更にシミュレーション・クロック発生器に接続されて内部条件クロック信号を受ける。
【０００８】
これらおよびその他の特徴ならびに利点は、添付図面に関連付けられた以下の詳細な説明から、より明確に理解されよう。図面は本発明の唯一の形状を表わすことを意図するものではないことを指摘するのは重要なことである。
【０００９】
【実施例】
マイクロコントローラは、典型的に、シリコン・マイクロチップ上のコンピュータ・システムとして記述することができる。マイクロコントローラは、中央処理ユニット（ＣＰＵ）、メモリ、ならびに通信モデュール、タイミング・モデュール、アナログ／デジタル変換器、およびその他の必要なモデュールといった種々の周辺素子を含む。マイクロコントローラは、拡張即ちエミュレーション・モードで動作することができ、このモードではオンチップ・コンピュータ・システムが外部素子に見ることができる。例えば、通常動作モードでは、メモリのような外部リソースがマイクロコントローラ外部に常駐し、外部バス端子を通じてアクセス可能となる。同様に、シングル・チップ動作モードでは、アクセスされるリソースの全てがマイクロコントローラ内に常駐している。シングル・チップ動作モードでは、外部メモリは不要である。したがって、通常モードにおいてアドレス、データ、および制御情報を通信する外部バス端子は、入出力ポートのような別の機能のために用いることができる。加えて、エミュレーション動作モードでは、マイクロコントローラの内部動作(internal activity)が、エミュレーションの目的のために外部に提示される。
【００１０】
また、マイクロコントローラはシングル・チップ動作モードで動作することもよくあり、このモードでは、オンチップ・コンピュータ・システムに関連する、全てではなくとも殆どの内部信号は外部素子には見えない。シングル・チップ動作モードでは、マイクロコントローラは、単一集積回路チップ上の全コンピュータ・システムに必要なリソースを全て含んでおり、外部素子からの情報を必要としない。シングル・チップ動作モードにあるときは、拡張動作モードに関連するピンは、入出力通信ポートとして、および種々の他の機能のために機能する。エミュレーション・モードでは、開発システムが実際にマイクロコントローラを拡張モードで動作させて、マイクロコントローラの内部動作の外部可視性(external visibility)を保存する。アプリケーションにとって、マイクロコントローラとエミュレートされるシステムとの組み合わせは、マイクロコントローラがシングル・チップ・モードで動作しているかのように見える。多重化された集積回路のピンがエミュレーション・データを開発システムに供給するので、開発システムは、マイクロコントローラの種々の機能の動作をエミュレートする様々な回路を通じて、これら多重化ピンのシングル・チップ・モードの機能を交換しなければならない。アプリケーションには、開発システムはシングル・チップ・モードで動作しているマイクロコントローラのように見える。しかしながら、開発システムは、マイクロコントローラの内部コンピュータシステムの完全な可視性を与えることができる。
【００１１】
先に述べたように、多重化データを通信する集積回路ピン上にクロック信号が供給されているとき、内部クロックを反映するクロック信号をマイクロコントローラから開発システム即ちエミュレーション・システムに供給することは困難である。クロック信号を合成し、多重化データの一部である残りの信号が妨害されずにピンに出力されるためには、外部回路を開発システム内に設けなければならない。したがって、開発システムによって発生される合成信号を、マイクロコントローラによって用いられる実際の信号と、同期させる機構を設けなければならない。同期段階には、通常外部素子には使用可能とされていない信号については、特に問題がある。合成信号の同期を取る問題に加えて、開発システムの設計者は、マイクロコントローラ内の信号特性が変更し得るという可能性にも直面する。かかる変更が認識できず、開発システムによって必要とされる別の機能のために集積回路のピンを用いなければならないために、マイクロコントローラが外部に信号を供給できない場合、エミュレーション・システムによる信頼性の高い外部再生は不可能であろう。
【００１２】
上述の問題は、各々開発システムにおいて用いられている種々のデータ・プロセッサで遭遇したものである。タイミングを図１１に示した従来のデータ・プロセッサでは、ECLOCK（クロック）信号、Read/反転Write（Ｒ／反転Ｗ）機能、およびロード命令レジスタ（ＬＩＲ）機能は、全て単一の外部集積回路ピンを通じて通信されるように多重化されている。従来のマイクロコントローラは独特の解決法を提供している。この解決法では、同期パルスがECLOCK信号の立ち下がりエッジで発生され、マイクロコントローラが所定動作モードで動作しているときのリセット動作の間に、外部エミュレーション・システムに供給される。同期パルスは、ECLOCK信号の立ち下がりエッジのみを指示し、実際のECLOCK信号自体を指示するものではない。リセット動作が実行されないと、ECLOCK信号は外部システムに供給されない。この場合、ECLOCK信号を供給するピンは、Ｒ／反転ＷおよびＬＩＲ機能を提供する。このように、従来技術のマイクロコントローラは、エミュレーション・システムによって供給される合成信号を同期させる解決案を提供するものである。しかしながら、同期される信号の特性がマイクロコントローラの中央プロセッサによって変更された場合、リセットがアサート(assert)されているとピンはECLOCK信号以外の信号を供給するので、この変更はエミュレーション・システムには正確に反映されない。
【００１３】
本発明のこの実施例では、データ・プロセッサの集積回路端子の１本が、多重化データを外部素子と通信しなければならない。リセット信号がアサートされているリセット動作の間、所望の内部クロック信号がこの集積回路端子に送出され、外部開発システムが内部クロック信号を用いて、エミュレーション動作を同期化することができる。供給されるのは、所望の内部クロック信号であって、単に内部クロック信号のエッジではない。図１１に示される従来技術の素子が供給するのは内部クロック信号の立ち下がりエッジだけであるので、周波数情報の提供のみに限定される。対照的に、本願に開示される発明は、クロック信号のエッジだけではなく内部信号が供給されるので、デューティ・サイクル、位相情報、および周波数情報を提供することができる。上述の集積回路端子は、リセット動作の実行中必要とされないものとすべきであり、リセット信号がニゲート(negation)されたときに、この集積回路端子は多重化信号の通信というそれ自体の通常機能に戻ることを指摘しておく。加えて、リセット信号をニゲートするとき、外部開発システムは、エミュレーション動作中に用いるために、内部クロック信号を合成する。
【００１４】
更に、本発明のこの実施例は、書き込み動作の外部可視性を複数のレジスタに提供し、これらのレジスタが、データ・プロセッサがエミュレーション・モードにあるとき、複数の集積回路端子の内別の１本を通じて、関連のある信号パラメータを制御する。エミュレーション・モードの間、データ・プロセッサはショー・サイクル機構(show-cycle mechanism)によって、内部バス・サイクルの外部可視性を与える。ショー・サイクル機構は内部アドレスおよびデータを外部バス端子に供給し、外部バス制御信号の固有の挙動が得られる。適用可能な内部信号挙動を行う動作は、ショー・サイクル機構を通じて外部に指示される。この外部可視性によって、エミュレーション・システムは、対応する信号パラメータに対応する同様の変化をその中で生じることができる。したがって、開発システムは、信号パラメータが動作中に変更されても、エミュレーション動作を正確に同期させることができる。
接続構成(connectivity)の説明
図１は開発システム５を示す。開発システム５は、データ処理システム１０、エミュレーション・システム５２およびアプリケーション１００を含む。データ処理システム１０は、バス２８、複数の集積回路端子２４、複数の集積回路端子２６、複数の集積回路端子３０、複数の集積回路端子３２、および複数の集積回路端子３４を介して、エミュレーション・システム５２に結合されている。エミュレーション・システム５２は、システム・クロック信号、外部条件クロック信号、リセット信号、およびアプリケーション・バス(application bus)を通じて、アプリケーション１００に結合されている。アプリケーション・バスは、バス２４，２６，３０，３２，３４を通じて転送される信号のような信号を、アプリケーションに供給する。ここでは図示しないが、データ処理システム１０は、条件クロック信号に同期される複数の信号を供給することもできる。
【００１５】
データ処理システム１０は、中央処理ユニット（ＣＰＵ）１２、タイマ回路１４、システム統合回路１６、直列通信回路１８、アナログ／デジタル（Ａ／Ｄ）変換器２０、およびスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）２２を含む。システム・クロック信号は、システム統合回路(system integration circuit)２２、ならびにここには図示されていないデータ処理システム１０の他の部分およびエミュレーション・システム回路に接続されている。
【００１６】
図２は、本発明を利用したデータ処理システム１０のシステム統合回路１６の一部を示す。システム統合回路１６は、バス・インターフェース・ユニット４０、外部バス制御部４２、システム・クロック回路４４、シミュレーション・クロック発生器４６、および複数のバス端子４８を含む。システム統合回路１６のバス・インターフェース・ユニット４０は、バス３６を通じて、データ処理システム１０の残りの部分に結合されている。バス・インターフェース・ユニット４０は、内部アドレス・バス、内部データ・バス、内部制御バス、および内部リセット・バスを通じて、シミュレーション・クロック発生器４６と外部バス制御部４２の双方に結合されている。システム・クロック回路４４は、システム・クロック信号を、シミュレーション・クロック発生器４６および複数の端子４８に供給する。シミュレーション・クロック発生器４６は、内部条件クロック信号を外部バス制御部４２に供給する。外部バス制御部４２は、外部アドレス・バス、外部データ・バス、外部制御バス、および外部リセット信号を通じて、複数のバス端子４８に、双方向的に結合されている。複数のバス端子４８は、バス２８を通じてエミュレーション・システム５２に結合されている。
【００１７】
図３に外部バス制御部４２を更に詳しく示す。外部バス制御部４２は、バス制御回路５８とマルチプレクサ制御回路５６とを含む。内部アドレス・バス、内部データ・バス、内部制御バス、および内部リセット・バスは、マルチプレクサ制御回路５６とバス制御回路５８の双方に接続されている。内部条件クロック信号はバス制御回路５８に供給される。マルチプレクサ制御回路５６はエミュレーション・モード信号によって、バス制御回路５８に結合される。
【００１８】
図４にバス制御回路５８をより詳細に示す。バス制御回路５８は、マルチプレクサ６０とバス・マルチプレクサ６２とを含む。内部データ・バス、内部制御バス、内部リセット信号、および内部アドレス・バスの通信は、バス・マルチプレクサ６２を介して行われる。バス・マルチプレクサ６２は、外部アドレス・バス、外部データ・バス、外部リセット信号、および外部制御信号の通信を行う。内部アドレスバス、内部条件クロック信号、内部リセット信号、およびエミュレーション・モード信号が、マルチプレクサ６０に供給される。マルチプレクサ６０は、多重化エミュレータ信号(multiplexed emulator signal)を外部アドレス信号線に出力する。多重化エミュレータ信号は、単一で、またはここに示したバスの内他の線を通じても供給可能であることは理解されよう。図４は、本発明の可能な実施形態の一例としてのみ提示されたものである。
【００１９】
図５にエミュレーション・システム５２を詳細に示す。エミュレーション・システム５２は、クロック条件設定回路７４、同期回路６６、ＡＮＤゲート６８、ＡＮＤゲート７０、およびエミュレータ機能回路７２を含む。バス２８は、システム・クロック信号、外部データ・バス、外部アドレス・バス、外部制御バス、および外部リセット信号をエミュレーション・システム５２に供給する。外部リセット・バスは、エミュレータ機能回路７２の第１入力、ＡＮＤゲート７０の第１入力、ＡＮＤゲート６８の反転第１入力、および同期回路６６の第１入力に結合されている。外部アドレス・バスは、エミュレータ機能回路７２の第２入力に結合されている。サイクル・タイプ指示信号が、外部制御バスによってエミュレーション機能回路７２の第３入力に供給される。書き込み指示信号は、エミュレーション機能回路７２によって、クロック条件設定回路７４の第１入力に供給される。システム・クロック信号は、同期回路６６の第２入力およびクロック条件設定回路７４の第２入力に、ならびにエミュレーション・システム５２の出力として供給される。外部データ・バスは、エミュレータ機能回路７２の第３入力と、クロック条件設定回路７４の第３入力とに結合されている。外部制御バスは、エミュレータ機能回路７２の第４入力に結合されている。多重化エミュレータ信号は、外部アドレス・バスによって、ＡＮＤゲート７０の第２入力とＡＮＤゲート６８の第２入力とに供給される。ＡＮＤゲート７０の出力は、エミュレータ機能回路７２の第５入力に結合されている。ＡＮＤゲート６８の出力即ちイネーブル信号は、同期回路６６の第３入力に結合されている。同期回路６６の出力即ち同期信号は、クロック条件設定回路７４の第４入力に結合されている。クロック条件設定回路７４の出力は、外部条件クロック信号を発生する。
【００２０】
図６にクロック条件設定回路７４を更に詳細に示す。クロック条件設定回路７４は、シャドウ制御レジスタ(shadow control register)９０と、クロック合成回路９２とを含む。書き込み指示信号線および外部データ・バスは、それぞれシャドウ制御レジスタ９０の第１および第２入力に結合されている。シャドウ制御レジスタ９０は、クロック合成回路９２の第１入力に接続され、分周比信号(Divide Rate signal)を供給する。システム・クロックおよび同期信号は、それぞれ、クロック合成回路９２の第２および第３入力に供給される。クロック同期回路９２は条件クロック信号を供給する。
【００２１】
図１２は、通常動作モードにおけるシステム２０５を示す。システム２０５は、データ処理システム２１０とアプリケーション３００とを含む。データ処理システム２１０は、バス２２８、複数の集積回路端子２２４、複数の集積回路端子２２６、複数の集積回路端子２３０、複数の集積回路端子２３２、および複数の集積回路端子２３４を通じて、アプリケーション３００に結合されている。ここでは図示しないが、データ処理システム２１０は、条件クロック信号に同期された複数の信号を供給することもできる。
【００２２】
データ処理システム２１０は、中央処理ユニット（ＣＰＵ）２１２、タイマ回路２１４、システム統合回路２１６、直列通信回路２１８、アナログ／デジタル（Ａ／Ｄ）変換器２２０、およびスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）２２２を含む。システム・クロック信号が、システム統合回路２２２、ならびにここには示されていないデータ処理システム２１０の他の部分、およびエミュレーション・システム回路に接続される。
【００２３】
本発明の実施形態に関する以下の説明の間、「アサート(assert)」および「ニゲート(negate)」という用語、ならびにそれらの種々の文法的形状を用いて、「アクティブ高」および「アクティブ低」論理信号を一緒に扱う際の混乱を回避することとする。「アサート」は、論理信号またはレジスタ・ビットをそのアクティブ状態、即ち、論理的真の状態にすることを表わす際に使用する。「ニゲート」は、論理信号またはレジスタ・ビットをそのインアクティブ状態、即ち、論理的虚の状態にすることを表わす際に使用する。また、値の前に「＄」があるものは、その値が１６進数であることを示すことにも注意されたい。加えて、マイクロコントローラおよびデータ処理システムは、本明細書全体にわたって相互交換可能に用いられるものとする。
動作の説明
先に述べたように、本発明のこの実施例は、外部素子と多重化信号を通信しなければならないデータ・プロセッサの集積回路端子を含む。リセット信号がアサートされているリセット動作の間、所望の内部クロック信号を当該集積回路端子に送出することにより、外部開発システムがその内部クロック信号を用いてエミュレーション動作を同期させる。一般的に、この集積回路端子は、リセット動作の実行中には必要とされない端子である。更に、リセット信号をニゲートすると、この集積回路端子は、多重化信号の通信というそれ自体の通常機能に戻る。加えて、リセット信号をニゲートする際、外部開発システムは、エミュレーション動作の間使用する内部クロック信号を同期させる。
【００２４】
また、本発明のこの実施例は、外部エミュレーション・システムに外部可視性を与え、データ・プロセッサがエミュレーション動作モードにあるとき、複数の集積回路端子の別の１本を通じて関連する信号パラメータを制御する内部レジスタに、書き込み動作を指示する。書き込み動作の外部可視性を備えることによって、エミュレーション・システムは、その中で発生された対応する信号パラメータに、同様の変更を与えることができる。こうして、開発システムは、データ・プロセッサによって供給された信号パラメータが動作中に変更されても、エミュレーション動作を正確に同期させることができる。内部で変更が起きたとき、エミュレートされる信号が同時に変更され、外部装置に正確な同期信号を供給する。
本発明のシステム環境例
本システムについて更に詳細に説明する前に、システム環境の一例について説明し、本発明に対する必要性が生じた開発システムについての背景情報を与えることにする。理解すべきは、以下に述べるのは、本願において開示される本発明を実施する開発システム即ち動作環境の一例に過ぎないということである。
【００２５】
本例の開発システムでは、多重化データ、アドレス、および制御情報を送信する集積回路の信号通信端子を含むデータ・プロセッサに、本発明を実施すると仮定する。具体的には、この集積回路端子は、多重化データ、およびクロック情報を転送する。本例の残りの部分の理解を容易にするために、アドレス[23]と表記されたアドレス情報は、アドレス・バスのビット２３に対応し、クロック信号は、エミュレート対象のデータ・プロセッサの内部クロック関数を示す外部条件クロック信号であると仮定する。アドレス情報を通信する集積回路端子は、リセット動作の間必要とされないので、この目的に使用可能であることを指摘しておく。しかし、リセット動作の間必要とされない集積回路端子であれば、どれを用いてもよいことは理解されよう。更に、本例における外部条件クロック信号は、エミュレート対象のデータ・プロセッサの内部クロック機能(internal clock function)を示す。
【００２６】
本例および多くの応用では、データ・プロセッサのユーザは、上述の集積回路端子がクロック（外部条件クロック）として機能することを望む。しかしながら、開発環境では、外部開発システムは、アドレスのビット２３（アドレス[23]）をこの集積回路端子上に供給することをデータ・プロセッサに要求する。アドレス[23]は、エミュレーション・モードの間、データ・プロセッサの内部アドレス・バスの外部可視性を支援するために供給される。
【００２７】
集積回路端子がアドレス[23]を開発システムに供給しなければならないという必要性のために、更に開発システムは通常データ・プロセッサの完全で明瞭な(transparent)エミュレーションを行わなければならないという必要性のために、開発システムは、他の場合であったなら外部条件クロック信号によって提供される、別の機能を再現しなければならない。内部条件クロック信号の外部再生は複雑であり、内部条件クロック信号の、データ・プロセッサによって発生され開発システムによってエミュレートされるチップ・セレクト機能との関連によって、より難しくなる。
【００２８】
本質的に、データ・プロセッサのチップ・セレクト機能は、データ・プロセッサ内部で発生される外部条件クロック信号に、チップ・セレクト機能を同期させなければならないモードで動作する。殆どのデータ処理の用途には、外部条件クロック信号とバス制御信号との適切に同期された組み合わせが常に必要なので、開発システムの外部で同期された外部条件クロック信号は、データ・プロセッサの内部条件クロック信号と同期していなければならない。次いで、内部条件クロック信号とその外部で同期された相手との間の同期を達成しなければならない。内部条件クロック信号の同期に対する問題は、ユーザ・プログラムの内部条件クロック信号の周波数またはその他のパラメータを変更する機能(ability)によって、更に複雑化する(compound)。本発明の一実施例では、周波数変更はクロック制御レジスタ内の制御ビットによって行われる。
【００２９】
上述の問題および課題に対する解決法が本発明によって提供される。本発明の本実施例は以下について説明する。
１）リセット動作における内部条件クロック信号の可視性；および
２）リセット動作以外の動作における内部条件クロック信号の内部操作の可視性。
【００３０】
本発明の本実施例のこの例では、外部条件クロックとアドレス[23]信号とが多重化される集積回路端子に、リセット信号がアサートされデータ・プロセッサがエミュレーション動作モードで動作するように構成されたときに、外部条件クロック信号を供給する機能が割り当てられる。この状態は主に開発システムによって用いられ、開発システムが外部条件クロック信号に同期し、正確なエミュレーション動作が可能となる。開発システムのデータ・プロセッサへの同期が必要なのは、外部条件クロック信号の同期された複製を合成し、外部条件クロック信号に同期されたバス・サイクルを保持するためであり、この同期はデータ・プロセッサのチップ・セレクト信号のどれと関連付けてもよい。
【００３１】
内部条件クロック信号の周波数およびその他のパラメータに影響を与え得る、マイクロコントローラの内部クロック制御レジスタへの書き込みの可視性および指示は、外部から与えられる。これは、ショー・サイクル(show-cycle)と呼ばれる機構によって達成される。ショー・サイクルは、内部バス・サイクルの可視性を与えるために用いられる、特別な外部バス・サイクルである。これは、外部で同期された外部条件クロックの複製信号の制御によって、信頼性高く変化を内部条件クロック信号に再生するために、開発ツールによって必要とされるものである。
本発明を用いたエミュレーション・システム
本発明を組み込んだデータ・プロセッサの開発システムは、データ・プロセッサのリセット信号をアサートしたときに、データ・プロセッサをエミュレーション動作モードに切り替える。データ・プロセッサは、アドレスおよびデータ・バスを駆動し、制御信号を集積回路端子の入出力ポートに供給し、エミュレーション・システムへの通信を行う。開発システム５は図１に示されている。既に説明したように、開発システム５は、データ処理システム１０、エミュレーション・システム５２、およびアプリケーション１００を含む。図１のエミュレーション・システム５２は、バス２８を通じて、データ処理システム１０からアドレスおよびデータ・バスならびにバス制御信号を受け取る。本発明の一実施例におけるエミュレーション動作モードでは、上位アドレス値の一部が、バス２８に含まれる複数の集積回路端子によって、エミュレーション・システム５２に供給される。加えて、これら複数の集積回路端子は、先に述べたアドレスおよびクロック情報のような情報を転送する。この情報は外部から見ることができ、エミュレーション・システム５２が使用することができる。したがって、エミュレーション・システム５２は、エミュレーション・システム５２によってエミュレートされる、データ処理システム１０の内部制御信号の可視性を与えることができる。次に、データ処理システム１０の種々の構成に対して、アドレス[23]および外部条件クロック信号を通信するための、集積回路端子のエミュレーションについて説明する。
【００３２】
通常動作モードでは、外部条件クロック機能は、上述の複数の集積回路端子の１本に割り当てられる。エミュレーション動作モードでは、アドレス[23]が、エミュレーション・システム５２と通信するデータ処理システム１０の複数の集積回路端子の１本に割り当てられる。一方、エミュレーション・システム５２のエミュレーション機能回路７２によって発生されるエミュレート信号は、アプリケーション１００に供給される。エミュレーション・システム５２内に含まれる外部条件クロック合成機構（図６のクロック合成回路９２）が、合成信号をアプリケーション１００に供給する。この外部条件クロック合成機構は、リセット信号がアクティブで、データ処理システム１０がリセット動作を実行している間、内部条件クロック信号に同期される。外部条件クロック合成機構は、本発明のこの実施例では、システム・クロック信号を分周する。ユーザは内部信号の分周比を自由に変えることができるので、エミュレーション・システム５２はショー・サイクルの特徴を利用して、内部クロック制御レジスタ（図６の制御レジスタ９０）への書き込み動作を観察し、内部条件クロック信号の分周比を追跡する。ショー・サイクルは、データ・プロセッサの外部動作(external activity)を妨害することなく、データ・プロセッサの内部動作を外部に見えるようにする機構である。かかる構造はデータ処理技術では公知であるので、ここではこれ以上詳しく論じない。分周比を追跡し、外部で同期される外部条件クロック信号に適切なときに変更を加えることによって、内部条件クロック信号と外部で同期される外部条件クロック信号の複製との間の正確な同期が、エミュレーション・システム５２によって与えられる。
【００３３】
殆どのユーザにとって、特に、市場へのタイミング(time-to-market)が重大なパラメータであるような状況では、データ処理システムの完全な非貫入性エミュレーション(non-intrusive emulation)は必須と考えられる。多様性、機能性、およびコストのようなその他の市場に関係する制約は、データ処理システムの設計にかなり影響を及ぼす。本発明がなければ、データ処理システムは、特別な集積回路端子に、エミュレーションの完全な支援を要求することになる。さもなければ、データ処理システムは全く支援を得ることができないであろう。加えて、データ処理システムが本発明を組み込まない場合、外部条件クロック信号のための支援が除去されるので、データ処理システムの機能性が低下する。これは、データ処理システムの主要な市場(key market)に悪影響を与え得る行為となる。明らかに、ここに記載する本発明の実施例は、完全なエミュレーションの支援に必要とされる、必須のエミュレーション「フック(hook)」を提供するものである。更に、本発明は、エミュレーション動作の間でのみ必要な、独立した外部条件クロック用集積回路端子の必要性を軽減するので、本発明のこの実施例は、端子数を減らしつつ機能性を高める環境も支援するものである。
本発明の本実施例の詳細な説明
データ処理システムをエミュレートするための汎用的応用について、以下に詳細に論ずることにする。データ処理システムは、クロック信号と、通常このクロック信号と同期される少なくとも１つのエミュレートすべきデータ処理信号とを発生する回路を含む。言い換えれば、これらクロック信号とエミュレートすべきデータ処理信号とは、時間的に相互に関連付けられた状態を有し、この関係はエミュレートされるデータ処理システムが必要とするものである。本発明の本実施例を用いるための基準を確定する、通常動作アプリケーションについて以下に説明する。
標準動作モード
図１はエミュレーション・モードで動作可能なデータ処理システム１０を示す。具体的には、エミュレーション・システム５２とアプリケーション１００によって、データ処理システム１０がエミュレーション機能を実行可能となる。これに対応して、図１２は通常動作モードで動作するデータ処理システム１０を提示する。通常動作モードにあるときは、データ処理システム１０は直接アプリケーション１００に接続され、エミュレーション・システム５２のような、中間エミュレーション・システムを必要としない。通常動作モードでは、アプリケーション１００は外部条件クロック信号とシステム・クロック信号を、データ処理システム１０から受ける。外部条件クロック信号の機能は、システム・クロック信号から得られる。外部条件クロック信号はタイミング信号を供給し、これによって、アプリケーション１００は、データ処理システム１０と情報を通信するために、それ自体の内部回路を同期させることができる。データ処理システム１０の内部回路は、タイミング信号を発生する回路への入力として、内部条件クロック信号を用いる。一方、アプリケーション１００は、１つ以上の位相コヒーレント信号(phase coherent signal)に加えて、外部条件クロック信号を用いてその内部回路を同期させる。
【００３４】
動作中、内部条件クロック信号、内部リセット信号、および１つ以上のその他のデータ処理信号が、図４に示すマルチプレクサ６０に供給される。通常動作モードの間、エミュレーション・モード信号はニゲートされるので、マルチプレクサ６０は外部条件クロック信号を通じて、内部条件クロック信号をアプリケーション１００に供給することができる。次に、外部条件クロック信号が、外部アドレス・バスを通じて、バス２８に転送される。バス２８は、その後アプリケーション１００に結合される。リセット動作の間およびその後に、内部条件クロック信号が外部条件クロック信号に転送される。外部条件クロック信号によって転送されるとき、内部条件クロック信号がアプリケーション１００によって用いられる。ここで指摘すべきは、このようにして内部条件クロック信号を供給することによって、内部条件クロック信号へのいかなる変化も、図２の複数のバス端子４８を通じて、直接外部に通信されることである。この構造は、元のクロック信号の分周比が変更される時に、特に有用である。
【００３５】
図７は、図１に示した通常動作モードで動作する開発システム５の各入出力信号間のタイミング関係を示す。図７に示すタイミング例では、システム・クロック信号を二分周し、内部条件クロック信号を発生する。アプリケーション１００およびその内部回路は、通常動作モードの間かかる信号を正確に処理するために、特定のバス制御信号に関して内部条件クロック信号の同期を要求する。データ処理システム１０の動作モードを示す信号、即ちエミュレーション・モード信号は、通常動作モードの間ニゲート状態となっていることを注記しておく。また、内部条件クロック信号がマルチプレクサ６０によって選択されたとき、リセット信号は多重化エミュレータ信号の挙動には影響を与えないことも注記しておく。更にまた、内部条件クロックの特性が変化したとき、外部条件クロックは直接変更され、アプリケーション１００に供給される（ここでは、これについて示さない）。
エミュレーション動作モード
図１は開発システム５を示す。開発システム５は、エミュレーション動作モードで動作しているデータ処理システム１０と、エミュレーション・システム５２とを含む。データ処理システム１０はアプリケーション１００に結合され、データ・プロセッサ信号を供給する。それらの内いくつかはエミュレーション・システム５２によってエミュレートされる。エミュレーション動作モードにあるとき、データ処理システム１０はエミュレーション・システム５２の動作を支援する。この支援の一例として、バス２８を通じて通信されるアドレスおよびデータ信号とクロック信号とを多重化する、集積回路端子をあげる。本発明のこの実施例では、クロック信号は外部条件クロック信号であり、アドレス信号はアドレス[23]信号であると仮定する。ここに記載する本発明の実施例では、上述の集積回路端子は、リセット動作の間内部条件クロック信号を供給し、リセット以外の動作の間、エミュレーション・システムの支援のためにアドレス[23]信号を供給する。
【００３６】
データ処理システム１０がエミュレーション動作モードで動作しているとき、エミュレーション・システム５２は、バス２８を通じて通信されているデータ処理信号を傍受し監視する。また、エミュレーション・システム５２は、典型的に通常動作モードでデータ処理システム１０によって発生される、データ処理信号をエミュレートする。更に、エミュレーション動作モードにあるとき、データ処理システム１０は、それ自体の内部動作の可視性を与える。また、データ処理システム１０は、使用しない機能(displaced function)のいくつかを交換し、エミュレーション動作モードを支援する。このように交換される機能の一例は、内部条件クロック信号である。また、データ処理システム１０は、エミュレーション動作モードの間アプリケーション１００が必要とする、バス制御信号も発生する。バス制御信号は、データ処理システム１０からエミュレーション・システム５２を通じて、アプリケーション１００に渡される。しかしながら、リセット動作が行われた後でリセット信号がアクティブでないときは、内部条件クロック信号は得ることができないので、エミュレーション・システム５２は内部条件クロック信号の正確な交換を行わなければならない。エミュレーション・システム５２は、合成外部条件クロック信号を、合成外部条件クロック信号によって、アプリケーション１００に供給し、バス制御回路５８によって使用される内部条件クロック信号と合成外部条件クロック信号とを同期させる。
【００３７】
条件クロック信号の合成は、クロック条件設定回路７４を介してエミュレーション・システム５２によって行われるが、内部条件付きクロック信号とエミュレーション・システム５２によって供給される条件クロック信号との間の正確な同期は、同期回路６６によって取られる。同期回路６６は、リセット信号がアクティブのとき、合成条件クロック信号を内部条件クロック信号に同期させる。クロック条件設定回路７４は、データ処理システム１０の内部リソース（ここでは図示せず）に類似した構造であることを指摘しておく。
【００３８】
リセット信号がアサートされると、アドレス[23]／条件クロック信号を通信する多重化集積回路端子は、条件クロック信号のみを供給する。条件クロックは、図５に示すエミュレーション・システム５２の同期回路６６に供給される。ＡＮＤゲート６８は、反転リセット信号と多重化エミュレーション支援機能／内部条件クロック信号とのアンドをとり、イネーブル信号を同期回路６６に供給する。同期回路６６に供給されるイネーブル信号がアクティブのとき、同期回路は同期信号をクロック条件設定回路７４に供給する。続いて、クロック条件設定回路７４は条件クロック信号を発生する。同期信号、システム・クロック信号、および分周比信号を用いて、条件クロック信号をデータ処理システム１０の内部条件クロックに同期させる。分周比信号は、クロック条件設定回路６４のシャドウ制御レジスタ９０を用いて、アドレスおよびデータ信号によってそれぞれ通信されるアドレスおよびデータ値によって決定される。続いて、クロック合成回路９２は、分周比信号を用いて、データ処理システム１０の内部条件クロックと同様に、システム・クロック信号が分周されることを保証する。
【００３９】
逆に、リセット信号がインアクティブのとき、リセット信号がアクティブのときに条件クロック信号を供給する多重化集積回路端子は、アドレス[23]信号を通信する。エミュレーション支援機能信号は、ＡＮＤゲート５８とエミュレーション・システム５２のエミュレータ機能回路７２との双方に供給される。エミュレータ機能回路７２はアドレス[23]信号を用いて、内部および外部アドレスの完全な可視性を、エミュレーション・システムのユーザに与える。
【００４０】
図８に示す波形は、データ処理システム１０からエミュレーション・システム５２に通信される、多重化アドレス[23]／条件クロック信号を示す。この信号は、リセット信号がアサートされたときデータ処理システム１０の内部条件クロック信号として機能する。しかしながら、リセット信号がニゲートされると、データ処理システム１０からエミュレーション・システム５２に通信されている多重化アドレス[23]／条件クロック信号は、全く異なり、アドレス[23]信号として振る舞い、条件クロック信号は通信されない。しかしながら、内部条件クロック信号が外部には得られなくても、外部条件クロックは内部条件クロック信号と同期されることに注意されたい。
エミュレーション・モードで動作中のクロック・レート変更
データ処理システム１０は、通常動作およびエミュレーション動作の間はいつでも、シミュレーション・クロック発生器４６内のレジスタ（図示せず）を用いて、内部条件クロック信号とシステム・クロックとの間の関係を変更することができる。したがって、エミュレーション・システム５２はかかる変化を確実に追跡して、同期される条件クロック信号の正確性を連続して与えなければならない。エミュレーション・システム５２は、条件クロック制御レジスタ（シャドウ制御レジスタ９０）の複製を、クロック条件設定回路７４の素子として設ける。データ処理システム１０内の内部レジスタ（ここでは図示しない）に書き込みが行われる毎に、シャドウ制御レジスタ９０にも書き込みが行われる。また、シャドウ制御レジスタ９０は、リセット動作の間にシミュレーション・クロック発生器４６の内部レジスタと同じ値にセットされるので、双方のレジスタは同一値に初期化される。クロック制御レジスタ９０とデータ処理システム１０の内部レジスタとによって制御される機能が正確に実行されるか否かは、データ処理システム１０の内部レジスタへの書き込み動作の外部可視性によって左右される。
【００４１】
エミュレーション・システム５２によって供給される条件クロック信号が、データ処理システム１０の内部条件クロック信号を正確に反映することを保証するために用いられる回路および方法は、エミュレーション動作の間、ショー・サイクル機構を使用する。データ処理システム１０がエミュレーション動作モードで動作しているとき、および内部バス動作が実行されているとき、ショー・サイクル機構はアクティブである。図９はかかる動作を示す。典型的にＣＰＵ１２によって発生される内部アドレスは、内部でデコードされる。ショー・サイクル機構を用いてアドレスが外部に供給されるとき、アドレスは外部でデコードされる。アドレスが内部でデコードされるとき、データはシミュレーション・クロック発生器４６のレジスタ（図示せず）に書き込まれる。このレジスタが変更されると、内部条件クロック信号も同様にそのレートを変化させる。エミュレーション・システム５２によってアドレスが外部でデコードされると、外部でデコードされたアドレスとサイクル・タイプ指示信号との組み合わせによって、書き込み指示信号が発生される。結果として、図６に示した分周比信号を変更するために、シャドウ制御レジスタ９０にデータが書き込まれる。したがって、外部条件クロック信号がレートを変更すると、内部条件クロック信号が内部で変更されるのと同時に、このレート変化がアプリケーション１００に通信される。
【００４２】
デコードされたアドレスはサイクル・タイプ指示信号と組み合わせられ、いつ有効な動作が内部リソースをアクセスするかが決定される。読み出し動作か書き込み動作かについて、サイクル・タイプ指示信号が内部データ・バスから外部に供給される。この場合、内部リソースは内部クロック制御レジスタ（ここでは図示しない）である。かかるアドレス・デコーディングをサイクル・タイプ指示信号と調和させて用いることによって、このレジスタに対する内部書き込み動作を、エミュレーション・システムのシャドウ制御レジスタ９０に反映させる。図９は、内部バス・サイクルが原因で生じた、内部条件クロック信号の変化を示す。サイクル・タイプ指示信号のアサートによって指示されるショー・サイクルが、外部にバス・サイクル情報を提供する。対応するアドレスのデコーディングおよびショー・サイクルの識別を行うことによって、シャドウ制御レジスタ９０にデータを書き込ませ、対応する変化を合成条件クロック信号にも発生させる。この構造がないと、外部合成回路は、内部条件クロック信号および内部条件クロック信号の外部複製への変化を追跡することができず、条件クロック信号は、位相が関係付けられているあらゆる信号との適切な同期を失うことになる。
詳細な説明の概要
図１０のフロー・チャートは、本発明によって用いられる方法論の概要を図示したものである。リセット動作から開始し、そのリセット動作の間にデータ処理システム１０の動作モードが構成される。続いて、内部条件クロック信号が、外部同期のために多重化集積回路端子から送出される（ステップ２０４）。次に、リセット信号を検査し、それがニゲートされているか否かを判定する（ステップ２０６）。リセット信号がニゲートされていない場合、プログラム・フローはステップ２０４に戻り、内部条件クロック信号が多重化集積回路端子から送出される。リセット信号がニゲートされると、データ処理システム１０は、それがエミュレーション動作モードで動作しているか否かを判定する（ステップ２０２）。データ処理システム１０がエミュレーション動作モードで動作していない場合、ステップ２１０を実行し、ユーザ機能を多重化集積回路端子に割り当てる。次いで、リセット信号が再びアサートされ、プログラム・フローがステップ２００に戻るまで、プログラム・フローを停止する（END）。データ処理システム１０がエミュレーション動作モードで動作している場合、エミュレーション支援機能信号が集積回路端子によって供給され、エミュレータ機能／アドレス[23]信号を発生する（ステップ２１２）。内部条件クロック信号のパラメータを制御するレジスタを変更する書き込み動作は全て、外部に指示されるので、エミュレーション・システム５２は可視性を有ることができ、正確に同期を取り内部条件クロック信号をエミュレートすることができる（ステップ２１４、ステップ２１６）。データ処理システム１０は、リセット信号がアクティブになるまで、ステップ２１４，２１６を繰り返す。リセット信号がアクティブになると、プログラム・フローはステップ２００から再開する。本発明のこの実施形態では、ステップ２１０のユーザ機能は、ステップ２０４の内部条件クロックと同一であることを指摘しておく。
本発明の他の実施例
本発明は、通常外部からは見ることができない内部マイクロプロセッサ信号の外部合成や制御追跡を伴う、多くの問題を解決するために用いることができる。これは、マイクロプロセッサのアプリケーションが開発中の環境に応用されるだけでなく、オンチップ・マイクロプロセッサのリソースの開発にも用いることができる。実際、本概念の応用は、特定の開発環境には止まらず、汎用的な環境にまで拡張することができる。即ち、内部リソースの外部複製のほうが、マイクロプロセッサによるリソースの外部可視性の提供よりも現実性があり、端子数が限定されている場合に応用することができる。
【００４３】
更に、ここに記載した本発明の実施形態は、例として提示したに過ぎない。ここに記載した機能を実行するための、他の実施態様も多数存在し得る。例えば、エミュレート対象の信号は、クロックまたは他のいずれかのタイプの内部信号でもよい。また、図５に示したゲートは、他の論理回路を用いて実施することもできる。エミュレート対象の信号の機能は、いずれの信号とも多重化することができ、アドレス信号に限定される訳ではない。
【００４４】
以上本発明の原理について説明したが、この説明は例として行ったに過ぎず、本発明の範囲を限定するものとしてではないことは、当業者には明白であろう。したがって、本発明の真の精神および範囲に該当する本発明の変更は全て、特許請求の範囲の記載によって包含されることを意図するものである。
【図面の簡単な説明】
【図１】本発明による開発システムを示すブロック図。
【図２】図１の開発システムのデータ処理システムにおける、システム統合回路の一部を示すブロック図。
【図３】図２のシステム統合回路の外部バス・インターフェース回路の一部を示すブロック図。
【図４】図３の外部バス・インターフェース回路のバス制御回路の一部を示すブロック図。
【図５】図１の開発システムのエミュレーション・システムの一部を示すブロック図。
【図６】図２のシステム統合回路のシミュレーション・クロック発生器の一部を示すブロック図。
【図７】通常動作モードの間に開発システムによって発生される、複数の信号を示すタイミング図。
【図８】エミュレーション動作モードの間に開発システムによって発生される、複数の信号を示すタイミング図。
【図９】ショー・サイクルを用いてエミュレーション動作モードの間にデータ処理システムによって発生される、複数の信号を示すタイミング図。
【図１０】本発明による外部装置に内部信号を供給する方法を示すフロー・チャート。
【図１１】従来技術のデータ・プロセッサにおいて、エミュレーション動作モードの間にエミュレーション・アプリケーションに供給される複数の信号を示すタイミング図。
【図１２】開発システムの全体を示すブロック図。
【符号の説明】
５  開発システム
１０  処理システム
１２  ＣＰＵ
２８  バス
４６  シミュレーション・クロック発生器
４８  バス端子
５８  バス制御回路
６０  マルチプレクサ
６４  クロック条件設定回路
６６  同期回路
６８  ＡＮＤゲート
７２  エミュレーション機能回路
７４  クロック条件設定回路
９０  シャドウ制御レジスタ
９０  内部クロック制御レジスタ
９２  クロック合成回路
１００  アプリケーション
【図１】
0003693722.tif 000002
【図２】
0003693722.tif 000003
【図３】
0003693722.tif 000004
【図４】
0003693722.tif 000005
【図５】
0003693722.tif 000006
【図６】
0003693722.tif 000007
【図７】
0003693722.tif 000008
【図８】
0003693722.tif 000009
【図９】
0003693722.tif 000010
【図１０】
0003693722.tif 000011
【図１１】
0003693722.tif 000012
【図１２】
0003693722.tif 000013