(57)【要約】【課題】  簡易な構成で部品点数を低減できるマルチプロセッサシステム及びスレーブシステムの起動方法を提供すること。【解決手段】  本発明にかかるマルチプロセッサシステムは、マスターシステム１０と、マスターシステム１０とプロセッサ間通信インターフェースを介して接続されたスレーブシステム２０を備えている。マスターシステム１０は、スレーブシステム２０の起動プログラムを格納するプログラムＲＯＭ１３を有する。また、スレーブシステム２０は、プログラムＲＯＭ１３に格納された起動プログラムをプロセッサ間通信インターフェースを介して取得するローダ２５を有する。【選択図】  図１
2007213292.tif 000002
【特許請求の範囲】
【請求項１】
マスターシステムと、前記マスターシステムとプロセッサ間通信インターフェースを介して接続されたスレーブシステムを備えたマルチプロセッサシステムであって、
前記マスターシステムは、
前記スレーブシステムの起動プログラムを格納するプログラムメモリを有し、
前記スレーブシステムは、
前記プログラムメモリに格納された起動プログラムを前記プロセッサ間通信インターフェースを介して取得するローダを有するマルチプロセッサシステム。
【請求項２】
マスターシステムと、前記マスターシステムとプロセッサ間通信インターフェースを介して接続されたスレーブシステムを備えたマルチプロセッサシステムであって、
前記マスターシステムは、
マスターシステム側プロセッサと、
前記スレーブシステムの起動プログラムを格納するプログラムメモリとを有し、
前記スレーブシステムは、
スレーブシステム側プロセッサと、
前記スレーブシステム側プロセッサにより実行されるプログラムを格納するプログラム実行用メモリと、
前記マスターシステムのプログラムメモリに格納された起動プログラムを前記プロセッサ間通信インターフェースを介して取得するローダとを有し、
前記マスターシステム側プロセッサは、
前記ローダに対して起動プログラムのダウンロード命令を発行する手段と、
前記ローダに対して起動プログラムを転送する手段とを有し、
前記ローダは、
前記ダウンロード命令の発行に応じて前記マスターシステム側プロセッサに対して命令確認を発行する手段と、
転送された起動プログラムを受け取り、前記プログラム実行用メモリに格納する手段とを有するマルチプロセッサシステム。
【請求項３】
前記プロセッサ間通信インターフェースは、メモリを介さない通信インターフェースであることを特徴とする請求項１又は２記載のマルチプロセッサシステム。
【請求項４】
前記プロセッサ間通信インターフェースは、シリアル通信インターフェースであることを特徴とする請求項３記載のマルチプロセッサシステム。
【請求項５】
マスターシステムとプロセッサ間通信インターフェースを介して接続されたスレーブシステムの起動方法であって、
前記マスターシステムより、前記スレーブシステムの起動プログラムを前記スレーブシステムに対して前記プロセッサ間通信インターフェースを介して転送し、
前記スレーブシステムにおいて、前記転送された起動プログラムをプログラム実行用メモリに格納し、
前記プログラム実行用メモリに格納された起動プログラムに基づいてスレーブシステムを起動するスレーブシステムの起動方法。
【請求項６】
マスターシステムとプロセッサ間通信インターフェースを介して接続されたスレーブシステムの起動方法であって、
マスターシステム側プロセッサが、前記ローダに対して起動プログラムのダウンロード命令を発行し、
前記スレーブシステムのローダが、前記ダウンロード命令の発行に応じて前記マスターシステム側プロセッサに対して命令確認を発行し、
前記マスターシステム側プロセッサが、前記ローダに対して起動プログラムを転送し、
前記ローダが、転送された起動プログラムを受け取り、プログラム実行用メモリに格納し、
前記プログラム実行用メモリに格納された起動プログラムに基づいてスレーブシステムを起動するスレーブシステムの起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを有するマルチプロセッサシステムに関するものであり、特に、マスターシステムとスレーブシステムを備えたマルチプロセッサシステムにおけるスレーブシステムの起動方法に関する。
【背景技術】
【０００２】
組み込み機器の性能向上と低消費電力化という要求に応える一つの解として、複数のプロセッサ・コアを搭載したマルチプロセッサシステムが注目を浴びている（例えば、非特許文献１参照）。
【０００３】
従来のマルチプロセッサシステムの構成例を図４に示す。図４に示されるように、従来のマルチプロセッサシステムは、マスターシステム１０とスレーブシステム２０を備えている。そして、マスターシステム１０は、ＣＰＵ（Central Processor Unit：中央制御装置）１１、ＲＡＭ（Random Access Memory）１２、プログラムＲＯＭ（Read Only Memory）１３、データインターフェース（Ｉ／Ｆ）回路１４を備えている。また、スレーブシステム２０もマスターシステム１０と同様にＣＰＵ２１、ＲＡＭ２２、プログラムＲＯＭ２４、データインターフェース（Ｉ／Ｆ）回路２３を備えている。
【０００４】
図４に示す従来例において、マスターシステム１０とスレーブシステム２０は、ともにプログラムＲＯＭを備え、それぞれ、プログラムＲＯＭに格納された起動プログラム（ブートプログラム）に従って、それぞれのＣＰＵ１１，２１が起動処理を実行する。そのため、図４に示す従来例では、マスターシステム１０とスレーブシステム２０の双方に、マスクＲＯＭやＦＬＡＳＨ等のプログラムＲＯＭを備えているので、部品点数が増えるという問題があった。特に、システム構成の高度化に伴って、最近のマルチプロセッサシステムには、２つ以上のスレーブシステムを持つものも珍しくなくなり、スレーブシステムの数と同じ数のプログラムＲＯＭが必要となり、部品点数の増加がさらに問題化している。
【０００５】
特許文献１には、マルチバスラックを用いた制御システムに関する技術が開示され、特に、マスター基板にあるＲＯＭから他のスレーブ基板のＲＡＭに対してプログラムを転送する点が開示されている。また、特許文献２には、マスタＣＰＵから共通起動プログラムをスレーブＣＰＵに転送し、これによりスレーブＣＰＵが起動する点が開示されている。特許文献３には、複数のＣＰＵを有するマルチＣＰＵ用メモリシステムにおいてプログラムＲＯＭを共有する点が開示されているが、マスターシステムとスレーブシステムより構成されたマルチプロセッサシステムに関するものではない。また、特許文献４には、複数のＣＰＵを有する通信装置が他の通信装置からプログラムをダウンロードする技術が開示されているが、マスターシステムとスレーブシステムより構成されたマルチプロセッサシステムに関するものではない。
【特許文献１】特開２０００−１３７６７１号公報
【特許文献２】特開平１０−３２０３６６号公報
【特許文献３】特開平４−９８４４８号公報
【特許文献４】特開２００５−３１７９６号公報
【非特許文献１】「組み込み分野の『マルチコア』ハード／ソフトの課題，ＯＳの概要と実装事例」，デザインウェーブマガジン２００５年８月号，吉田正康，本田晋也，ＣＱ出版株式会社
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１では、プログラムはマスター基板からスレーブ基板に対して共通メモリバスで転送されるため、プログラムを転送するために複雑なハードウェア構成が必要となるという課題がある。
【０００７】
また、特許文献２では、マスタＣＰＵから共通起動プログラムを一端デュアルポートＲＡＭに格納しておき、これをスレーブＣＰＵがローディングして起動することとしているので、高価なデュアルポートＲＡＭを設け、かつその両側にメモリバスを設けなければならず、高コスト化及び部品点数の増大という課題が生じる。
【課題を解決するための手段】
【０００８】
本発明にかかるマルチプロセッサシステムは、マスターシステムと、前記マスターシステムとプロセッサ間通信インターフェースを介して接続されたスレーブシステムを備えたマルチプロセッサシステムであって、前記マスターシステムは、前記スレーブシステムの起動プログラムを格納するプログラムメモリを有し、前記スレーブシステムは、前記プログラムメモリに格納された起動プログラムを前記プロセッサ間通信インターフェースを介して取得するローダを有するものである。本発明は、このような構成を有するので、スレーブシステムにおいて起動プログラムを格納するためのプログラムメモリを設ける必要がないため部品点数を減らすことができる。特に、起動プログラムをプロセッサ間通信インターフェースを介して取得することとしたので、ローダの構成を簡易にすることができる。
【発明の効果】
【０００９】
本発明によれば、簡易な構成で部品点数を低減できるマルチプロセッサシステム及びスレーブシステムの起動方法を提供することができる。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明の実施の形態にかかるマルチプロセッサシステムの構成図である。本例のマルチプロセッサシステムは、例えば携帯電話機に搭載することができる。図において、当該マルチプロセッサシステムは、マスターシステム１０とスレーブシステム２０により構成されている。本発明の実施の形態にかかるマルチプロセッサシステムは、１チップ上に集積されており、ヘテロジニアス構成を有している。図１に示す例では、それぞれ一つのマスターシステム１０とスレーブシステム２０より構成されているが、複数のスレーブシステム２０を備えていてもよい。
【００１１】
マスターシステム１０は、ＣＰＵ１１、ＲＡＭ１２、プログラムＲＯＭ１３及びデータインターフェース（Ｉ／Ｆ）回路１４を備えている。ＣＰＵ１１は、ＲＡＭ１２、プログラムＲＯＭ１３及びデータインターフェース（Ｉ／Ｆ）回路１４のそれぞれとデータバスにより接続されている。
【００１２】
本例におけるプログラムＲＯＭ１３は、マスターシステム１０の起動プログラムに加えて、スレーブシステム２０の起動プログラムを格納している。
【００１３】
スレーブシステム２０は、ＣＰＵ２１、ＲＡＭ２２、データインターフェース（Ｉ／Ｆ）回路２３、ローダ２５、エラー訂正回路２６を備えている。本例にかかるスレーブシステム２０は、プログラムＲＯＭ２４を備えていない。ＣＰＵ２１は、ＲＡＭ２２及びエラー訂正回路２６と接続され、さらに、エラー訂正回路２６を介してデータＩ／Ｆ回路２３と接続されている。ローダ２５は、ＣＰＵ２１及びデータＩ／Ｆ回路２３と制御線により接続されている。
【００１４】
ローダ２５は、スレーブシステム２０においてＣＰＵ２１を起動する前に、マスターシステム１０からスレーブシステム２０の起動プログラムをダウンロードするオートイニシャルプログラムローダ（Auto Initial Program Loader）であり、ソフトウェアではなく、ハードウェアにより構成されている。このローダ２５は、簡易通信プロトコルを実現し、かつＲＡＭ２２への転送機能を有する。
【００１５】
エラー訂正回路２６は、マスターシステム１０からダウンロードした起動プログラムのエラー訂正処理を実行する回路である。
【００１６】
マスターシステム１０のデータＩ／Ｆ回路１４とスレーブシステム２０のデータＩ／Ｆ回路２３は、それぞれ、プログラム転送フェーズで通常モードで使用するＣＰＵ間通信Ｉ／Ｆを実現するインターフェース回路である。本例では、特に、データＩ／Ｆ回路１４とデータＩ／Ｆ回路２３は、メモリを介さずにシリアルデータバスにより直接接続されている。つまり、本例におけるデータＩ／Ｆ回路１４とデータＩ／Ｆ回路２３は、共通メモリバスにより接続されるものではない。データＩ／Ｆ回路１４とデータＩ／Ｆ回路２３は、シリアルデータバスでなくとも、２〜４本のパラレルデータバスにより接続するようにしてもよい。
【００１７】
また、マスターシステム１０のＣＰＵ１１とローダ２５は、制御線により接続されている。
【００１８】
続いて、図２のフローチャートを用いて、本発明の実施の形態にかかるマルチプロセッサシステムにおける処理の流れについて説明する。このフローチャートを実行する直前の状態は、マスターシステム１０が起動され、スレーブシステム２０が起動されていない。
【００１９】
最初にマスターシステム１０のＣＰＵ１１は、スレーブシステム２０のローダ２５に対して制御線を介してスレーブシステムの起動プログラムのダウンロード命令を発行する（Ｓ１０１）。
【００２０】
スレーブシステム２０のローダ２５は、当該ダウンロード命令を受領し、これに応じて、スレーブシステム２０のデータＩ／Ｆ回路２３を起動する。これに応じて、データＩ／Ｆ回路２３は起動する。さらに、ローダ２５は、マスターシステム１０のＣＰＵ１１に対してダウンロード命令に関して命令確認を発行する（Ｓ１０２）。
【００２１】
マスターシステム１０のＣＰＵ１１は、ローダ２５から命令確認を受領し、これに応じて、データＩ／Ｆ回路１４を介してさらにローダ２５に対して転送コード数及び転送モードを転送する（Ｓ１０３）。
【００２２】
スレーブシステム２０のローダ２５は、マスターシステム１０のＣＰＵ１１よりデータＩ／Ｆ回路１４及びシリアルデータ配線を介して転送された転送コード数及び転送モードをデータＩ／Ｆ回路２３を介して受領し、所定の記憶手段に格納する。ローダ２５は、転送コード数及び転送モードの受け取りに応じて、マスターシステム１０のＣＰＵ１１に対して制御線を介して受取確認を発行する（Ｓ１０４）。
【００２３】
マスターシステム１０のＣＰＵ１１は、制御線を介して受取確認を受領すると、これに応じて、起動プログラムを構成するプログラムコードをスレーブシステム２０のローダ２５に対してデータＩ／Ｆ回路１４、２３を介して転送する（Ｓ１０５）。このとき、プログラムコードに対してＥＣＣ（Error Correcting Code：誤り訂正符号）ビットを付加することも可能であるが、付加しなくてもよい。
【００２４】
スレーブシステム２０のローダ２５は、マスターシステム１０から転送されたプログラムコードをデータＩ／Ｆ回路２３を介してＲＡＭ２２に格納する。このとき、マスターシステム１０から転送されたプログラムコードにＥＣＣビットが付加されている場合には、エラー訂正回路２６によってエラー訂正処理を実行した後に、ＲＡＭ２２に格納する（Ｓ１０６）。そして、上述のステップＳ１０５及びＳ１０６を、スレーブシステム２０の起動プログラムを構成するプログラムコード数分繰り返す。
【００２５】
スレーブシステム２０のローダ２５は、ステップＳ１０３においてＣＰＵ１１より転送された転送コード数分のプログラムコードを受領したか否かを判断する。ローダ２５は、当該転送コード数分のプログラムコードを受領したものと判断した場合には、転送受領コード数、転送ステータス情報を転送終了確認としてマスターシステム１０のＣＰＵ１１に対して制御線を介して発行する（Ｓ１０７）。
【００２６】
マスターシステム１０のＣＰＵ１１は、転送終了確認を制御線を介して受領し、これに応じて、転送終了確認の内容をチェックする。ＣＰＵ１１は、転送終了確認の内容のチェックの結果、正常転送終了と判断した場合には、スレーブシステム２０のローダ２５に対して制御線を介してスレーブシステム２０のＣＰＵ２１の起動コマンドを発行する（Ｓ１０８）。
【００２７】
スレーブシステム２０のローダ２５は、当該起動コマンドを制御線を介してマスターシステム１０のＣＰＵ１１から受け取り、これに応じてスレーブシステム２０のＣＰＵ２１のリセットを解除する（Ｓ１０９）。
【００２８】
そして、リセットを解除されたスレーブシステム２０のＣＰＵ２１は、スレーブシステム２０のＲＡＭ２２に格納された起動プログラムに従って動作を開始する（Ｓ１１０）。
【００２９】
以上、説明したように、本発明の実施の形態によれば、プログラムＲＯＭをマスターシステム１０にのみ設ければよく、スレーブシステム２０に設けなくてもよいため、部品点数の削減及びコスト低減を図ることができる。
【００３０】
さらに、本発明の実施の形態によれば、マスターシステム１０のプログラムＲＯＭ１３に格納されたスレーブシステム２０の起動プログラムは、メモリを介さないＣＰＵ間通信Ｉ／Ｆによりスレーブシステム２０のＲＡＭ２２に転送されるので、部品点数を削減でき、かつ低コスト化を図ることができる。特に、スレーブシステム２０の起動プログラムを共通メモリバスを介して転送する場合と比較すると、転送処理のための回路構成を簡易化できる。
【００３１】
なお、上述の例では、スレーブシステム２０のローダ２５は、転送コード数をチェックすることで起動プログラムの最後となるプログラムコードを認識したが、これに限らず、最後であることを示すエンドコードをマスターシステム１０のＣＰＵ１１が付加するようにしてもよい。また、スレーブシステム２０のローダ２５がタイマーによりプログラムコードを受け取ってからの経過時間を測定し、経過時間が所定時間を越える場合に転送終了と判断させる仕組みを持つようにしてもよい。
【００３２】
また、上述の例では、１つのマスターシステム１０に対して１つのスレーブシステム２０を設けた構成であったが、これに限らず、図３（ａ）のようにマスターシステム１０に対して並列にそれぞれがローダ２５を有する複数のスレーブシステム２０１，２０２・・・２０ｎが接続される構成であってもよく、また、図３（ｂ）のようにマスターシステム１０に対して直列にそれぞれがローダ２５を有する複数のスレーブシステム２０１，２０２・・・２０ｎが接続される構成であってもよい。さらには、スレーブシステムがマトリクス状に接続される構成であってもよい。
【００３３】
図３（ａ）の構成の場合には、マスターシステム１０のプログラムＲＯＭ１３には、それぞれのスレーブシステム２０１，２０２・・・２０ｎの起動プログラムが個別に格納されていてもよいが、各スレーブシステムで共通の起動プログラムとすることも可能である。
【００３４】
図３（ｂ）の構成の場合には、マスターシステム１０に接続されたスレーブシステム２０１は、さらにスレーブシステム２０２〜スレーブシステム２０３ｎの起動プログラムをマスターシステム１０より受け取り、一旦、ＲＡＭ２２に格納した後に、順次転送を繰り返して中継するようにしてもよい。
【図面の簡単な説明】
【００３５】
【図１】本発明によるマルチプロセッサシステムの構成図である。
【図２】本発明によるマルチプロセッサシステムにおける処理の流れを示すフローチャートである。
【図３】本発明によるマルチプロセッサシステムの構成図である。
【図４】従来のマルチプロセッサシステムの構成図である。
【符号の説明】
【００３６】
１０  マスターシステム
１１  ＣＰＵ
１２  ＲＡＭ
１３  プログラムＲＯＭ
１４  データＩ／Ｆ回路
２０  スレーブシステム
２１  ＣＰＵ
２２  ＲＡＭ
２３  データＩ／Ｆ回路
２４  プログラムＲＯＭ
２５  ローダ
２６  エラー訂正回路
【図１】
2007213292.tif 000003
【図２】
2007213292.tif 000004
【図３】
2007213292.tif 000005
【図４】
2007213292.tif 000006