(57)【要約】【課題】マスタプロセッサからスレーブプロセッサの周辺回路に対する動作条件の設定変更を効率化することができるエミュレータを提供する。【解決手段】エミュレーション用プロセッサを構成するマスタプロセッサ及びスレーブプロセッサを有する。スレーブプロセッサは所定の周辺回路を有する。ブレーク状態において、スレーブプロセッサは、マスタプロセッサから第１の通信経路を介して制御データ及び第１のコマンドを受け取り、前記第１のコマンドに従って所定の記憶領域に制御データを格納する。マスタプロセッサは、ターゲットプログラムを実行して前記所定の周辺回路の機能設定を行うとき、第１の通信経路を介して第２のコマンドをスレーブプロセッサに発行し、スレーブプロセッサは前記第１の評価制御プログラムを実行することにより、第２のコマンドで指定された制御データを前記記憶領域から前記周辺回路に設定する。【選択図】図１
2013061921.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置とインタフェースされるエミュレータ制御部と、
前記エミュレータ制御部に接続されエミュレーション用プロセッサを構成するためのマスタプロセッサ及びスレーブプロセッサと、を有し、
前記スレーブプロセッサは前記マスタプロセッサが備えていない所定の周辺回路を有し、
前記スレーブプロセッサは第１の評価制御プログラムを実行することにより、第２の評価制御プログラムを実行する前記マスタプロセッサから第１の通信経路を介して制御データ及び第１のコマンドを受け取り、前記第１のコマンドに従って所定の記憶領域に制御データを格納し、
前記マスタプロセッサは、ターゲットプログラムを実行して前記周辺回路の機能設定を行うとき、前記第１の通信経路を介して第２のコマンドをスレーブプロセッサに発行し、前記スレーブプロセッサは前記第１の評価制御プログラムを実行することにより、第２のコマンドで指定された制御データを前記記憶領域から前記周辺回路に設定し、
前記マスタプロセッサは前記ターゲットプログラムを実行して、前記制御データが設定された前記周辺回路を第２の通信経路を介して使用する、エミュレータ。
【請求項２】
請求項１において、前記マスタプロセッサは、所要のプログラム制御機能を実現するための第１のＣＰＵとそれによって制御される論理機能が再構成可能に設定されたＦＰＧＡ型の半導体集積回路によって構成さる、エミュレータ。
【請求項３】
請求項２において、前記スレーブプロセッサは前記マスタプロセッサが有する前記第１のＣＰＵと同一機能の第２のＣＰＵ及び前記所定の周辺回路を有する１チップの半導体プロセッサである、エミュレータ。
【請求項４】
請求項１において、前記スレーブプロセッサは、前記周辺回路を前記スレーブプロセッサの外部から前記第２の通信経路を介してアクセス可能にする評価用インタフェースモードを有する、エミュレータ。
【請求項５】
請求項４において、前記評価用インタフェースモードを設定するモードレジスタを有し、
前記マスタプロセッサは、前記第２の評価制御プログラムにしたがって前記モードレジスタの設定を行うとき、前記第１の通信経路を介して設定データと第３のコマンドをスレーブプロセッサに発行し、前記スレーブプロセッサは前記第１の評価制御プログラムを実行することにより、第３のコマンドで指定された設定データを前記モードレジスタに設定する、エミュレータ。
【請求項６】
請求項４において、前記スレーブプロセッサは複数個の周辺回路を有し、選択された一つの周辺回路が前記評価用インタフェースモードにおいて前記スレーブプロセッサの外部からアクセス可能にされる、エミュレータ。
【請求項７】
請求項６において、前記スレーブプロセッサはリセットが解除されたとき実行開始するプログラムを所定の外部端子の状態に応じて選択し、前記外部端子の第１の状態は前記第１の評価制御プログラム中において一つの周辺回路を用いるためのプログラムの実行を指示する状態である、エミュレータ。
【請求項８】
請求項６において、前記スレーブプロセッサは、外部に接続されたアンテナを介する近接非接触通信用の第１の通信インタフェース回路と、前記第１の通信インタフェース回路をシングル・ワイヤ・プロトコルによってＩＣカード用のマイクロコンピュータにインタフェースするための第２の通信インタフェース回路とを、前記周辺回路として備える、エミュレータ。
【請求項９】
請求項１において、前記マスタプロセッサは、前記第２の評価制御プログラムと前記ターゲットプログラムを実行する第１のＣＰＵと、前記第１の通信経路に接続する第１のインタフェース回路と、前記第１のＣＰＵがターゲットプログラムを実行して前記所定の周辺回路を機能設定するためのデータ処理を行ったとき、そのデータ処理に応答して前記第２のコマンドを生成して前記第１のインタフェース回路から前記第１の通信経路に出力させるコマンド生成回路と、を有し、
前記スレーブプロセッサは、前記第１の評価制御プログラムを実行する第２のＣＰＵと、前記第１の通信経路に接続する第２のインタフェース回路とを備え、
前記第２のＣＰＵは、前記第１の評価制御プログラムを実行して、前記第２のインタフェース回路で受信したコマンドに応答するデータ処理を行う、エミュレータ。
【請求項１０】
請求項９において、前記マスタプロセッサは前記第２の評価制御プログラムを書き換え可能に保持する不揮発性メモリと、前記ターゲットプログラムを書き換え可能に保持するための揮発性メモリを有し、
前記スレーブプロセッサは前記第１の評価制御プログラムを書き換え可能に保持する不揮発性メモリを有する、エミュレータ。
【請求項１１】
請求項１において、前記スレーブプロセッサを複数個有し、
前記夫々のスレーブプロセッサは夫々に固有の第１の評価制御プログラムを実行して第２の評価制御プログラム及びターゲットプログラムを実行するマスタプロセッサの制御を受ける、エミュレータ。
【請求項１２】
第１のプログラムと第２のプログラムを実行する第１のプロセッサと、
周辺回路を備え、第３のプログラムを実行する第２のプロセッサと、を有し、
前記第２のプロセッサは前記第３のプログラムを実行することにより、前記第１のプログラムを実行する前記第１のプロセッサから第１の通信経路を介して制御データ及び第１のコマンドを受け取り、前記第１のコマンドに従って所定の記憶領域に制御データを格納し、
前記第１のプロセッサは、前記第２のプログラムにしたがって前記周辺回路の機能設定を行うとき、前記第１の通信経路を介して第２のコマンドを第２のプロセッサに発行し、前記第２のプロセッサは前記第３のプログラムを実行することにより、第２のコマンドで指定された制御データを前記記憶領域から前記周辺回路に設定し、
前記第１のプロセッサは前記制御データが設定された前記周辺回路を前記第２のプログラムにしたがって第２の通信経路を介して使用する、マルチプロセッサシステム。
【請求項１３】
請求項１２において、前記第１のプロセッサは、前記第１のプログラムと前記第２のプログラムを実行する第１のＣＰＵと、前記第１の通信経路に接続する第１のインタフェース回路と、前記第１のＣＰＵが第２のプログラムを実行して前記所定の周辺回路を機能設定するためのデータ処理を行ったとき、そのデータ処理に応答して前記第２のコマンドを生成して前記第１のインタフェース回路から前記第１の通信経路に出力させるコマンド生成回路と、を有し、
前記第２のプロセッサは、前記第３のプログラムを実行する第２のＣＰＵと、前記第１の通信経路に接続する第２のインタフェース回路とを備え、
前記第２のＣＰＵは、前記第３のプログラムを実行して、前記第２のインタフェース回路で受信したコマンドに応答するデータ処理を行う、マルチプロセッサシステム。
【請求項１４】
請求項１３において、前記第１のプロセッサは前記第１のプログラムを書き換え可能に保持する不揮発性メモリを有し、
前記第２のプロセッサは前記第３のプログラムを書き換え可能に保持する不揮発性メモリを有する、マルチプロセッサシステム。
【請求項１５】
請求項１２において、前記第２のプロセッサを複数個有し、
前記夫々の第２のプロセッサはそれぞれに固有の第３のプログラムを実行して第１のプログラム及び第２のプログラムを実行する第１のプロセッサの制御を受ける。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エミュレーション用プロセッサとして複数個のプロセッサを用いるエミュレータ、さらにはマルチプロセッサシステムに関し、例えば、ＦＰＧＡ（(Field Programmable Gate Array)）形態の半導体集積回路と実チップを用いてエミュレーション用プロセッサを構成するエミュレータに適用して有効な技術似関する。
【背景技術】
【０００２】
エミュレータは、開発途上のマイクロプロセッサ応用システムに対するシステムデバッグを支援するために用いられる。システムデバッグの対象とされるマイクロプロセッサ応用システム（ターゲットシステム）にエミュレータを接続し、エミュレータ上のエミュレーション用プロセッサに開発途上もしくは評価対象のプログラム（ターゲットプログラム）を逐次的に実行させてターゲットシステムを制御する。これによって動作されるターゲットシステムの動作状態を後から検証するためにそのときのデータや制御情報などを逐次トレースメモリなどに蓄えていく。
【０００３】
エミュレーション用プロセッサはターゲットシステムを代行制御する性質上、ターゲットシステムに本来搭載されるべきマイクロプロセッサ（ターゲットプロセッサ）と同等のＣＰＵ及び周辺機能を備えることが必要であり、更に、ターゲットプログラムの逐次的実行や情報トレースなどの制御に必要なインタフェースも備えなければならない。このため、エミュレーション用プロセッサはターゲットプロセッサになる実チップとは別に提供されることになる。その場合に、ＣＰＵが同一であっても周辺機能が相違するファミリー展開されたマイクロプロセッサの場合には、各種ファミリ毎にエミュレーション用プロセッサを提供しなければならない。エミュレーション用プロセッサも実チップと同様に単一チップの半導体集積回路によって提供しようとすると、素早く評価環境を提供することができず、その上、評価環境を実現するためのコストも大幅に上昇してしまう。
【０００４】
そこで、特許文献１に記載の如く、ＦＰＧＡ形態の半導体集積回路でエミュレーション用プロセッサを構成すれば、不揮発性記憶回路に書き込む記憶情報に応じて所要のロジックを定義することができるようになる。特許文献２にはモードレジスタに対するコマンドを用いたモード設定でエミュレーション用プロセッサの初期状態を選択できるようにして仕様変更に対応しようとする技術が記載され、特許文献３には動作モード信号によってエミュレーション用プロセッサをエミュレーションモードのほかに、シングルチップモードやＲＯＭ無しモードのような実チップの動作モードを選択できるようにした技術が記載される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２３１６０７号公報
【特許文献２】特開２００１−１０１０２７号公報
【特許文献３】特開２０００−２９３３９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記何れの特許文献でも周辺回路のファミリー展開の幅が広くなったときには対応できない場合のあることが明らかになった。例えば、ＲＦ（Radio Frequency）回路やＳＷＰ（Single Wire Protocol）回路のようなアナログ系の回路に対してモード設定やＦＰＧＡでは充分に対応することができない。
【０００７】
そこで本発明者は、アナログ系に代表される個別の周辺回路に対しては実チップを併用してエミュレーション用プロセッサを構成することについて検討した。即ち、ＣＰＵコアと主なディジタル周辺回路を定義するのにＦＰＧＡ形態の半導体集積回路を用い、アナログ系回路に代表される個別の周辺回路には実チップを流用する。この場合に実チップには、特定の周辺回路だけを外部とインタフェース可能にする動作モードを予め用意しておけばよい。
【０００８】
しかしながら、システムデバッグの場合には転送レート、動作周波数、並列転送ビット数など、周辺回路に対して種々の動作条件を頻繁に変えながら動作させることが想定される。この場合に、動作条件を設定変更するたびに多量の設定データをＦＰＧＡ形態の半導体集積回路を経由して、それとは別チップの周辺回路に転送しなければならず、システムデバッグ効率が著しく低下することが予想される。この点は、マルチプロセッサシステムにおける一のマイクロプロセッサによる他のマイクロプロセッサ内部に対する動作条件の設定変更がチップ間データ転送を伴うことに起因して遅くなる、という事情と等価的である。
【０００９】
本発明の目的は、エミュレーション用のマスタプロセッサからスレーブプロセッサの周辺回路に対する動作条件の設定変更を効率化することができるエミュレータを提供することにある。
【００１０】
本発明の別の目的は、マルチプロセッサシステムにおける一のマイクロプロセッサによる他のマイクロプロセッサ内部に対する動作条件の設定変更を効率化できるようにすることにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１３】
すなわち、エミュレーション用プロセッサを構成するためのマスタプロセッサ及びスレーブプロセッサを有する。前記スレーブプロセッサは前記マスタプロセッサが備えていない所定の周辺回路を有する。ブレーク状態において、前記スレーブプロセッサは、前記マスタプロセッサから第１の通信経路を介して制御データ及び第１のコマンドを受け取り、前記第１のコマンドに従って所定の記憶領域に制御データを格納する。
前記マスタプロセッサは、ターゲットプログラムを実行して前記所定の周辺回路の機能設定を行うとき、前記第１の通信経路を介して第２のコマンドをスレーブプロセッサに発行し、前記スレーブプロセッサは前記第１の評価制御プログラムを実行することにより、第２のコマンドで指定された制御データを前記記憶領域から前記周辺回路に設定し、これによって、前記マスタプロセッサは前記ターゲットプログラムにしたがって前記制御データが設定された所定の周辺回路を第２の通信経路を介して使用することができる。
【発明の効果】
【００１４】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１５】
すなわち、エミュレーション用のマスタプロセッサからスレーブプロセッサの周辺回路に対する動作条件の設定変更を効率化することができる。換言すれば、マルチプロセッサシステムにおける一のマイクロプロセッサによる他のマイクロプロセッサ内部に対する動作条件の設定変更を効率化することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は本発明の一実施の形態に係るエミュレータの構成を例示するブロック図である。
【図２】図２はスレーブプロセッサに高周波通信インタフェース回路の周辺機能を選択した状態を例示する説明図である。
【図３】図３はスレーブプロセッサにＳＷＰ通信インタフェース回路の周辺機能を選択した状態を例示する説明図である。
【図４】図４はＲＦＭＤＬの周辺機能を割り当てたスレーブプロセッサとＳＷＰＭＤＬの周辺機能を割り当てたスレーブプロセッサとを別々に図示したエミュレータの概略を示す説明図である。
【図５】図５はエミュレータのブレーク状態とエミュレーション状態との動作を例示するフローチャートである。
【図６】図６は制御データのセットコマンドを生成して高周波通信インタフェース回路にＲＡＭから制御データをセットする動作を模式的に示した説明図である。
【図７】図７はエミュレータにおいてスレーブプロセッサとマスタプロセッサとの別の接続形態を例示するブロック図である。
【図８】図８は本発明の別の実施の形態に係るマルチプロセッサシステムの構成を例示するブロック図である。
【発明を実施するための形態】
【００１７】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１８】
〔１〕＜マスタ・スレーブ形態のターゲットプロセッサ利用のエミュレータ＞
本発明の代表的な実施の形態に係るエミュレータ（１，１＿ａ）は、ホスト装置とインタフェースされるエミュレータ制御部（２２）と、前記エミュレータ制御部に接続されエミュレーション用プロセッサを構成するためのマスタプロセッサ（２０）及びスレーブプロセッサ（３０）と、を有する。前記スレーブプロセッサは前記マスタプロセッサが備えていない周辺回路（３０６，３０７）を有する。前記スレーブプロセッサは第１の評価制御プログラム（ＦＷ）を実行することにより、ブレーク状態で第２の評価制御プログラム（ＥＦＷ）を実行する前記マスタプロセッサから第１の通信経路（５１）を介して制御データ及び第１のコマンドを受け取り、前記第１のコマンドに従って所定の記憶領域（３０１）に制御データを格納する。前記マスタプロセッサは、ターゲットプログラム（ＴＰＧＭ）を実行して前記周辺回路（３０７）の機能設定を行うとき、前記第１の通信経路を介して第２のコマンドをスレーブプロセッサに発行し、前記スレーブプロセッサは前記第１の評価制御プログラムを実行することにより、第２のコマンドで指定された制御データを前記記憶領域から前記周辺回路に設定する。前記マスタプロセッサは前記ターゲットプログラムを実行して、前記制御データが設定された周辺回路を第２の通信経路（５２）を介して使用する。
【００１９】
これにより、ブレーク状態でスレーブプロセッサには所定の周辺回路の設定に利用する制御データを予め転送しておき、マスタプロセッサがターゲットプログラムを実行するエミュレーション動作状態で前記周辺回路の動作条件を変更する処理を実行したとき、これに応答してスレーブプロセッサが対応する制御データを記憶領域から選択して所定の周辺回路に設定するから、その設定動作ではマスタプロセッサからスレーブプロセッサへのプロセッサ間の制御データの転送を伴わない。したがって、エミュレーション用のマスタプロセッサからスレーブプロセッサの周辺回路に対する動作条件の設定変更を効率化することができる。
【００２０】
〔２〕＜ＦＰＧＡ＞
項１において、前記マスタプロセッサは、所要のプログラム制御機能を実現するための第１のＣＰＵ（２００）とそれによって制御される論理機能が再構成可能に設定されたＦＰＧＡ型の半導体集積回路によって構成される。
【００２１】
これにより、エミュレーション用プロセッサにおける周辺回路の変更に迅速に対応することができる。
【００２２】
〔３〕＜実チップ＞
項２において、前記スレーブプロセッサは前記マスタプロセッサが有する前記第１のＣＰＵと同一機能の第２のＣＰＵ（３０２）及び前記所定の周辺回路（３０６，３０７）を有する１チップの半導体プロセッサである。
【００２３】
これにより、エミュレーション用プロセッサに必用な所要の周辺回路を実チップを流用して容易にそろえることができる。
【００２４】
〔４〕＜評価用インタフェースモード＞
項１において、前記スレーブプロセッサは、前記周辺回路を前記スレーブプロセッサの外部から前記第２の通信経路を介してアクセス可能にする評価用インタフェースモードを有する。
【００２５】
これにより、評価用インタフェースモードを設定することによって実チップの周辺回路をエミュレーション用マイクロコンピュータの周辺回路として容易に利用することができるようになる。
【００２６】
〔５〕＜評価用インタフェースモードのモードレジスタ＞
項４において、前記評価用インタフェースモードを設定するモードレジスタ（ＦＥＭＬ）を有する。前記マスタプロセッサは、前記第２の評価制御プログラムにしたがって前記モードレジスタの設定を行うとき、前記第１の通信経路を介して設定データと第３のコマンドをスレーブプロセッサに発行し、前記スレーブプロセッサは前記第１の評価制御プログラムを実行することにより、第３のコマンドで指定された設定データを前記モードレジスタに設定する。
【００２７】
これにより、ブレーク状態においてマスタプロセッサによりスレーブプロセッサに評価用インタフェースモードを容易に設定することができる。
【００２８】
〔６〕＜周辺回路の選択＞
項４において前記スレーブプロセッサは複数個の周辺回路（３０６，３０７）を有し、選択された一つの周辺回路が前記評価用インタフェースモードにおいて前記スレーブプロセッサの外部からアクセス可能にされる。
【００２９】
これにより、スレーブプロセッサが複数の周辺回路を備えるときのその内の一つをマスタプロセッサの周辺回路として使用することができる。
【００３０】
〔７〕＜外部端子の状態に応じた選択＞
項６において、前記スレーブプロセッサはリセットが解除されたときに実行開始するプログラムを所定の外部端子（Ｐ１，Ｐ２，Ｐ３）の状態に応じて選択し、前記外部端子の第１の状態は前記第１の評価制御プログラム中において一つの周辺回路を用いるためのプログラムの実行を指示する状態である
これにより、所定の外部端子に対する端子処理によって、評価用インタフェースモードで用いる一つの周辺回路を制御する第１の評価制御プログラムによるプログラムの実行状態を容易に実現することができる。
【００３１】
〔８〕＜ＮＦＣ用のインタフェース回路とＳＷＰ用のインタフェース回路＞
項６において、前記スレーブプロセッサは、外部に接続されたアンテナを介する近接非接触通信用の第１の通信インタフェース回路（３０７）と、前記第１の通信インタフェース回路をシングル・ワイヤ・プロトコルによってＩＣカード用のマイクロコンピュータにインタフェースするための第２の通信インタフェース回路（３０６）とを前記周辺回路として備える。
【００３２】
これにより、近接非接触通信のインタフェースをＩＣカード用のマイクロコンピュータにインタフェースするシングル・ワイヤ・プロトコル・インタフェースを用いるシステムに対するデバッグに容易に対応することができる。
【００３３】
〔９〕＜第２コマンドの自動生成＞
項１において、前記マスタプロセッサは、前記第２の評価制御プログラムと前記ターゲットプログラムを実行する第１のＣＰＵ（２００）と、前記第１の通信経路に接続する第１のインタフェース回路（２０５）と、前記第１のＣＰＵがターゲットプログラムを実行して前記所定の周辺回路を機能設定するためのデータ処理を行ったとき、そのデータ処理に応答して前記第２のコマンドを生成して前記第１のインタフェース回路から前記第１の通信経路に出力させるコマンド生成回路（２０９）と、を有する。前記スレーブプロセッサは、前記第１の評価制御プログラムを実行する第２のＣＰＵ（３０２）と、前記第１の通信経路に接続する第２のインタフェース回路（３０４）とを備える。前記第２のＣＰＵは、前記第１の評価制御プログラムを実行して、前記第２のインタフェース回路で受信したコマンドに応答するデータ処理を行う。
【００３４】
これにより、所定の周辺回路の設定に利用するために予めスレーブプロセッサに転送した制御データを、ターゲットプログラムの実行状態でマスタプロセッサが所定の周辺回路に設定する動作をスレーブプロセッサに自動的に制御させることができ、その動作はマスタプロセッサによるターゲットプログラムの実行状態を乱さず、何らの負担も与えない。
【００３５】
〔１０〕＜プログラムの書き換え＞
項９において、前記マスタプロセッサは前記第２の評価制御プログラムを書き換え可能に保持する不揮発性メモリ（２０３）と、前記ターゲットプログラムを書き換え可能に保持するための揮発性メモリ（２０７）を有する。前記スレーブプロセッサは前記第１の評価制御プログラムを書き換え可能に保持する不揮発性メモリ（３０５）を有する。
【００３６】
これにより、第１の評価制御プログラム及び第２の評価制御プログラムのバージョンアップやバグの修正に容易に対応することができる。
【００３７】
〔１１〕＜複数個のスレーブプロセッサ＞
項１において、エミュレータは前記スレーブプロセッサを複数個有する（３０＿１，３０＿２、３０＿ａ，３０＿ｂ，３０＿ｃ）。前記夫々のスレーブプロセッサはそれぞれに固有の第１の評価制御プログラムを実行して第２の評価制御プログラム及びターゲットプログラムを実行するマスタプロセッサの制御を受ける。
【００３８】
これによれば、複数個の所定の周辺回路を個別のスレーブプロセッサごとに用意してエミュレーション用のプロセッサを実現する事ができるから、複数個の所定の周辺回路を１チップに搭載したスレーブプロセッサとしての実チップを用意しなくても、また、そのような実チップが用意されている場合であっても、所定の周辺回路毎に第２の通信経路に割り当て可能な外部端子若しくは入出力ポートを確保することができないような外部端子数の制約があるようなときには、周辺回路毎に個別のスレーブプロセッサで対応可能になる。
【００３９】
〔１２〕＜マルチプロセッサシステムにおける周辺機能設定＞
本発明の別の実施の意形態に係るマルチプロセッサシステムは、第１のプログラム（ＰＧＭ１）と第２のプログラム（ＰＧＭ２）を実行する第１のプロセッサ（２０＿ｂ）と、所定の周辺回路（３１３，３１４，３１５）を備え、第３のプログラム（ＰＧＭ３ｄ，ＰＧＭ３ｅ，ＰＧＭ３ｆ）を実行する第２のプロセッサ（３０＿ｄ，３０＿ｅ，３０＿ｆ）と、を有する。前記第２のプロセッサは前記第３のプログラムを実行することにより、前記第１のプログラムを実行する前記第１のプロセッサから第１の通信経路（５１）を介して制御データ及び第１のコマンドを受け取り、前記第１のコマンドに従って所定の記憶領域（４０１）に制御データを格納する。前記第１のプロセッサは、前記第２のプログラムにしたがって前記所定の周辺回路の機能設定を行うとき、前記第１の通信経路を介して第２のコマンドを第２のプロセッサに発行し、前記第２のプロセッサは前記第３のプログラムを実行することにより、第２のコマンドで指定された制御データを前記記憶領域から前記周辺回路に設定する。前記第１のプロセッサは前記制御データが設定された所定の周辺回路を前記第２のプログラムにしたがって第２の通信経路（５２）を介して使用する。
【００４０】
これにより、第１のプロセッサは第１のプログラムを実行するコントロール動作状態で第２のプロセッサに所定の周辺回路の設定に利用する制御データを予め転送しておき、第１のプロセッサが第２のプログラムを実行するシステム動作状態で前記周辺回路の動作条件を変更する処理を実行したとき、これに応答して第２のプロセッサが対応する制御データを記憶領域から選択して所定の周辺回路に設定するから、その設定動作では第１のプロセッサから第２のプロセッサへのプロセッサ間の制御データの転送を伴わない。したがって、システム動作状態において第１のプロセッサから第２のプロセッサの周辺回路に対する動作条件の設定変更を効率化することができる。換言すれば、マルチプロセッサシステムにおける一のマイクロプロセッサによる他のマイクロプロセッサ内部に対する動作条件の設定変更を効率化することができる。
【００４１】
〔１３〕＜第２コマンドの自動生成＞
項１２において、前記第１のプロセッサは、前記第１のプログラムと前記第２のプログラムを実行する第１のＣＰＵと、前記第１の通信経路に接続する第１のインタフェース回路と、前記第１のＣＰＵが第２のプログラムを実行して前記所定の周辺回路を機能設定するためのデータ処理を行ったとき、そのデータ処理に応答して前記第２のコマンドを生成して前記第１のインタフェース回路から前記第１の通信経路に出力させるコマンド生成回路（２０９ｂ）と、を有する。前記第２のプロセッサは、前記第３のプログラムを実行する第２のＣＰＵと、前記第１の通信経路に接続する第２のインタフェース回路とを備える。前記第２のＣＰＵは、前記第３のプログラムを実行して、前記第２のインタフェース回路で受信したコマンドに応答するデータ処理を行う。
【００４２】
これにより、所定の周辺回路の設定に利用するために予め第２のプロセッサに転送した制御データを、第１のプロセッサが第２のプログラムを実行するシステム動作状態で所定の周辺回路に設定する動作を第２のプロセッサに自動的に制御させることができ、その動作は第１のプロセッサによる第２のプログラムの実行状態を乱さず、何らの負担も与えない。
【００４３】
〔１４〕＜プログラムの書き換え＞
項１３において、前記第１のプロセッサは前記第１のプログラムを書き換え可能に保持する不揮発性メモリを有する。前記第２のプロセッサは前記第３のプログラムを書き換え可能に保持する不揮発性メモリを有する
これにより、第１のプログラム及び第３のプログラムのバージョンアップやバグの修正に容易に対応することができる。
【００４４】
〔１５〕＜複数個の第２のプロセッサ＞
項１２において、マルチプロセッサシステムは前記第２のプロセッサを複数個有する。前記夫々の第２のプロセッサはそれぞれに固有の第３のプログラムを実行して第１のプログラム及び第２のプログラムを実行する第１のプロセッサの制御を受ける。
【００４５】
これによれば、複数個の所定の周辺回路を個別の第2のプロセッサごとに用意してマルチプロセッサシステムを実現する事ができる。
【００４６】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００４７】
《実施の形態１》
図１には本発明の一実施の形態に係るエミュレータの構成が例示される。
【００４８】
同図に示されるエミュレータ１はエミュレータ本体（ＥＭＬＭＢＤ）２とオプションボード（ＥＭＬＯＰＢ）２によって構成される。オプションボード３はエミュレーション対象のターゲットシステムに応じて設けられる。エミュレータ本体２はパーソナルコンピュータなどのホスト装置（ＨＳＴ）４にインタフェースされて制御される。
【００４９】
エミュレータ本体２はホストインタフェース回路（ＨＩＦ）２１を介してエミュレーション制御部（ＥＬＭＣＮＴ）２２に接続される。エミュレーション制御部２２はホスト装置４からの指示にしたがってトレース回路２４、ブレーク制御回路２３及びマスタプロセッサ（ＭＭＰＵ）２０の制御を行う。オプションボード３はマスタプロセッサ２０に接続されたスレーブプロセッサ（ＳＭＣＵ）３０と共に、スレーブプロセッサ３０にターゲットシステムを接続するためのコネクタ３１及びソケット３２を備える。図１ではスレーブプロセッサ３０を代表的に１個だけ図示しているが、実際には図１の紙面の表裏方向に重ねて２個配置されているものと理解されたい。その理由は後述する。
【００５０】
同図に示されるエミュレータ１において、ターゲットシステムの制御に採用されるターゲットプロセッサ（図示せず）の制御機能とエミュレーションのための支援制御機能を実現するためのエミュレーション用プロセッサは、エミュレータ本体２のマスタプロセッサ２０とオプションボード３のスレーブプロセッサ３０とによって構成される。スレーブプロセッサ３０はマスタプロセッサ２０がサポートしていない周辺機能を実現するための回路構成とされる。したがって、エミュレーション用プロセッサの機能をマスタプロセッサ２０だけで実現することができればオプションボード３を接続することを要しない。
【００５１】
ここでは、マスタプロセッサ２０をＦＰＧＡ型の半導体装置を用いて実現する。このＦＰＧＡ型の半導体装置は多数の不揮発性記憶素子に対する書込みデータに応じて所要のディジタル論理を再構成可能にされる。したがって、ディジタル回路の範囲であればＣＰＵが同一であって周辺機能が相違する各種ファイミリー展開されたマイクロプロセッサに対応することができる。スレーブプロセッサ３０はマスタプロセッサ２０ではサポートすることができないアナログ系周辺機能などを実現するために用いられるものである。特に、そのような周辺機能を容易に実現することを考慮して、スレーブプロセッサ３０にはターゲットプロセッサとしての実チップを流用できるようにした。以下、マスタプロセッサ３０及びスレーブプロセッサ２０によってエミュレーション用プロセッサとしての機能を実現するための構成について詳細に説明する。
【００５２】
マスタプロセッサ２０にはＣＰＵ（中央処理装置）２００、書き換え可能な揮発性メモリとしてのＲＡＭ２０７、代表的に示された一つの汎用入出力ポート（ＧＰＩＯ）２０１、エミュレーション用インタフェース（ＥＭＬＩＦ）２０２、電気的に書き換え可能な不揮発性メモリの一例であるフラッシュメモリ（ＦＬＳＨ）２０３、バスインタフェース回路２０４、代表的に示された一つのシリアルインタフェース回路（ＳＣＩ）２０５、コマンド生成回路（ＣＭＤＧＥＮ）２０９及び総称的に示された内部バス２０６を有する。それら回路の論理的な機能はターゲットシステムに対する制御機能という点ではターゲットプロセッサとの対応で等価の機能を備えることになる。それら回路の論理的な機能のうち、エミュレーション動作の支援機能という点では、エミュレーションインタフェース回路２０２がエミュレーション制御バス２５にマスタプロセッサ２０２を接続し、シリアルインタフェース回路（ＳＣＩ）２０５が第１の通信経路５１を介してスレーブプロセッサ３０に接続し、コマンド生成回路２０９がスレーブプロセッサ３０の内部状態設定のためのコマンドの自動生成を行い、汎用入出力ポート２０１が第２の通信経路５２を介してスレーブプロセッサ３０に接続する機能を実現する。また、エミュレーション動作の支援機能として内部バス２０６はトレース回路２４及びブレーク制御回路２３で参照可能にされる。バスインタフェース回路２０４は必要な場合にシステムバス５０を介してターゲットシステム接続され、その場合にはシステムバス５０もトレース回路２４及びブレーク制御回路２３で参照可能にされる。
【００５３】
スレーブプロセッサ３０には代表的に示された一つの汎用入出力ポート（ＧＰＩＯ）３００、書き換え可能な揮発性メモリとしてのＲＡＭ３０１、ＣＰＵ３０２、マスクＲＯＭ３０３、代表的に示された一つのシリアルインタフェース回路（ＳＣＩ）３０４、電気的に書き換え可能な不揮発性メモリの一例であるフラッシュメモリ（ＦＬＳＨ）３０５、システムコントローラ（ＳＹＳＣＯＮ）３０８、アナログ系周辺回路の一つである近接非接触通信用の高周波通信インタフェース回路（ＲＦＭＤＬ）３０７、別のアナログ系周辺回路であるシングル・ワイヤ・プロトコルによるＳＷＰ通信インタフェース回路（ＳＷＰＭＤＬ）３０８、及び総称的に示された内部バス３０９を有する。
【００５４】
高周波通信インタフェース回路３０７はアンテナコネクタ（ＣＮＣＴ）３１に接続されたアンテナボードを介して近接非接触通信のためのインタフェース動作を行う。ＳＷＰ通信インタフェース回路３０６は、ソケット（ＳＣＴ）３２に搭載されたＩＣカード用のマイクロコンピュータの所定の１端子と高周波通信インタフェース回路３０７とをシングル・ワイヤ・プロトコルによってインタフェース制御する。
【００５５】
実チップとしてのスレーブプロセッサ３０はエミュレータに流用されることを予め想定して、選択された高周波通信インタフェース回路３０７又はＳＷＰ通信インタフェース回路３０８にいずれか一方を所定の汎用入出力ポート３００を用いてスレーブプロセッサ３０の外部からアクセス可能にする評価用インタフェースモードを有する。評価用インタフェースモードの設定はシステムコントローラ３０８のフラグＦＥＭＬをＣＰＵ３０２がセットすることによって設定される。評価用インタフェースモードにおいて高周波通信インタフェース回路３０７又はＳＷＰ通信インタフェース回路３０８の何れをアクセス可能にするかは、例えば、前記スレーブプロセッサ３０がリセットが解除されたとき実行開始するプログラムを外部端子Ｐ１，Ｐ２，Ｐ３の状態に応じて選択することによって決定される。即ち、前記スレーブプロセッサ３０のリセット解除時における前記外部端子Ｐ１，Ｐ２，Ｐ３の状態は、前記第１の評価制御プログラムＦＷ中において所要の一つの周辺回路（ここでは高周波通信インタフェース回路３０７又はＳＷＰ通信インタフェース回路３０８）を用いるためのプログラムの実行開始を指示する状態と等価とされる。
【００５６】
図２にはスレーブプロセッサ３０に高周波通信インタフェース回路３０７の周辺機能を選択した状態が例示される。図３にはスレーブプロセッサ３０にＳＷＰ通信インタフェース回路３０８の周辺機能を選択した状態が例示される。前述の如く、図１では実際にはその紙面の表裏方向に重ねてスレーブプロセッサ３０が２個配置されていると説明したが、具体的には、図２の周辺機能の選択状態のスレーブプロセッサ３０と図３の周辺機能の選択状態のスレーブプロセッサ３０との双方が配置されている。このように１個のスレーブプロセッサに１個の周辺機能を割り当ててエミュレーションインタフェースモードを設定する適用例は、特に制限されるものではなく、マスタプロセッサ２０にインタフェースするための外部端子や汎用入出力ポート３００の数に余裕がなく、１個のスレーブプロセッサ３０において複数個の周辺回路を個別のインタフェースで専用的にマスタプロセッサ２０にインタフェースする事ができないことを考慮したものである。本実施の形態に係るエミュレータ１が想定するターゲットシステムは、使用者認証などのためにＩＣカードマイクロコンピュータを搭載し且つ近接非接触通信が可能な携帯電話機やＩＣカードである。このエミュレータ１はそのターゲットシステムにおいて近接非接触通信を介してＩＣカードマイクロコンピュータによる使用者認証などを行うときのシステムデバッグを可能にするものである。図４にはこの状態をわかり易くするようにエミュレータの構成を図示している。ここでは２個のスレーブプロセッサ３０＿１，３０＿２を図示してある。５はアンテナコネクタ３１に接続されたアンテナボードである。６はソケット３２に装着されたＩＣカード用マイクロコンピュータを備えたＳＩＭ（Subscriber Identity Module Card）である。
【００５７】
マスタプロセッサ２０はターゲットシステム対する制御機能としてシステムデバッグ対象のターゲットプログラムＴＰＧＭを実行し、また、エミュレーション動作の支援機能として第２の評価制御プログラムＥＦＷを実行する。マスタプロセッサによるターゲットプログラムの実行状態をエミュレーション動作状態、マスタプロセッサ２０による第２の評価制御プログラムＥＦＷの実行可能状態若しくは実行状態はブレーク状態と称する。ターゲットプログラムＴＰＧＭはエミュレーション制御２２がホスト装置４からダウンロードし、ダウンロードされたターゲットプログラムＴＰＧＭはエミュレーション制御部２２によってエミュレーションインタフェース回路２０２に与えられる。マスタプロセッサ２０はブレーク状態において第２の評価制御プログラムＥＦＷにしたがってターゲットプログラムＴＰＧＭをＲＡＭ３０１に格納する。第２の評価制御プログラムＥＦＷは例えばフラッシュメモリ２０３に格納されている。
【００５８】
第２の評価制御プログラムＥＦＷは更にシリアルインタフェース回路２０５を介するスレーブプロセッサ３０への制御用のデータやコマンドの転送を制御する。例えばそれによる転送制御は、第１に、フラグＦＥＭＬに対するセットコマンドをシリアルインタフェース回路２０５からスレーブプロセッサ３０のシリアルインタフェース回路３０４に転送する制御である。第２に、エミュレーション動作で高周波通信インタフェース回路３０７又はＳＷＰ通信インタフェース回路３０８に設定すべき種々の初期設定用の制御データを予めシリアルインタフェース回路２０５からスレーブプロセッサ３０のシリアルインタフェース回路３０４に転送し、且つその制御データを格納する動作をスレーブプロセッサ３０に指示するストアコマンドを転送する動作である。第３に、エミュレーション動作で高周波通信インタフェース回路３０７又はＳＷＰ通信インタフェース回路３０８を使用するためのデータ処理に連動してコマンド生成回路２０９で生成されたセットコマンドをシリアルインタフェース回路２０５からスレーブプロセッサ３０のシリアルインタフェース回路３０４に転送する制御である。
【００５９】
スレーブプロセッサ３は第１の評価用制御プログラムＦＷをフラッシュメモリ３０５に保有する。ＣＰＵ３０２は第１の評価用制御プログラムＦＷにしたがって、シリアルインタフェース３０４に供給されたコマンドを解読し、その解読結果にしたがってデータ処理などを行う。即ち、第１に、フラグＦＥＭＬに対するセットコマンドに応答して、スレーブプロセッサ３０に評価用インタフェースモードを設定する。第２に、制御データのストアコマンドに応答して、ＲＡＭ３０１の所定のメモリ領域に制御データを順次格納して制御データのテーブルを形成する動作を行う。第３に、制御データのセットコマンドに応答して、そのコマンドが示すＲＡＭ３０１のテーブルアドレスから制御データを、そのコマンドが示す周辺回路のレジスタアドレスにセットする動作を行う。特に制限されないが、制御データのストアコマンドは、高周波通信インタフェース回路３０７用の制御データに対するものと、ＳＷＰ通信インタフェース回路３０８用の制御データに対するものとでは、異なるコマンドコードが割り当てられ、コマンドコードによって制御データの転送先アドレスが決定される。制御データのセットコマンドについても、高周波通信インタフェース回路３０７への制御データの初期設定と、ＳＷＰ通信インタフェース回路３０８への制御データの初期設定とでは、異なるコマンドコードが割り当てられ、コマンドコードによって制御データの初期設定対象レジスタアドレスが決定される。
【００６０】
図５にはエミュレータ１の動作フローチャートが例示される。
【００６１】
マスタプロセッサ２０には第２の評価制御プログラムＥＦＷが、ターゲットプログラムＴＲＧＭと同様、エミュレータ制御２２によってホスト装置４からダウンロードされる。スレーブプロセッサ３０＿１，３０＿２の第１の評価制御プログラムＦＷは予めフラッシュメモリなどに書き込まれている（Ｓ１）。
【００６２】
次にエミュレータ制御部２２を活性化し、エミュレータ制御部２２によってマスタプロセッサ２０及びスレーブプロセッサ３０＿１，３０＿２がパワーオンリセットされる。これによってマスタプロセッサ２０は第２の評価制御プログラムＥＦＷが実行可能にされ、スレーブプロセッサ３−＿１，３０＿２は第１の評価制御プログラムＦＷが実行可能にされて、ブレーク状態になる。特に、２個のスレーブプロセッサ３０に対するパワーオンリセットのリセット指示が解除されるときは、外部端子Ｐ１，Ｐ２，Ｐ３に対する端子処理の状態に応じて、第１の評価制御プログラムＦＷの中で所要の一つの周辺回路をデバッグに用いるためのプログラムの実行状態が選択されることになる。図４の例では、一方のスレーブプロセッサ３０＿１には第１の評価制御プログラムＦＷの中で高周波通信インタフェース回路３０７をデバッグ用途で制御するためのプログラムの実行が選択され、他方のスレーブプロセッサ３０＿２には第１の評価制御プログラムＦＷの中でＳＷＰ通信インタフェース回路３０８をデバッグ用途で制御するためのプログラムの実行が選択される。ＣＰＵ２００はフラグＦＥＭＬに対するセットコマンドをＳＣＩ２０５から発行し、これをＣＳＩ３０４に受けるスレーブプロセッサ３０＿１，３０＿２はそのセットコマンドに応答してフラグＦＥＭＬをセット状態にする。これによってマスタプロセッサ２０はＧPＩＯ２０１から第２の通信経路５２を介してスレーブプロセッサ３０＿１の高周波通信インタフェース回路３０７のアクセスが可能にされ、他方のスレーブプロセッサ３０＿２はＧPＩＯ２０１から第２の通信経路５２を介してＳＷＰ通信インタフェース回路３０８のアクセスが可能にされる（Ｓ２）。
【００６３】
ここで、第１の評価制御プログラムＦＷの更新が必要である場合にはＣＰＵ２００はＳＣＩ２０５を介してフラッシュメモリ３０５に対する書き換えコマンドと書き換えデータを発行し、これに応答してＣＰＵ３０２はマスクＲＯＭ３０３が保有するフラッシュメモリ３０５に対する書き換え制御プログラムを実行して第１の評価制御プログラムＦＷの書き換えを行う（Ｓ３）。書き換え完了後に、ＣＰＵ３０２は更新された第１の評価制御プログラムＦＷを実行可能な状態に復帰する（Ｓ４）。
【００６４】
次に、ブレーク状態においてＣＰＵ２００は第２に、エミュレーション動作で高周波通信インタフェース回路３０７に設定すべき種々の初期設定用の制御データを予めシリアルインタフェース回路２０５からスレーブプロセッサ３０のシリアルインタフェース回路３０４に転送し、且つその制御データを格納する動作をスレーブプロセッサ３０に指示するストアコマンドを転送する動作を行う。ＣＰＵ３０２はその制御データのストアコマンドに応答して、当該コマンドで指定されるＲＡＭ３０１の領域に制御データを格納して制御データテーブルを生成する（Ｓ５）。特に制限されないが、ここではＳＷＰ通信インタフェース回路３０６に対しては初期設定用の制御データを予めＲＡＭ３０１に転送してテーブルを構成することを要しないものとする。特に制限されないが、ブレーク状態で一度初期設定すればその後で設定を変えることを要しない場合を想定するからである。
【００６５】
この後、ＣＰＵ２００による命令実行状態がＲＡＭ２０７のターゲットプログラムの先頭番地に分岐されることによって、エミュレーション動作状態（ユーザプログラム実行状態）に遷移される。エミュレーション動作状態において、マスタプロセッサ２０は、ターゲットプログラムを実行して高周波通信インタフェース回路３０７の機能設定を行うとき、その設定動作をコマンド生成回路２０９に対して疑似的に行う。疑似的設定動作においてコマンド生成回路２０９で有意とされる動作は書き込み先（設定先）を指示する動作である。この書込み先の情報をコマンド生成回路２０９がデコードすることによって書き込み先を認識し、その書込み先とこれに対応して先にＲＡＭに形成されたテーブルを指定して制御データを書き込むコマンドを生成する。コマンド生成回路２０９は生成したコマンドを制御データのセットコマンドとして、ＳＣＩ２０５から第１の通信経路５１を介してスレーブプロセッサ３０のＳＣＩ３０４に発行する。スレーブプロセッサ３０は第１の評価制御プログラムＦＷを実行して、制御データのセットコマンドで指定された制御データをＲＡＭ３０１の制御データテーブルから高周波通信インタフェース回路３０７の制御レジスタに設定する（Ｓ６）。このように、マスタプロセッサ２０がターゲットプログラムＴＰＧＭを実行して高周波通信インタフェース回路３０７に制御データを設定するためのデータ処理を行うと、その処理がスレーブプロセッサ３０の高周波通信インタフェース回路３０７に反映される。これによって、マスタプロセッサ２０はその制御データが反映された高周波通信インタフェース回路３０７をＧＰＩＯ２０１から第２の通信経路５２を介してＧＰＩＯ３００経由で直接使用することができる。
【００６６】
上記セットコマンドの生成動作は図６に整理して示されている。ターゲットプログラムＴＰＧＭの実行結果にしたがってコマンド生成回路２０９に制御データの設定先が疑似的に書き込まれると、コマンド生成回路２０９はこれを解読して制御データのセットコマンドをスレーブプロセッサ３０に発行し、これによって、当該セットコマンドによる指定にしたがってＲＡＭ３０１のテーブルから制御データが高周波通信インタフェース回路３０７のレジスタにセットされる。
【００６７】
このように、ブレーク状態でスレーブプロセッサ３０のＲＡＭ３０１に高周波通信インタフェース回路３０７の設定に利用する制御データを予め転送しておき、マスタプロセッサ２０がターゲットプログラムを実行するエミュレーション動作状態で高周波通信インタフェース回路３０７の動作条件を変更する処理を実行したとき、これに応答してスレーブプロセッサ３０が対応する制御データをＲＡＭ３０１から選択して高周波通信インタフェース回路３０７のレジスタに設定する。その設定動作ではマスタプロセッサ２０からスレーブプロセッサ３０へのプロセッサ間の制御データの転送を伴わない。したがって、エミュレーション用のマスタプロセッサ２０からスレーブプロセッサ３０の高周波通信インタフェース回路３０７に対する動作条件の設定変更を効率化することができる。
【００６８】
エミュレーション動作状態においてブレーク制御回路２３は内部バス２０６やシステムバス５０の状態を監視し、予め設定されたブレーク条件との一致を判別したとき、マスタプロセッサ２０にブレーク割り込みを要求する。これによって、マスタプロセッサ２０はターゲットプログラムの実行を停止して、第１の評価制御プログラムＥＦＷにしたがって制御を行うブレーク状態に遷移される（Ｓ５）。エミュレーション動作状態においてトレース回路２４には予め設定されたトレース条件にしたがって内部バス２０６やシステムバス５０のデータ及びアドレス信号などがバスサイクル単位で逐次格納され、ブレーク状態でエミュレーション制御部２２からホスト装置４に与えられてターゲットプログラムによる制御動作の解析が行われる。このように、エミュレーション動作状態（Ｓ６）とブレーク状態（Ｓ５）が交互に繰り返されて、ターゲットプログラムが逐次実行されていく。
【００６９】
図７にはエミュレータの別の例が示される。
【００７０】
同図に示されるエミュレータ１＿ａは３個のスレーブプロセッサ３０＿ａ、３０＿ｂ、３０＿ｃを有し、マスタプロセッサ２０＿ａのシリアルインタフェース２０５Ａは夫々のスレーブプロセッサ３０＿ａ、３０＿ｂ、３０＿ｃのシリアルインタフェース３０４と第１の通信経路５１ａを介して個別的に接続される。また、マスタプロセッサ２０＿ａの汎用入出力ポート２０１Ａは夫々のスレーブプロセッサ３０＿ａ、３０＿ｂ、３０＿ｃの汎用入出力ポートＧＰＩＯ３００と第２の通信経路５２ａを介して個別的に接続される。評価用インタフェースモードが設定されたときスレーブプロセッサ３０＿ａ、３０＿ｂ、３０＿ｃの夫々で用いられる周辺回路は３１０，３１１，３１２とされる。夫々の周辺回路（ＰＭＤＬａ，ＰＭＤＬｂ，ＰＭＤＬｃ）３１０，３１１，３１２は対応するコネクタ（ＣＮＣＴａ、ＣＮＣＴｂ、ＣＮＣＴｃ）３５，３６，３７に接続される。マスタプロセッサ２＿ａは第２の評価制御プログラムＥＦＷａを保有し、スレーブプロセッサ３０＿ａ、３０＿ｂ、３０＿ｃの夫々は第１の評価制御プログラムＥＦａ，ＦＷｂ，ＦＷｃを有する。その他の構成は図１のエミュレータ１と同様であり、同一機能を有する回路モジュールにはそれと同じ参照符号を付してその詳細な説明は省略する。特に詳細な説明は省略するが、図７のようにマスタプロセッサ２０＿ａに３個以上のスレーブプロセッサを接続してエミュレーション用のマイクロプロセッサを構成する場合も、図１と同様の作用効果を奏することができる。
【００７１】
以上説明したエミュレータによれば以下の作用効果を奏する。
【００７２】
（１）図１のエミュレータ１においてブレーク状態でスレーブプロセッサ３０には所定の周辺回路３０７の設定に利用する制御データを予めＲＡＭ３０１に転送しておき、マスタプロセッサ２０がターゲットプログラムを実行するエミュレーション動作状態で前記周辺回路の動作条件を変更する処理を実行したとき、これに応答してスレーブプロセッサ２０が対応する制御データをＲＡＭ３０１から選択して所定の周辺回路３０７に設定するから、その設定動作ではマスタプロセッサ２０からスレーブプロセッサ３０へのプロセッサ間の制御データの転送を行うことを要しない。したがって、エミュレーション用のマスタプロセッサ２０からスレーブプロセッサ３０の周辺回路３０７に対する動作条件の設定変更を効率化することができる。図７のエミュレータ１＿ａについても同様である。
【００７３】
（２）図１で説明したように、複数個の周辺回路を個別のスレーブプロセッサ３０＿１，３０＿２ごとに用意してエミュレーション用のプロセッサを実現する事ができる。また、図７のエミュレータも同様に複数個の周辺回路を個別のスレーブプロセッサ３０＿ａ，３０＿ｂ，３０＿ｃごとに用意してエミュレーション用のプロセッサを実現する事ができる。これにより、複数個の所定の周辺回路を１チップに搭載したスレーブプロセッサとしての実チップを用意しなくても、また、そのような実チップが用意されている場合であっても、所定の周辺回路毎に第２の通信経路に割り当て可能な外部端子若しくは入出力ポートを確保することができないような外部端子数の制約があるようなときには、周辺回路毎に個別のスレーブプロセッサで対応可能になる。
【００７４】
（３）マスタプロセッサＦＰＧＡ型の半導体集積回路によって構成することにより、エミュレーション用プロセッサにおける周辺回路の変更に迅速に対応することができる。前記スレーブプロセッサに実チップを用いることにより、エミュレーション用プロセッサに必用な所要の周辺回路を容易にそろえることができる。
【００７５】
（４）実チップに評価用インタフェースモードを採用することによって実チップの周辺回路をエミュレーション用マイクロコンピュータの周辺回路として容易に利用することができるようになる。
【００７６】
（５）前記評価用インタフェースモードを設定するフラグ即ちモードレジスタＦＥＭＬを設けることにより、ブレーク状態においてマスタプロセッサによりスレーブプロセッサに評価用インタフェースモードを容易に設定することができる。
【００７７】
（６）マスタプロセッサの周辺回路として使用するスレーブプロセッサの周辺回路の選択を外部端子Ｐ１，Ｐ２，Ｐ３による端子処理で第１の評価制御プログラム中から一つの周辺回路を用いるためのプログラムを実行する状態を容易に選択することができる。
【００７８】
（７）図１及び図４に示されるエミュレータを用いることによって、近接非接触通信のインタフェースをＩＣカード用のマイクロコンピュータにインタフェースするシングル・ワイヤ・プロトコル・インタフェースを用いるシステムに対するデバッグに容易に対応することができる。
【００７９】
（８）マスタプロセッサ２０がターゲットプログラムを実行してスレーブプロセッサ３０の周辺回路に制御データをセットするデータ処理を行ったとき、これに連動してコマンド生成回路２０９がその処理に応ずるコマンドを自動的に生成して、第１の評価制御プログラムＦＷを実行するスレーブプロセッサに当該周辺回路への制御データを設定させることができるようにした。これにより、ＲＦＭＤＬ３０７の設定に利用するために予めスレーブプロセッサ３０に転送した制御データを、ターゲットプログラムＴＰＧＭの実行状態でマスタプロセッサ２０がＲＦＭＤＬ３０７に設定する動作をスレーブプロセッサ２０に自動的に制御させることができ、その動作はマスタプロセッサ２０によるターゲットプログラムの実行状態を乱さず、何らの負担も与えない。
【００８０】
（９）第１の評価制御プログラムＦＷ（ＦＷａ，ＦＷｂ，ＦＷｃ）を書き換え可能にフラッシュメモリに保持するから、それら評価制御プログラムのバージョンアップやバグの修正に容易に対応することができる。
【００８１】
《実施の形態２》
図８には本発明の別の実施の形態に係るマルチプロセッサシステムが例示される。
【００８２】
同図に示されるマルチプロセッサシステムは、図示を省略する実装基板に、第１のプロセッサ２０＿ｂ、複数個例えば３個の第２のプロセッサ３０＿ｄ、３０＿ｅ、３０＿ｆ、及びその他のデバイス（ＤＥＶ）３８を搭載して構成される。
【００８３】
第１のプロセッサ２０＿ｂは電気的に書き換え可能な不揮発性メモリ例えばフラッシュメモリ２０３Ｂに格納された第１のプログラムＰＧＭ１と第２のプログラムＰＧＭ２を実行するＣＰＵ２００と共に、代表的に示された汎用入出力ポート（ＧＰＩＯ）２０１Ｂ、コマンド生成回路（ＣＭＤＧＥＮ）２０９ｂ、及びシリアルインタフェース回路（ＳＣＩ）２０５Ｂを有する。第１のプロセッサ２０＿ｂはＦＰＧＡ型ではなく単一の半導体チップに形成されている。
【００８４】
第２のプロセッサ３０＿ｄ、３０＿ｅ、３０＿ｆは夫々単一の半導体チップに形成され、相互に同一又は異なって構成を備える。夫々は、代表的に示されたＣＰＵ３０２、ＲＡＭ３０１、汎用入出力ポート３００、フラッシュッメモリ３０５、及びシリアル入出力ポート３０４を有する。ここでは、特に制限されないが、第２のプロセッサ３０＿ｄは周辺回路（ＰＭＤＬｄ）３１３を有し、フラッシュメモリ３０５に第３のプログラムＰＧＭ３ｄを有する。同様に、第２のプロセッサ３０＿ｅは周辺回路（ＰＭＤＬe）３１４を有し、フラッシュメモリ３０５に第３のプログラムＰＧＭ３ｅを有する。第２のプロセッサ３０＿ｆは周辺回路（ＰＭＤＬｆ）３１５を有し、フラッシュメモリ３０５に第３のプログラムＰＧＭ３ｆを有する。
【００８５】
周辺回路３１３，３１４，３１５に対する制御データの設定方式は実施の形態１と同様である。即ち、第２のプロセッサ３０＿ｄ（３０＿ｅ、３０＿ｆ）は第３のプログラムＰＧＭ３ｄ（ＰＧＭ３ｅ，ＰＧＭ３ｆ）を実行することにより、第１のプログラムＰＧＭ１を実行する第１のプロセッサ２０＿ｂからシリアルインタフェース回路２０５Ｂを介して制御データ及び第１のコマンドを受け取り、前記第１のコマンドに従ってＲＡＭ３０１に制御データを格納する。前記第１のプロセッサ２０＿ｂは、前記第２のプログラムＰＧＭ２にしたがって周辺回路３１３（３１４，３１５）の機能設定を行うとき、コマンド生成回路２０９ｂで生成した第２のコマンドを第１の通信経路５１を介して第２のプロセッサ３０＿ｄ（３０＿ｅ，３０＿ｆ）に発行する。前記第２のプロセッサ３０＿ｄ（３０＿ｅ，３０＿ｆ）は前記第３のプログラムＰＧＭ３ｄ（ＰＧＭ３ｅ、ＰＧＭ３ｆ）を実行することにより、第２のコマンドで指定された制御データをＲＡＭ３０１から当該周辺回路３１３（３１４，３１５）に設定する。これによって前記第１のプロセッサ２０＿ｂは制御データが設定された周辺回路３１３（３１４，３１５）を第２のプログラムＰＧＭ２にしたがって第２の通信経路５２を介して使用する。
【００８６】
前記コマンド生成回路２０９ｂは、ＣＰＵ２００が第２のプログラムＰＧＭ２を実行して所定の周辺回路３１３（３１４，３１５）を機能設定するためのデータ処理を行ったとき、そのデータ処理に応答して前記第２のコマンドを生成してシリアルインタフェース回路２０５Ｂから第１の通信経路５１に出力させる。コマンド生成回路２０９ｂを採用することにより、所定の周辺回路３１３（３１４，３１５）の設定に利用するために予め第２のプロセッサ３０＿ｄ（３０＿ｅ，３０＿ｆ）に転送した制御データを、第１のプロセッサ２０＿ｂが第２のプログラムＰＧＭ２を実行するシステム動作状態で当該周辺回路３１３（３１４，３１５）に設定する動作を第２のプロセッサ３０＿ｄ（３０＿ｅ，３０＿ｆ）に自動的に制御させることができ、その動作は第１のプロセッサ２０＿ｂによる第２のプログラムＰＧＭ２の実行状態を乱さず、何らの負担も与えない。
【００８７】
このマルチプロセッサシステムによれば、第１のプロセッサ２０＿ｂは第１のプログラムＰＧＭ１を実行するコントロール動作状態で第２のプロセッサ３０＿ｄ（３０＿ｅ，３０＿ｆ）に所定の周辺回路３１３（３１４，３１５）の設定に利用する制御データを予め転送しておき、第１のプロセッサ２１０＿ｂが第２のプログラムＰＧＭ２を実行するシステム動作状態で前記周辺回路３１３（３１４，３１５）の動作条件を変更する処理を実行したとき、これに応答して第２のプロセッサ３０＿ｄ（３０＿ｅ，３０＿ｆ）が対応する制御データをＲＡＭ３０１から選択して所定の周辺回路３１３（３１４，３１５）に設定する。したがって、その設定動作では第１のプロセッサ２０＿ｂから第２のプロセッサ３０＿ｄ（３０＿ｅ，３０＿ｆ）へのプロセッサ間の制御データの転送を伴わない。これにより、ステム動作状態において第１のプロセッサ２−＿ｂから第２のプロセッサ３０＿ｄ（３０＿ｅ，３０＿ｆ）の周辺回路３１３（３１４，３１５）に対する動作条件の設定変更を効率化することができる。要するに、マルチプロセッサシステムにおける一のマイクロプロセッサ２０＿ｂによる他のマイクロプロセッサ３０＿ｄ（３０＿ｅ，３０＿ｆ）の内部に対する動作条件の設定変更を効率化することができる。
【００８８】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００８９】
例えば、マスタプロセッサはＦＰＧＡ型に限定されない。マスタプロセッサとスレーブプロセッサが備える回路構成さらには周辺回路の種類については適宜変更可能である。評価用インタフェースモードの設定を端子処理で行うようにしてもよく、また、複数のオンチップ周辺回路から一つの周辺回路を選択する手法がレジスタによる選択に限定されず、端子処理であってもよい。また、一つのスレーブプロセッサにオンチップされた複数の周辺回路を選択してマスタプロセッサの周辺回路として流用するようにしてもよい。制御データの転送やコマンドに転送に用いるインタフェース回路はシリアルインタフェース回路に限定されず、外部端子数の制約の範囲でパラレルインタフェースを採用することも可能である。
【符号の説明】
【００９０】
１  エミュレータ
２  エミュレータ本体（ＥＭＬＭＢＤ）
３  オプションボード（ＥＭＬＯＰＢ）
４  ホスト装置（ＨＳＴ）
２２  エミュレーション制御部（ＥＬＭＣＮＴ）
２０  マスタプロセッサ（ＭＭＰＵ）
３０  スレーブプロセッサ（ＳＭＣＵ）
２００  ＣＰＵ（中央処理装置）
２０７  ＲＡＭ
２０１  汎用入出力ポート（ＧＰＩＯ）
２０２  エミュレーション用インタフェース（ＥＭＬＩＦ）
２０３  フラッシュメモリ（ＦＬＳＨ）２０３
２０５  シリアルインタフェース回路（ＳＣＩ）
２０９  コマンド生成回路（ＣＭＤＧＥＮ）
３００  汎用入出力ポート（ＧＰＩＯ）
３０１  ＲＡＭ
３０２  ＣＰＵ
３０４  シリアルインタフェース回路（ＳＣＩ）
３０５  フラッシュメモリ（ＦＬＳＨ）
３０８  システムコントローラ（ＳＹＳＣＯＮ）
３０７  高周波通信インタフェース回路（ＲＦＭＤＬ）
３０８  ＳＷＰ通信インタフェース回路（ＳＷＰＭＤＬ）
ＴＰＧＭ  ターゲットプログラム
ＥＦＷ  第２の評価制御プログラム
ＦＷ  第１の評価用制御プログラム
２０＿ｂ  第１のプロセッサ
３０＿ｄ、３０＿ｅ、３０＿ｆ  第２のプロセッサ
ＰＧＭ１  第１のプログラム
ＰＧＭ２  第２のプログラム
ＰＧＭ３ｄ（ＰＧＭ３ｅ，ＰＧＭ３ｆ）  第３のプログラム
２０９ｂ  コマンド生成回路
【図１】
2013061921.tif 000003
【図２】
2013061921.tif 000004
【図３】
2013061921.tif 000005
【図４】
2013061921.tif 000006
【図５】
2013061921.tif 000007
【図６】
2013061921.tif 000008
【図７】
2013061921.tif 000009
【図８】
2013061921.tif 000010