(57)【要約】【課題】電子機器に対する種々の動作制御を容易かつ簡易な構成で行うこと。【解決手段】システムボード１Ａに着脱可能な構成を有した拡張ボード１Ｂとシステムボード１Ａとが接続された際に、電子機器の動作制御に用いられるシステムボード１Ａ上のＲＯＭ３０へのアクセス許可を、システムボード１Ａに搭載されたＣＰＵ１０Ａまたは拡張ボード１Ｂに搭載されたＣＰＵ１０Ｂの何れか一方に与えることによって、電子機器の動作制御を行う制御装置をＣＰＵ１０ＡとＣＰＵ１０Ｂとの間で切り替えるアクセス許可ステップと、ＣＰＵ１０Ｂにアクセス許可が与えられた場合に、ＣＰＵ１０ＢがＲＯＭ３０Ａへアクセスしながら電子機器の動作制御を行う動作制御ステップと、を含む。【選択図】        図１
2009252025.tif 000002
【特許請求の範囲】
【請求項１】
システムボードを用いて電子機器の動作を制御する動作制御方法において、
前記システムボードに着脱可能な構成を有した拡張ボードと前記システムボードとが接続された際に、前記システムボードが搭載するデバイスであって前記電子機器の動作制御に用いられるデバイスへのアクセス許可を、前記システムボードに搭載された第１の情報処理装置または前記拡張ボードに搭載された第２の情報処理装置の何れか一方に与えることによって、前記電子機器の動作制御を行う制御装置を前記第１の情報処理装置と第２の情報処理装置との間で切り替えるアクセス許可ステップと、
前記第２の情報処理装置に前記アクセス許可が与えられた場合に、前記第２の情報処理装置が前記デバイスへアクセスしながら前記電子機器の動作制御を行う動作制御ステップと、
を含むことを特徴とする動作制御方法。
【請求項２】
システムボードを用いて電子機器の動作を制御する動作制御方法において、
前記システムボードに着脱可能な構成を有した拡張ボードと、プログラミングが可能な第１の情報処理装置を搭載したシステムボードとが接続された際に、前記拡張ボードに搭載された第２の情報処理装置が前記第１の情報処理装置の初期化処理に用いる初期化データを前記システムボード上のデバイスに書き込む初期化データ書き込みステップと、
前記第１の情報処理装置が前記初期化データを前記デバイスから読み出して初期化処理を行うとともに前記電子機器の動作制御を行う動作制御ステップと、
を含むことを特徴とする動作制御方法。
【請求項３】
電子機器の動作を制御する第１の情報処理装置を搭載したシステムボードと、
前記システムボードに着脱可能な構成を有するとともに前記電子機器の動作を制御する第２の情報処理装置を搭載した拡張ボードと、
を備え、
前記システムボードは、前記拡張ボードと前記システムボードとが接続された際に、前記システムボードが搭載するデバイスであって前記電子機器の動作制御に用いられるデバイスへのアクセス許可を、前記第１の情報処理装置または前記第２の情報処理装置の何れか一方に与えることによって、前記電子機器の動作制御を行う制御装置を前記第１の情報処理装置と第２の情報処理装置との間で切り替えるスイッチ回路を具備し、
前記第２の情報処理装置は、前記スイッチ回路によって前記第２の情報処理装置に前記アクセス許可が与えられた場合に、前記デバイスへアクセスしながら前記電子機器の動作制御を行うことを特徴とする開発支援装置。
【請求項４】
電子機器の動作を制御するプログラミングが可能な第１の情報処理装置を搭載したシステムボードと、
前記システムボードに着脱可能な構成を有するとともに、前記システムボードに装着されると前記デバイスに接続される第２の情報処理装置を搭載した拡張ボードと、
を備え、
前記第２の情報処理装置は、前記拡張ボードが前記システムボードに接続された際に、前記第１の情報処理装置の初期化処理に用いる初期化データを前記システムボード上のデバイスに書き込み、
前記第１の情報処理装置は、前記初期化データを前記デバイスから読み出して初期化処理を行うとともに前記電子機器の動作制御を行うことを特徴とする開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作制御方法および開発支援装置に関するものである。
【背景技術】
【０００２】
パーソナルコンピュータ（以下、ＰＣという）などの電子機器には、例えば電源のＯＮ／ＯＦＦ制御を行うコントローラなどの周辺機能が組み込まれる。このような周辺機能に対しても、電子機器の開発段階において動作確認をしておく必要がある。この動作確認は、例えば、システムボード（電子計算機装置）上に搭載されたコントローラを実際に動作させることによって行なっている。そして、電子機器の動作に不具合が生じた場合などにはシステムボード上の半導体チップを新たな別の半導体チップに置き換えたり、システムボード上の半導体チップに新たなデータを書き込んだりして、周辺機能の動作を確認している。
【０００３】
動作確認に用いるシステムボードには、例えばプロセッサＣＰＵ（Central  Processing  Unit）（以下、ＣＰＵという）、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）、バスなどが実装される。このシステムボードでは、電源が投入されると、ＣＰＵがＲＯＭから命令をフェッチし、プログラムの実行を開始する。システムボードに実装されるＣＰＵを正しく動作させるためには、予めＲＯＭにプログラムやデータ（ブートコード含む）を書き込んおく必要がある。このため、従来の動作確認方法では、例えばＲＯＭライタなどによってプログラミングしたＲＯＭをシステムボードに実装していた。そして、ＲＯＭの書き換えを行う必要が生じた場合には、ＣＰＵがＲＯＭ書き込みプログラムを実行するか、またはＲＯＭを取り外し、取り外したＲＯＭに対してＲＯＭライタなどで再プログラミングをしていた。
【０００４】
ＣＰＵのソフトウェア開発時は、頻繁にＲＯＭを書き換えなければならず、ＲＯＭの書き換えコストを無視することはできない。しかしながら、上述したＲＯＭの書き換え方法では、ＲＯＭをＲＯＭライタで書き込むコストが発生し、バージョン管理のコストなどが増大する。また、ＲＯＭを取り外して再プログラミングするには多大な手間と時間を要することとなり、システムボードの評価効率やＣＰＵのソフトウェアの開発効率が低下する。また、ＲＯＭをソケット化してシステムボードに装着する方法もあるが、この方法ではＲＯＭやシステムボードのコストが高くなる。このように、上述したＲＯＭの書き換え方法では、システムボード自体のコストやシステムボードの開発コストが高くなる。
【０００５】
また、従来の動作確認方法では、ＣＰＵが開発中にも関わらずシステムボードだけの評価を先に終えなければならない場合に、システムボードの十分な評価を行うことができなかった。また、システムボードに異なるプロセッサを使用したい場合や、装着済みのＣＰＵでは処理能力が足りないため実現できない機能がある場合、システムボードを設計しなおす必要があった。
【０００６】
ところで、ポータブルコンピュータなどの小型の電子機器に用いるシステムボードでは、実装面積の制約などの問題から、高速転送用のバス（高速転送バス）と、シリアル転送用のＩ2Ｃバスとが併用される場合がある（例えば、特許文献１参照）。このようなシステムボードでは、Ｉ2Ｃバス上の各デバイスのバス使用権を調停する調停装置が高速転送バスとＩ2Ｃバスとの間に設けられており、調停装置によってデバイス間のバス使用権が調停されている。ところが、このシステムボードでは、デバイス間でのマスタ調停を行うことはできるが、システムボード上の半導体チップの代わりに外部の半導体チップをシステムボード上で動作させることはできないという問題があった。
【０００７】
【特許文献１】特開平９−６７１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、電子機器に対する種々の動作制御を容易かつ簡易な構成で行う動作制御方法および開発支援装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
本願発明の一態様によれば、システムボードを用いて電子機器の動作を制御する動作制御方法において、前記システムボードに着脱可能な構成を有した拡張ボードと前記システムボードとが接続された際に、前記システムボードが搭載するデバイスであって前記電子機器の動作制御に用いられるデバイスへのアクセス許可を、前記システムボードに搭載された第１の情報処理装置または前記拡張ボードに搭載された第２の情報処理装置の何れか一方に与えることによって、前記電子機器の動作制御を行う制御装置を前記第１の情報処理装置と第２の情報処理装置との間で切り替えるアクセス許可ステップと、前記第２の情報処理装置に前記アクセス許可が与えられた場合に、前記第２の情報処理装置が前記デバイスへアクセスしながら前記電子機器の動作制御を行う動作制御ステップと、を含むことを特徴とする動作制御方法が提供される。
【００１０】
また、本願発明の一態様によれば、システムボードを用いて電子機器の動作を制御する動作制御方法において、前記システムボードに着脱可能な構成を有した拡張ボードと、プログラミングが可能な第１の情報処理装置を搭載したシステムボードとが接続された際に、前記拡張ボードに搭載された第２の情報処理装置が前記第１の情報処理装置の初期化処理に用いる初期化データを前記システムボード上のデバイスに書き込む初期化データ書き込みステップと、前記第１の情報処理装置が前記初期化データを前記デバイスから読み出して初期化処理を行うとともに前記電子機器の動作制御を行う動作制御ステップと、を含むことを特徴とする動作制御方法が提供される。
【００１１】
また、本願発明の一態様によれば、電子機器の動作を制御する第１の情報処理装置を搭載したシステムボードと、前記システムボードに着脱可能な構成を有するとともに前記電子機器の動作を制御する第２の情報処理装置を搭載した拡張ボードと、を備え、前記システムボードは、前記拡張ボードと前記システムボードとが接続された際に、前記システムボードが搭載するデバイスであって前記電子機器の動作制御に用いられるデバイスへのアクセス許可を、前記第１の情報処理装置または前記第２の情報処理装置の何れか一方に与えることによって、前記電子機器の動作制御を行う制御装置を前記第１の情報処理装置と第２の情報処理装置との間で切り替えるスイッチ回路を具備し、前記第２の情報処理装置は、前記スイッチ回路によって前記第２の情報処理装置に前記アクセス許可が与えられた場合に、前記デバイスへアクセスしながら前記電子機器の動作制御を行うことを特徴とする開発支援装置が提供される。
【００１２】
また、本願発明の一態様によれば、電子機器の動作を制御するプログラミングが可能な第１の情報処理装置を搭載したシステムボードと、前記システムボードに着脱可能な構成を有するとともに、前記システムボードに装着されると前記デバイスに接続される第２の情報処理装置を搭載した拡張ボードと、を備え、前記第２の情報処理装置は、前記拡張ボードが前記システムボードに接続された際に、前記第１の情報処理装置の初期化処理に用いる初期化データを前記システムボード上のデバイスに書き込み、前記第１の情報処理装置は、前記初期化データを前記デバイスから読み出して初期化処理を行うとともに前記電子機器の動作制御を行うことを特徴とする開発支援装置が提供される。
【発明の効果】
【００１３】
この発明によれば、電子機器に対する種々の動作制御を容易かつ簡易な構成で行うことが可能になるという効果を奏する。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明に係る動作制御方法および開発支援装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１５】
（第１の実施の形態）
図１は、第１の実施の形態に係る開発支援装置の構成を示す図である。開発支援装置１００は、システムボード１Ａと拡張ボード１Ｂとと含んで構成された電子計算機装置である。開発支援装置１００は、システムボード１Ａや拡張ボード１Ｂに、電子機器に搭載するシステムボードと同様の動作を行なわせる。開発支援装置１００は、例えば、プロセッサのクロック周波数を種々変化させたり、プロセッサへの供給電圧を種々変化させたりしながら電子機器の開発において拡張する機能などを動作させる。具体的には、システムボード１Ａが、システムボード１Ａに搭載済みのプロセッサ（ＣＰＵ１０Ａ）を、拡張ボード１Ｂに搭載されたプロセッサ（ＣＰＵ１０Ｂ）に切り替えてシステムボード１Ａを動作させる。なお、ＣＰＵ１０Ａが特許請求の範囲に記載の第１の情報処理装置に対応し、ＣＰＵ１０Ｂが特許請求の範囲に記載の第２の情報処理装置に対応している。
【００１６】
システムボード１Ａは、種々の半導体チップ（ＬＳＩ（Large-Scale  Integration））などを搭載したメインボードであり、このシステムボード１Ａだけで動作が可能なよう構成されている。システムボード１Ａは、ＣＰＵ１０Ａと、ＣＰＵスイッチ回路２０Ａと、ＲＯＭ３０Ａと、ＲＡＭ４０Ａと、拡張コネクタ３Ａと、バス（パラレルバス）５Ａとを有している。ＣＰＵ１０Ａ、ＣＰＵスイッチ回路２０Ａ、ＲＯＭ３０Ａ、ＲＡＭ４０Ａ、拡張コネクタ３Ａは、それぞれバス５Ａに接続されている。
【００１７】
ＣＰＵ１０Ａは、プロセッサＣＰＵであり、電子機器のハードウェアに関する制御を行う。例えば、ＣＰＵ１０Ａは、電源回路のＯＮ／ＯＦＦの制御、電源の監視、ファンの制御、図示しないメインプロセッサからの異常通知に応じたＬＥＤ表示などを行う。ＣＰＵ１０Ａは、バス５Ａに接続されたＲＡＭ４０ＡやＲＯＭ３０Ａから命令をフェッチして実行する。
【００１８】
ＲＯＭ３０Ａは、制御プログラムやアプリケーションプログラムを記憶する不揮発性のメモリであり、ＲＡＭ４０Ａは、制御プログラムやアプリケーションプログラムなどを展開する領域として用いられる揮発性のメモリである。ＲＯＭ３０Ａは、ＣＰＵ１０Ａのブートコード、プログラム、データなどを格納し、ＲＡＭ４０Ａは、ＣＰＵ１０Ａのプログラムやデータを格納する。拡張コネクタ３Ａは、システムボード１Ａと拡張ボード１Ｂとを接続するためのコネクタである。
【００１９】
システムボード１Ａでは、ＣＰＵ１０Ａ、ＲＯＭ３０Ａ、ＲＡＭ４０Ａによってシステムコントローラ（電源マイコンなどのサブマイコン）を構成している。このシステムコントローラは、ＣＰＵ１０ＡがＲＯＭ３０Ａに格納されている制御プログラムやアプリケーションプログラムなどを読み出してＲＡＭ４０Ａ内のプログラム格納領域に展開し、電子機器の電源に関する制御などを実行する。
【００２０】
拡張ボード１Ｂは、ＣＰＵ（プロセッサＣＰＵ）１０Ｂとバス５Ｂを搭載したボードであり、ＣＰＵ１０Ｂがバス５Ｂに接続されている。拡張ボード１Ｂは、システムボード１Ａの拡張コネクタ３Ａに着脱可能な構成となっている。使用者によって拡張ボード１Ｂとシステムボード１Ａが拡張コネクタ３Ａを介して接続されると、バス５Ｂとバス５Ａが接続する。そして、バス５Ｂとバス５Ａとが接続されると、ＣＰＵ１０Ｂは、所定の条件を満たした場合に、システムボード１Ａのバス５Ａに接続されているデバイス（ＲＯＭ３０Ａ、ＲＡＭ４０Ａなど）へアクセス可能となる。拡張ボード１Ｂは、システムボード１Ａに接続した状態で、電子機器の動作環境をシステムボード１Ａに提供する。なお、バス５Ｂとバス５Ａとが接続されると、ＣＰＵ１０Ａは、所定の条件を満たした場合に、拡張ボード１Ｂのバス５Ｂに接続されたデバイス（図示せず）へアクセスすることが可能となる。
【００２１】
ＣＰＵスイッチ回路２０Ａは、ＣＰＵ１０Ａによるシステムボード１Ａの動作制御と、ＣＰＵ１０Ｂによるシステムボード１Ａの動作制御と、を切り替えるスイッチ回路である。本実施の形態では、ＣＰＵスイッチ回路２０ＡがＣＰＵ１０ＡとＣＰＵ１０Ｂとの切り替える。そして、所定の条件を満たした場合にＣＰＵ１０Ｂにシステムボード１Ａの動作制御を行なわせ、これにより電子機器に追加実装する機能の動作などが実行される。
【００２２】
なお、図１ではシステムボード１Ａが備える他の構成要素の図示を省略している。システムボード１Ａは、例えばメインプロセッサ、メインプロセッサの動作に用いるＲＯＭやＲＡＭ、ハードディスクドライブなどを備えている。
【００２３】
つぎに、開発支援装置１００内で送受信される信号について説明する。ＣＰＵスイッチ回路２０Ａは、ＣＰＵ１０Ａへ送出する信号として、リセット信号（xRESET６５）、割り込み信号（xNMI６４）、クロック信号（xCLK６３）の送出タイミングを制御し、ＣＰＵ１０Ｂへ送出する信号としてバス許可信号（SX_GRANT６１）の送出タイミングを制御する。xNMI６４は、ＣＰＵ１０Ａへの割り込み信号であり、本実施の形態では、エッジ検出のノンマスカブル割り込みを想定している。ＣＰＵ１０Ａは、ＣＰＵスイッチ回路２０Ａに送出する信号として、停止信号（xHALT６６）、クロック信号（CLK６７）の送出タイミングを制御する。ＣＰＵ１０Ｂは、ＣＰＵスイッチ回路２０Ａに送出するバス要求信号（SX_REQUEST６２）の送出タイミングを制御する。
【００２４】
拡張コネクタ３Ａへは、ＣＰＵ１０ＢからのSX_REQUEST６２が入力され、拡張コネクタ３Ａに入力されたSX_REQUEST６２はＣＰＵスイッチ回路２０Ａへ送られる。また、拡張コネクタ３Ａへは、ＣＰＵスイッチ回路２０ＡからのSX_GRANT６１が入力され、拡張コネクタ３Ａに入力されたSX_GRANT６１はＣＰＵ１０Ｂへ送られる。
【００２５】
開発支援装置１００では、SX_REQUEST６２がｌｏｗのとき、SX_GRANT６１はｌｏｗになる。このとき、システムボード１Ａは、通常の動作モードとなり、ＣＰＵ１０Ａは、ＲＯＭ３０ＡまたはＲＡＭ４０Ａから命令をフェッチして通常の動作モードに関する処理を行う。
【００２６】
拡張ボード１Ｂがシステムボード１Ａの拡張コネクタ３Ａに接続された後、ＣＰＵ１０Ｂは、システムボード１Ａ内のバス５Ａに接続されたデバイス（ＲＯＭ３０Ａ、ＲＡＭ４０Ａ、図示しないその他のデバイス）（以下、システム側デバイスという）にアクセスを行う。このとき、ＣＰＵ１０Ｂは、アクセスを開始する前にSX_REQUEST６２をｈｉｇｈ（アサート）にする。そして、ＣＰＵスイッチ回路２０Ａは、ＣＰＵ１０Ａとの間で後述する所定の処理を行った後、SX_GRANT６１をｈｉｇｈにする。ＣＰＵ１０Ｂは、SX_GRANT６１がｈｉｇｈの間、システム側デバイスへのアクセスが許可される。ＣＰＵ１０Ｂは、システム側デバイスへのアクセスが終了すると、SX_REQUEST６２をｌｏｗ（デアサート）にし、ＣＰＵスイッチ回路２０Ａへバス５Ａの開放を通知する。ＣＰＵスイッチ回路２０Ａは、SX_REQUEST６２がｌｏｗになった後、SX_GRANT６１をｌｏｗにする。ＣＰＵ１０Ｂは、SX_GRANT６１がｌｏｗの間、システム側デバイスへのアクセスが禁止される。
【００２７】
xHALT６６は、ＣＰＵ１０Ａが停止したことを示す信号であり、ＣＰＵ１０ＡがＣＰＵ停止命令（ｈａｌｔ命令）を実行したとき（ＣＰＵ１０Ａが停止したとき）にｈｉｇｈになる。xHALT６６がｌｏｗの場合にＣＰＵ１０Ａが命令を実行していることを示し、xHALT６６がｈｉｇｈの場合にＣＰＵ１０Ａが命令の実行を停止していることを示す。
【００２８】
ＣＰＵスイッチ回路２０Ａは、CLK６７、ＣＰＵ１０ＢからのSX_REQUEST６２、ＣＰＵ１０ＡからのxHALT６６を入力とし、ＣＰＵ１０へのSX_GRANT６１、ＣＰＵ１０ＡへのxRESET６５、xNMI６４、xCLK６３を出力とする回路である。
【００２９】
ここで、ＣＰＵスイッチ回路２０Ａの回路構成について説明する。図２は、ＣＰＵスイッチ回路の回路構成を示す図である。なお、図２に示す回路構成図は簡略図であり、タイミング調整回路などの図示を省略している。ＣＰＵスイッチ回路２０Ａは、ＣＰＵスイッチコントロール２１、ＡＮＤ回路２２，２３，２４、ＯＲ回路２５、ＣＧ回路２６、エッジ検出回路２７を有している。
【００３０】
ＣＰＵスイッチコントロール２１は、ＣＰＵ１０Ａを停止させる際のＣＰＵ１０Ａの動作モードを設定するためのレジスタである。ＣＰＵスイッチコントロール２１は、ＣＰＵ１０ＡやＣＰＵ１０Ｂからバス５Ａを介してアクセス可能なレジスタまたは、他の手段（スイッチなどの入力手段）によって値を変更可能なレジスタである。ＣＰＵスイッチコントロール２１は、例えば開発支援装置１００の使用者によって動作モードが設定される。ＣＰＵスイッチコントロール２１は、ＣＰＵ１０Ａに割り込み処理ＮＭＩを実行させた後にＣＰＵ１０Ａを停止させる設定の場合はｈｉｇｈ（「１」）を出力し、ＣＰＵ１０Ａをリセット状態にした後に停止させる設定の場合はｌｏｗ（「０」）を出力する。
【００３１】
ＣＧ回路２６は、SX_GRANT６１がｌｏｗの間、CLK６７をxCLK６３としてＣＰＵ１０Ａへ送出する回路である。ＣＧ回路２６は、SX_GRANT６１がｌｏｗのとき、xCLK６３を出力し、SX_GRANT６１がｈｉｇｈのとき、xCLK６３を停止する。
【００３２】
エッジ検出回路２７は、SX_REQUEST６２がｌｏｗからｈｉｇｈへ遷移することや、ｈｉｇｈからｌｏｗへ遷移すること検出し、これらを検出した場合にxNMI６４の送出に必要なパルスを発生させる回路である。
【００３３】
ＣＰＵスイッチコントロール２１から送出される信号（ｌｏｗまたはｈｉｇｈ）は、ＡＮＤ回路２２に入力される。また、ＣＰＵスイッチコントロール２１から送出される信号は、反転してＡＮＤ回路２３に入力される。ＣＰＵ１０ＢからのSX_REQUEST６２は、エッジ検出回路２７、ＡＮＤ回路２３、ＡＮＤ回路２４に入力される。ＣＰＵ１０ＡからのxHALT６６は、ＡＮＤ回路２４に入力される。また、クロック発生回路（図示せず）からのCLK６７はＣＧ回路２６に入力される。
【００３４】
エッジ検出回路２７から送出される信号は、ＡＮＤ回路２２に送られる。ＡＮＤ回路２２は、ＣＰＵスイッチコントロール２１からの信号がｈｉｇｈであって、且つエッジ検出回路２７からの信号がｈｉｇｈの場合に、xNMI６４のｈｉｇｈをＣＰＵ１０Ａに送出する。
【００３５】
ＡＮＤ回路２３は、ＣＰＵスイッチコントロール２１からの信号がｌｏｗの場合（反転してｈｉｇｈとなる場合）であって、且つSX_REQUEST６２のｈｉｇｈがＣＰＵスイッチ回路２０Ａに入力された場合に、xRESET６５のｈｉｇｈをＣＰＵ１０Ａに送出する。
【００３６】
ＡＮＤ回路２４は、SX_REQUEST６２のｈｉｇｈがＣＰＵスイッチ回路２０Ａに入力された場合であって、且つxHALT６６のｈｉｇｈがＣＰＵスイッチ回路２０Ａに入力された場合に、ｈｉｇｈの信号をＯＲ回路２５に送出する。
【００３７】
ＯＲ回路２５は、ＡＮＤ回路２４からｈｉｇｈが入力された場合またはＡＮＤ回路２３からｈｉｇｈが入力された場合に、SX_GRANT６１をＣＰＵ１０Ｂに送出するとともに、ｈｉｇｈの信号をＣＧ回路２６に送出する。ＣＧ回路２６は、SX_GRANT６１がｈｉｇｈの間ＣＰＵ１０ＡへのxCLK６３を停止し、SX_GRANT６１がｌｏｗの間ＣＰＵ１０ＡへxCLK６３を送出する。
【００３８】
つぎに、ＣＰＵスイッチコントロール２１から送出される値が「０」（ｌｏｗ）である場合（ＣＰＵ１０Ａをリセット状態にした後に停止させる場合）の動作を図３を参照して説明する。図３は、ＣＰＵ１０Ａをリセット状態にした後に停止させる場合の、開発支援装置１００の動作タイミングを示す図である。
【００３９】
（図３のサイクル１）
SX_REQUEST６２がｌｏｗの場合、ＡＮＤ回路２２，２３，２４の出力がｌｏｗになり、xNMI６４とxRESET６５の出力がｌｏｗになる。また、ＯＲ回路２５の出力がｌｏｗになり、SX_GRANT６１にｌｏｗが出力される。そして、ＣＧ回路２６は、CLK６７の入力をそのままxCLK６３としてＣＰＵ１０Ａへ出力する。このとき、ＣＰＵ１０Ａは通常動作モードとなり、ＣＰＵ１０Ａはバス５Ａに接続されたＲＯＭ３０Ａ、ＲＡＭ４０Ａなどのシステム側デバイスへのアクセスを行う。ＣＰＵ１０Ｂは、SX_GRANT６１がｌｏｗなので、システム側デバイスへのアクセスを行うことはできない。
【００４０】
（図３のサイクル２，３）
つぎに、ＣＰＵ１０ＢがSX_REQUEST６２をｈｉｇｈにした場合について説明する。SX_REQUEST６２がｌｏｗからｈｉｇｈになると（タイミング７１）、ＡＮＤ回路２３がｈｉｇｈとなり、ＡＮＤ回路２３がＣＰＵ１０ＡにｈｉｇｈのxRESET６５を出力する（タイミング７２）。また、ＯＲ回路２５の出力がｈｉｇｈとなり、ＣＰＵ１０ＢにｈｉｇｈのSX_GRANT６１を出力する（タイミング７３）。SX_GRANT６１がｈｉｇｈのとき、ＣＧ回路２６は、xCLK６３の出力をｈｉｇｈに固定し（タイミング７７）、ＣＰＵ１０Ａへのクロック供給を停止する。
【００４１】
これにより、ＣＰＵ１０Ａはリセット状態となり、バス５Ａを開放した状態になる。ＣＰＵ１０Ｂは、SX_GRANT６１がｈｉｇｈの間、システム側デバイスへのアクセスを開始できる。
【００４２】
（図３のサイクルｎ，ｎ＋１，ｎ＋２，ｎ＋３）
つぎに、ＣＰＵ１０ＢがSX_REQUEST６２をｌｏｗにした場合について説明する。SX_REQUEST６２がｌｏｗになると（タイミング７４）、ＡＮＤ回路２３の出力がｌｏｗとなり、ＯＲ回路２５の出力がｌｏｗになる。これにより、ＯＲ回路２５はＣＰＵ１０ＢにｌｏｗのSX_GRANT６１を出力し（タイミング７６）、ＣＧ回路２６は、xCLK６３のクロック出力を再開する（タイミング７８)。最後に、ＡＮＤ回路２３は、ＣＰＵ１０ＡにｌｏｗのxRESET６５を出力する（タイミング７５）、これにより、ＣＰＵ１０Ａは、リセット状態が解除され、ＲＯＭ３０Ａから命令をフェッチし、通常の動作モードに関する処理の実行を開始する。
【００４３】
つぎに、ＣＰＵスイッチコントロール２１から送出される値が「１」（ｈｉｇｈ）である場合（ＣＰＵ１０Ａを割り込み後に停止させる場合）の動作を図４，図５を参照して説明する。図４は、ＣＰＵ１０Ａを割り込み後に停止させる場合の、開発支援装置１００の動作タイミングを示す図である。図５は、ＣＰＵ１０Ａが割り込み処理を行う際の動作手順を示すフローチャートである。なお、図４に示すサイクル１の処理は、図３のサイクル１と同様の処理であるので、その説明を省略する。
【００４４】
（図４のサイクル２）
まず、ＣＰＵ１０ＢがSX_REQUEST６２をｈｉｇｈにした場合について説明する。SX_REQUEST６２がｌｏｗからｈｉｇｈになると（タイミング７１）、エッジ検出回路２７でパルスが生成され、ＡＮＤ回路２２を介して、ＣＰＵ１０ＡにxNMI６４のｈｉｇｈが出力される（タイミング８１）。これにより、ＣＰＵ１０Ａへ割り込みが通知され、ＣＰＵ１０Ａが割り込み処理ＮＭＩの実行を開始する（ステップＳ１１）。
【００４５】
（図４のサイクル３〜ｘ）
ＣＰＵ１０Ａは、割り込み処理ＮＭＩを開始すると、はじめにSX_REQUEST６２の状態をチェックする（ステップＳ１２）。具体的には、例えばＣＰＵスイッチ回路２０ＡにSX_REQUEST６２の状態を記憶するレジスタ（図示せず）を設けておく。そして、ＣＰＵ１０Ａがこのレジスタを確認することによってSX_REQUEST６２の状態を呼び出してSX_REQUEST６２の状態をチェックする。また、SX_REQUEST６２の状態チェックを行うために、割り込み処理ＮＭＩの発生に応じたフラグを設定してもよい。例えば、最初の割り込み処理ＮＭＩが発生した場合に、フラグを「１」に設定し、次の割り込み処理ＮＭＩが発生した場合に、フラグを「０」に設定する。この後、割り込み処理ＮＭＩが発生する度に、フラグの設定値を「０」と「１」との交互に変更していく。この場合、ＣＰＵ１０Ａが、フラグに「０」または「１」の何れが設定されているかを判別することによって、SX_REQUEST６２の状態をチェックする。
【００４６】
ここでのSX_REQUEST６２の状態はｈｉｇｈなので、ＣＰＵ１０Ａは割り込み前に実行していた処理の中断を適切に実行し（ステップＳ１３）、バス５Ａを開放する準備をする。そして、ＣＰＵ１０Ａは、最後にＣＰＵ停止命令（ｈａｌｔ命令）を実行する（ステップＳ１４）。
【００４７】
（図４のサイクルｍ）
ＣＰＵ１０Ａは、ｈａｌｔ命令の実行として、動作確認に関する命令（電源に関する制御命令など）の実行を停止してxHALT６６をｈｉｇｈにする（タイミング８３）。これにより、ＡＮＤ回路２４がｈｉｇｈとなり、ＯＲ回路２５の出力がｈｉｇｈになる。そして、ＣＰＵスイッチ回路２０Ａは、SX_GRANT６１をｈｉｇｈとした出力を行う（タイミング７３）。SX_GRANT６１がｈｉｇｈのとき、ＣＧ回路２６は、xCLK６３の出力をｈｉｇｈに固定し（タイミング７７）、ＣＰＵ１０Ａへのクロック供給を停止する。これにより、ＣＰＵ１０Ａは停止状態となり、バス５Ａが開放された状態となる。ＣＰＵ１０Ｂは、SX_GRANT６１がｈｉｇｈの間、バス５Ａに接続されたＲＯＭ３０Ａ、ＲＡＭ４０Ａへのアクセスを開始することができる。
【００４８】
（図４のサイクルｎ，ｎ＋１）
この後、ＣＰＵ１０ＢがサイクルｎでSX_REQUEST６２をｌｏｗにすると（タイミング７４)、ＡＮＤ回路２４の出力がｌｏｗとなり、ＯＲ回路２５の出力がｌｏｗになる。そして、ＣＰＵスイッチ回路２０Ａは、サイクルｎ＋１でSX_GRANT６１をｌｏｗとした出力を行う（タイミング７６）。そして、ＣＧ回路２６は、ＣＰＵ１０Ａへのクロック出力（xCLK６３）を再開する（タイミング７８)。
【００４９】
（図４のサイクルｎ＋２）
エッジ検出回路２７は、サイクルｎでSX_REQUEST６２がｈｉｇｈからｌｏｗへ遷移したことを検出し、その後パルスを生成する。そして、エッジ検出回路２７は、パルスをxNMI６４としてＡＮＤ回路２２を介して出力する（タイミング８２）。これにより、ＣＰＵスイッチ回路２０Ａは、ＣＰＵ１０Ａへ割り込みを通知する。
【００５０】
（図４のサイクルｎ＋３）
ＣＰＵ１０Ａは、割り込みが通知されると、xHALT６６をｌｏｗにして（タイミング８４）、動作確認したい命令の実行を再開し、割り込み処理ＮＭＩ（ステップＳ１１）を実行する。ＣＰＵ１０Ａは、はじめにSX_REQUEST６２の状態をチェックする（ステップＳ１２）。ここでのSX_REQUEST６２の状態はｌｏｗなので、ＣＰＵ１０Ａは、割り込み前に実行していた処理の再開または他の処理を開始する（ステップＳ１５）。なお、システムボード１Ａに拡張ボード１Ｂが接続されていない場合には、SX_REQUEST６２がｌｏｗとなるよう、システムボード１Ａを構成しておく。
【００５１】
なお、、開発支援装置１００が動作を行なわせる電子機器は、ＰＣ、テレビ、ＨＤレコーダなど何れの電子機器であってもよい。また、ＣＰＵ１０Ｂは、システム側デバイスにアクセスできるタイミングでＲＯＭ３０Ａ内のデータの書き換えを行なってもよい。
【００５２】
このように、簡易な構成のＣＰＵスイッチ回路２０Ａをシステムボード１Ａ上に追加することによって、システムボード１Ａに着脱可能な拡張ボード１Ｂから、システム側デバイスへアクセスすることが可能となる。また、ＣＰＵ１０Ａへリセットや割り込みを行なわせることが可能となり、ＣＰＵ１０ＡとＣＰＵ１０Ｂを切り替えて用いることが可能となる。これにより、ＣＰＵ１０Ａとは異なるプロセッサを利用したい場合に、ＣＰＵ１０Ｂを利用することにより、システムボード１Ａを設計・製造する前に、電子機器の事前評価を開始できる。
【００５３】
また、ＣＰＵスイッチ回路２０Ａと拡張コネクタ３Ａは、低コストでシステムボード１Ａ上に作製することができるので、安価なシステムボード１Ａを提供することが可能となる。また、拡張ボード１Ｂと、システムボード１Ａの接続は、汎用的なインタフェースによって行うので、システムボード１Ａとは異なるシステムボードを開発する場合であっても、拡張ボード１Ｂ使用できる。
【００５４】
また、ＣＰＵ１０Ａでは処理能力が足りないために実装できない機能であっても拡張ボード１Ｂを用いることによって、新たな機能の動作を行なわせることが可能となる。また、ＣＰＵ１０Ａが開発中で利用できない場合であっても、拡張ボード１Ｂを用いることによって、システムボード１Ａの評価を行うことができる。
【００５５】
なお、本実施の形態では、ＣＰＵスイッチ回路２０ＡがＣＰＵスイッチコントロール２１を有している場合について説明したが、ＣＰＵスイッチ回路２０ＡがＣＰＵスイッチコントロール２１を有さない構成としてもよい。この場合、予め設定した所定の動作モードによってＣＰＵ１０Ａを停止させる。
【００５６】
また、本実施の形態では、ＣＰＵ１０Ａが電源回路のＯＮ／ＯＦＦの制御などの周辺機能の動作制御を行う場合について説明したが、ＣＰＵ１０Ａはメインプロセッサであってもよい。
【００５７】
このように第１の実施の形態によれば、ＣＰＵ１０ＡとＣＰＵ１０Ｂを切り替えて動作させることができるので、電子機器に対する種々の動作制御を容易かつ簡易な構成で行うことが可能となる。
【００５８】
（第２の実施の形態）
つぎに、図６を用いてこの発明の実施の形態２について説明する。第２の実施の形態では、ＣＰＵ１０ＡとＣＰＵスイッチ回路２０Ａをプログラミングが可能なＦＰＧＡ（Field  Programmable  Gate  Array）９Ａで構成する。そして、ＣＰＵ１０ＢがＲＯＭ３０ＡにＦＰＧＡ９Ａ用の初期化データの書き込みを行う。
【００５９】
図６は、第２の実施の形態に係る開発支援装置の構成を示す図である。図６の各構成要素のうち図１に示す第１の実施の形態の開発支援装置１００と同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【００６０】
開発支援装置１０１のシステムボード１Ａは、ＦＰＧＡ９Ａと、ＲＯＭ３０Ａと、ＲＡＭ４０Ａと、拡張コネクタ３Ａと、バス５Ａとを有している。そして、ＦＰＧＡ９Ａは、ＣＰＵ１０Ａと、ＣＰＵスイッチ回路２０Ａと、を備えている。
【００６１】
本実施の形態では、ＦＰＧＡ９Ａ用の初期化データと、ＣＰＵ１０Ａのプログラムやデータと、を１つの汎用の不揮発性メモリ（ＲＯＭ３０Ａ）へ記録する。また、拡張コネクタ３Ａに入力する信号としてＦＰＧＡ初期化開始信号（PROG_B９１）を追加し、拡張ボード１Ｂに実装されるＣＰＵ１０ＢによってPROG_B９１の送出タイミングを制御する。
【００６２】
PROG_B９１は、ＣＰＵ１０ＡにＲＯＭ３０ＡからＦＰＧＡ９Ａ用の初期化データを読み出させて、ＦＰＧＡ９Ａの初期化（初期化処理）を行わせる信号である。PROG_B９１は、ＣＰＵ１０Ｂから送出された後、拡張コネクタ３Ａを介してＦＰＧＡ９Ａに入力される。
【００６３】
ここで、第２の実施の形態に係る開発支援装置１０１の動作手順について説明する。拡張ボード１Ｂが拡張コネクタ３Ａへ接続されると、ＣＰＵ１０Ｂが、PROG_B９１をｈｉｇｈからｌｏｗへ切り替えて出力し、さらにｌｏｗからｈｉｇｈへ切り替えて出力する。これにより、ＦＰＧＡ９ＡはＲＯＭ３０ＡからＦＰＧＡ９Ａ用の初期化データを読み出してＦＰＧＡ９Ａの初期化を行う。具体的には、PROG_B９１がｌｏｗからｈｉｇｈになると、ＦＰＧＡ９Ａは初期化を実行する。そして、初期化が完了すると、ＣＰＵ１０Ａのリセット状態が解除され、ＣＰＵ１０ＡはＲＯＭ３０Ａから命令をフェッチし実行する。
【００６４】
初期化の完了後は、PROG_B９１がｌｏｗになるまで開発支援装置１００がウェイト状態となる。開発支援装置１００では、PROG_B９１がｌｏｗの間、バス５Ａが開放される。ＣＰＵ１０Ｂが、PROG_B９１をｌｏｗの固定にしておけば、ＦＰＧＡ９Ａは初期化を開始しないので、バス５Ａは開放された状態になる。ＣＰＵ１０Ｂは、バス５Ａが開放されている間、システム側デバイスにアクセスできる。したがって、ＣＰＵ１０Ｂは、SX_REQUEST６２やSX_GRANT６１を使用しないでも、バス５Ａに接続されたＲＯＭ３０ＡやＲＡＭ４０Ａへアクセスを開始することができる。
【００６５】
これにより、システムボード１ＡがＲＯＭの書き込み機能を有してない場合であっても、システムボード１Ａの製造時やプログラムの更新時にＣＰＵ１０ＢがＲＯＭ３０Ａにプログラムの書き込みを行うことが可能となる。なお、システムボード１Ａに拡張ボード１Ｂが接続されていない場合には、PROG_B９１がｌｏｗとなるよう、システムボード１Ａを構成しておく。
【００６６】
なお、本実施の形態のようにシステムボード１ＡがＦＰＧＡ９Ａを有する構成の場合であっても、第１の実施の形態の場合の開発支援装置１００と同様に、開発支援装置１０１のＣＰＵ１０ＢはSX_REQUEST６２やSX_GRANT６１の機能を利用することも可能である。この場合、拡張ボード１Ｂから、システムボード１ＡのＲＡＭ３０ＡやＲＯＭ４０Ａを更新した後、SX_REQUEST６２としてｌｏｗを出力することにより、ＣＰＵ１０Ａは、新たな処理を開始することが可能になる。そして、システムボード１Ａの電源がＯＦＦにされ、再びＯＮになった場合に、ＣＰＵ１０ＡがＲＯＭ３０Ａから命令をフェッチし実行する。
【００６７】
このように、第２の実施の形態によれば、ＣＰＵ１０ＢがＦＰＧＡ９Ａの初期化データをＲＯＭ３０Ａに書き込むので、ＦＰＧＡ９Ａの初期化データを格納するためのＪＴＡＧインタフェースなどを備えたＲＯＭが不要となる。また、ＦＰＧＡ９Ａの初期化データを書き込むための専用のＲＯＭプログラミング装置が不要となる。また、通常動作用のＦＰＧＡ９Ａ用の初期化データをＲＯＭへ書き込む複雑な手順が不要となる。
【００６８】
また、ＲＯＭ３０をソケット化することによってシステムボード１Ａに接続する必要がなくなる。このため、開発支援装置１００の部品代や実装コストを抑えることが可能となる。また、ＣＰＵ１０ＡがＲＯＭ３０Ａの書き換えに失敗し、ＣＰＵ１０Ａが正しく動作しなくなった場合に、システムボード１Ａに直接実装してあるＲＯＭ３０Ａを新たなＲＯＭに交換する必要がないのでＲＯＭの交換コストを要しない。したがって、複数の異なる装置やデータを用いる必要がなくなり、電子機器の開発を行う際の運用性や利便性が向上する。
【００６９】
本発明は上述した第１の実施の形態、第２の実施の形態以外にも、種々の異なる実施の形態によって実施してもよい。例えば、ＣＰＵ１０ＡがＣＰＵ停止命令を行なえない構成の場合、ＣＰＵスイッチ回路２０Ａにレジスタを追加して、ＣＰＵスイッチ回路２０Ａ内で、xHALT６６に対応する信号を生成してもよい。
【００７０】
また、第１および第２の実施の形態では、ＣＰＵスイッチ回路２０ＡがＣＧ回路２６を実装する場合について説明したが、ＣＰＵスイッチ回路２０ＡがＣＧ回路２６を実装しない構成としてもよい。ＣＰＵスイッチ回路２０ＡがＣＧ回路２６を実装する場合、ＣＰＵスイッチ回路２０ＡがＣＧ回路２６を実装しない場合よりも低消費電力でＣＰＵスイッチ回路２０Ａを動作させることが可能となる。また、第１および第２の実施の形態では、xNMI６４がエッジ割込み（エッジ検出）である場合について説明したが、xNMI６４はレベル割り込み（レベル検出）であってもよい。
【００７１】
また、ＣＰＵ１０Ａへ通知するxNMI６６にエッジ割り込みを使用する場合、SX_REQUEST６２がｈｉｇｈからｌｏｗへ遷移したときに、ＣＰＵ１０Ａへ割り込みを通知しなくてもよい。
【００７２】
また、ＣＰＵ１０Ａへ通知するxNMI６４は、ノンマスカブル割り込みである場合に限らず通常の割り込みであってもよい。また、バス５Ａはパラレルバスに限らず、シリアルバスでもよい。また、第２の実施の形態において、システムボード１ＡがＣＰＵスイッチ回路２０Ａを有しない構成としてもよい。また、第２の実施の形態において、システムボード１ＡとＣＰＵ１０Ｂとの間で、SX_REQUEST６２とSX_GRANT６１の送受信を行なわない構成としてもよい。
【００７３】
また、第２の実施の形態において、ＦＰＧＡ９Ａの初期化データをＲＯＭ３０Ａとは別の不揮発性メモリに格納してもよい。この場合、システムボード１Ａに、ＦＰＧＡ９Ａの初期化データを格納するための不揮発性メモリを実装しておく。
【００７４】
また、SX_REQUEST６２がｌｏｗの状態であって、且つＣＰＵ１０ＡがＣＰＵ停止命令を実行して停止している状態では、SX_REQUEST６２をｈｉｇｈにしたときにＣＰＵ１０Ａへの割り込み通知を行うことなくSX_GRANT６１をｈｉｇｈにしてもよい。
【００７５】
また、ＣＰＵ１０Ｂは、システム側デバイスにアクセスしないときは、SX_GRANT６１の状態にかかわらず、その他の処理（システム側デバイスへのアクセス以外の処理）を実行してもよい。
【図面の簡単な説明】
【００７６】
【図１】第１の実施の形態に係る開発支援装置の構成を示す図である。
【図２】ＣＰＵスイッチ回路の回路構成を示す図である。
【図３】ＣＰＵをリセット状態にした後に停止させる場合の開発支援装置の動作タイミングを示す図である。
【図４】ＣＰＵを割り込み後に停止させる場合の開発支援装置の動作タイミングを示す図である。
【図５】ＣＰＵが割り込み処理を行う際の動作手順を示すフローチャートである。
【図６】第２の実施の形態に係る開発支援装置の構成を示す図である。
【符号の説明】
【００７７】
１Ａ  システムボード、１Ｂ  拡張ボード、３Ａ  拡張コネクタ、１０Ａ，１０Ｂ  ＣＰＵ、２０Ａ  スイッチ回路、１００，１０１  開発支援装置。
【図１】
2009252025.tif 000003
【図２】
2009252025.tif 000004
【図３】
2009252025.tif 000005
【図４】
2009252025.tif 000006
【図５】
2009252025.tif 000007
【図６】
2009252025.tif 000008