(57)【要約】【課題】第２のプロセッサを従来技術より早く起動する。【解決手段】少なくとも第１のプロセッサと第２のプロセッサとを含むマルチプロセッサシステムでは、 第１のプロセッサが実行する第１のプログラムと第２のプロセッサが実行する第２のプログラムを記憶する記憶手段と、前記第２のプロセッサのメモリ使用領域を有するメモリ部と、通信線を介して前記記憶手段及び前記メモリ部に接続され、前記記憶手段から読み出されたプログラムが前記第２のプログラムの場合に、読み出された前記第２のプログラムを前記メモリ部に格納する監視手段と、を備えている。【選択図】図１
2020154518.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１のプロセッサと第２のプロセッサとを含むマルチプロセッサシステムであって、
第１のプロセッサが実行する第１のプログラムと第２のプロセッサが実行する第２のプログラムを記憶する記憶手段と、
前記第２のプロセッサのメモリ使用領域を有するメモリ部と、
通信線を介して前記記憶手段及び前記メモリ部に接続され、前記記憶手段から読み出されたプログラムが前記第２のプログラムの場合に、読み出された前記第２のプログラムを前記メモリ部に格納する監視手段と、
を備えたマルチプロセッサシステム。
【請求項２】
前記記憶手段には、前記第１のプロセッサ及び前記監視手段が前記通信線を介して接続されている、
請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記通信線はバスである、
請求項２に記載のマルチプロセッサシステム。
【請求項４】
前記第１のプロセッサと前記記憶手段とは、前記監視手段及び前記通信線を介して接続されている、
請求項１に記載のマルチプロセッサシステム。
【請求項５】
前記記憶手段と前記監視手段との間、及び、前記監視手段と前記第１のプロセッサとの間は、前記通信線を介して、１対１接続されている、
請求項４に記載のマルチプロセッサシステム。
【請求項６】
前記第１のプロセッサと前記第２のプロセッサとの間のプロセッサ間インターフェース回路と、
前記記憶手段に記憶されたプログラムを読み出す読み出し手段と、
を更に備え、
前記第１のプロセッサは、前記プロセッサ間インターフェース回路を初期化し、
前記読み出し手段は、前記プロセッサ間インターフェース回路の初期化が完了するまでに、前記記憶手段から前記第２のプログラムの読み出しを開始する、
請求項１から請求項５の何れか１項に記載のマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムに関する。
【背景技術】
【０００２】
特許文献１には、少なくとも第１のプロセッサと第２のプロセッサとを含むマルチプロセッサシステムであって、第１のプロセッサが実行する第１のプログラムと第２のプロセッサが実行する第２のプログラムを格納する読み出し専用メモリと、前記第１のプロセッサ及び第２のプロセッサがアクセス可能に接続され、前記第１のプロセッサのメモリ使用領域と、前記第２のプロセッサのメモリ使用領域と、前記第１のプロセッサと前記第２のプロセッサのメモリ共有使用領域とを有する前記ランダムアクセスメモリとを含み、前記読み出し専用メモリは、プログラムの分割されたコードの外にその内部にヘッダを持ち、各ヘッダ内に対応する分割のサイズ情報や起動モード毎にその転送が必要か否かを示す情報を格納しているものであり、前記第１のプロセッサは、前記読み出し専用メモリに格納された前記第２のプロセッサ用プログラムにアクセスし、その分割ごとに、前記第２のプロセッサに転送を要するか否かを判定する前提として、前記起動モードについて通常モードでの起動の指示があるか、特殊モードでの起動の指示があるかを判定し、その判定した起動モードに対応するプログラムを前記第２のプロセッサのメモリ使用領域に展開するものであることを特徴とするマルチプロセッサシステムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第2008/001671号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、第２のプロセッサを従来技術より早く起動することを可能にするマルチプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
第１態様に係るマルチプロセッサシステムは、少なくとも第１のプロセッサと第２のプロセッサとを含むマルチプロセッサシステムであって、第１のプロセッサが実行する第１のプログラムと第２のプロセッサが実行する第２のプログラムを記憶する記憶手段と、前記第２のプロセッサのメモリ使用領域を有するメモリ部と、通信線を介して前記記憶手段及び前記メモリ部に接続され、前記記憶手段から読み出されたプログラムが前記第２のプログラムの場合に、読み出された前記第２のプログラムを前記メモリ部に格納する監視手段と、を備える。
【０００６】
第２態様に係るマルチプロセッサシステムは、第１態様に係るマルチプロセッサシステムにおいて、前記記憶手段には、前記第１のプロセッサ及び前記監視手段が前記通信線を介して接続されている。
【０００７】
第３態様に係るマルチプロセッサシステムは、第２態様に係るマルチプロセッサシステムにおいて、前記通信線はバスである。
【０００８】
第４態様に係るマルチプロセッサシステムは、第１態様に係るマルチプロセッサシステムにおいて、前記第１のプロセッサと前記記憶手段とは、前記監視手段及び前記通信線を介して接続されている。
【０００９】
第５態様に係るマルチプロセッサシステムは、第４態様に係るマルチプロセッサシステムにおいて、前記記憶手段と前記監視手段との間、及び、前記監視手段と前記第１のプロセッサとの間は、前記通信線を介して、１対１接続されている。
【００１０】
第６態様に係るマルチプロセッサシステムは、第１態様から第５態様の何れかの態様に係るマルチプロセッサシステムにおいて、前記第１のプロセッサと前記第２のプロセッサとの間のプロセッサ間インターフェース回路と、前記記憶手段に記憶されたプログラムを読み出す読み出し手段と、を更に備え、前記第１のプロセッサは、前記プロセッサ間インターフェース回路を初期化し、前記読み出し手段は、前記プロセッサ間インターフェース回路の初期化が完了するまでに、前記記憶手段から前記第２のプログラムの読み出しを開始する
【発明の効果】
【００１１】
第１態様によれば、第２のプロセッサを従来技術より早く起動することができる、という効果を有する。
【００１２】
第２態様によれば、マルチプロセッサシステムを簡易な構成にすることができる、という効果を有する。
【００１３】
第３態様によれば、バスを用いてマルチプロセッサシステムを簡易な構成にすることができる、という効果を有する。
【００１４】
第４態様によれば、監視手段がプログラム転送を一括して管理することができる、という効果を有する。
【００１５】
第５態様によれば、通信速度を従来技術より早くすることができる、という効果を有する。
【００１６】
第６態様によれば、プロセッサ間インターフェース回路の初期化が完了するまでに、記憶手段から第２のプログラムの読み出しを開始することにより、第２のプロセッサを従来技術より早く起動することができる、という効果を有する。
【図面の簡単な説明】
【００１７】
【図１】第１の実施の形態のマルチプロセッサシステムのブロック図である。
【図２】ＣＰＵ１＿１１２がＣＰＵ１プログラムを実行することにより行われるＣＰＵ２プログラムデータ及びＣＰＵ３プログラムデータの転送処理のフローチャートである。
【図３】Ｓｎｏｏｐコントローラ１８０が実行する、ＣＰＵ２プログラムデータ及びＣＰＵ３プログラムデータをＲＡＭ＿Ｂ１０８に格納するプログラムデータ格納処理のフローチャートである。
【図４】ＣＰＵ２プログラムデータ及びＣＰＵ３プログラムデータの転送処理及びプログラムデータ格納処理の際のＣＰＵ１＿１１２、ＤＭＡＣ１１８、及びＳｎｏｏｐコントローラ１８０のタイミングチャートである。
【図５】ＲＡＭ＿Ｂ１０８のプログラムを記憶する領域の一例を示す図である。
【図６】第２の実施の形態のマルチプロセッサシステムのブロック図である。
【図７】第１の変形例における、ＣＰＵ２プログラムデータ及びＣＰＵ３プログラムデータの転送処理及びプログラムデータ格納処理の際のＣＰＵ１＿１１２、ＤＭＡＣ１１８、及びＳｎｏｏｐコントローラ１８０のタイミングチャートである。
【図８】第２の変形例における、ＣＰＵ２プログラムデータ及びＣＰＵ３プログラムデータの転送処理及びプログラムデータ格納処理の際のＣＰＵ１＿１１２、ＤＭＡＣ１１８、及びＳｎｏｏｐコントローラ１８０のタイミングチャートである。
【発明を実施するための形態】
【００１８】
以下、図面を参照して、本発明を実施するための形態例を詳細に説明する。
【００１９】
（第１実施形態）
図面を参照して、第１の実施の形態に係るマルチプロセッサシステムの構成を説明する。
【００２０】
図１には、第１の実施の形態のマルチプロセッサシステムのブロック図が示されている。図１に示すように、マルチプロセッサシステムは、複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、例えば、少なくともＣＰＵ１＿１１２とＣＰＵ２＿１５２とを含む。具体的には、マルチプロセッサシステムは、ＣＰＵ１＿１１２を備えるＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ：集積回路）１０２と、ＣＰＵ２＿１５２及びＣＰＵ３＿１５４を備えるＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：特定用途向け集積回路）１０４とを備える。
ＣＰＵ１＿１１２とＣＰＵ２＿１５２とは、本開示の技術の「第１のプロセッサ」と「第２のプロセッサ」の一例である。
【００２１】
マルチプロセッサシステムは、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１００を備えている。ＲＯＭ１００には、ＣＰＵ１＿１１２が実行するＣＰＵ１プログラムデータ、ＣＰＵ２＿１５２が実行するＣＰＵ２プログラムデータ、及びＣＰＵ３＿１５４が実行するＣＰＵ３プログラムデータが記憶されている。ＲＯＭ１００は、例えば、不揮発性メモリである。
ＲＯＭ１００は、本開示の技術の「記憶手段」の一例である。
【００２２】
マルチプロセッサシステムは、ＣＰＵ１＿１１２のメモリ使用領域を有するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）＿Ａ１０６と、ＣＰＵ２＿１５２のメモリ使用領域を有するＲＡＭ＿Ｂ１０８と、を備える。ＲＡＭ＿Ａ１０６及びＲＡＭ＿Ｂ１０８は、例えば、揮発性メモリ、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
ＲＡＭ＿Ｂ１０８は、本開示の技術の「メモリ部」の一例である。
【００２３】
ＳｏＣ１０２は、ＣＰＵ１＿１１２、ＲＯＭコントローラ（Ｃｏｎｔ）１１４Ａ、ＤＲＡＭコントローラ（Ｃｏｎｔ）１１６、ＤＭＡＣ（（ＤＭＡ  Ｃｏｎｔｒｏｌｌｅｒ））１１８、及びプロセッサ間コントローラ（Ｃｏｎｔ）１２０を備えている。これらの素子（１１２から１２０）は、バス１２２により通信可能に相互に接続されている。ＤＲＡＭコントローラ１１６は、ＲＡＭ＿Ａ１０６に接続されている。
ＤＭＡＣ１１８は、本開示の技術の「メモリ部」の一例である。
【００２４】
ＡＳＩＣ１０４は、ＣＰＵ２＿１５２、ＣＰＵ３＿１５４、ＤＲＡＭコントローラ（Ｃｏｎｔ）１５６、プロセッサ間コントローラ（Ｃｏｎｔ）１５８、その他の複数のコントローラ（Ｏｔｈｅｒ１コントローラ１６０Ａ、Ｏｔｈｅｒ２コントローラ１６０Ｂ、Ｏｔｈｅｒ３コントローラ１６０Ｃ・・・）、及びＳｎｏｏｐコントローラ１８０を備えている。ＤＲＡＭコントローラ１５６は、ＲＡＭ＿Ｂ１０８に接続されている。
Ｓｎｏｏｐコントローラ１８０は、本開示の技術の「監視手段」の一例である。
【００２５】
プロセッサ間コントローラ１２０とプロセッサ間コントローラ１５８とは、ＰＣＩＥ（ＰＣＩ  Ｅｘｐｒｅｓｓ（ピーシーアイエクスプレス））１０５で接続されている。
プロセッサ間コントローラ１２０とプロセッサ間コントローラ１５８は、本開示の技術の「プロセッサ間インターフェース回路」の一例である。
【００２６】
ＲＯＭ１００には、ＣＰＵ１＿１１２及びＳｎｏｏｐコントローラ１８０が通信線を介して接続されている。具体的には、Ｓｎｏｏｐコントローラ１８０は、ＲＯＭ１００とＣＰＵ１＿１１２との間のバス１０１に、バス１０３を介して接続されている。
【００２７】
詳細には後述するが、Ｓｎｏｏｐコントローラ１８０は、ＲＯＭ１００から読み出されたプログラムデータがＣＰＵ２プログラムデータ及びＣＰＵ３プログラムデータの場合に、読み出されたＣＰＵ２プログラムデータ及びＣＰＵ３プログラムデータをＲＡＭ＿Ｂ１０８に格納する。図５に示すように、Ｓｎｏｏｐコントローラ１８０は、ＣＰＵ２プログラムデータをＲＡＭ＿Ｂ１０８のあらかじめ決められたＣＰＵ２用プログラム先頭アドレスＰ２Ａから、ＣＰＵ３プログラムデータを、あらかじめ決められたＣＰＵ３用プログラム先頭アドレスＰ３Ａから格納する。
【００２８】
ＲＯＭ１００には、上記のように、ＣＰＵ１プログラムデータ、ＣＰＵ２プログラムデータ、及びＣＰＵ３プログラムデータが記憶されている。ＣＰＵ１プログラムデータは、ＲＯＭ１００の記憶位置Ｍ１からＭ２の間の領域に記憶され、ＣＰＵ２プログラムデータは、ＲＯＭ１００の記憶位置Ｍ２からＭ３の間の領域に記憶され、ＣＰＵ３プログラムデータは、ＲＯＭ１００の記憶位置Ｍ３以降の領域に記憶されている。
【００２９】
ＲＯＭ１００に記憶されているプログラムデータは、図１に紙面上側から下側に、左側から右側に、読み出される。ＣＰＵ１プログラムデータ、ＣＰＵ２プログラムデータ、及びＣＰＵ３プログラムデータは、より起動優先順位の高いプログラムデータをより先頭（読み出されやすい位置）に配置しされている。これにより、ＣＰＵ２＿１５２及びＣＰＵ３＿１５４のプログラムデータの転送順番が、当該配置でない場合より早くなり、ＣＰＵ２＿１５２及びＣＰＵ３＿１５４が、当該配置でない場合より早く起動される。
【００３０】
ＣＰＵ２プログラムデータ及びＣＰＵ３プログラムデータの各々には、先頭と終わりに識別データが配置されている。具体的には、ＣＰＵ２プログラムデータの先頭には、ＣＰＵ２プログラムデータの先頭を示す開始識別データＰ２Ｓ、その終わりには、ＣＰＵ２プログラムデータの終わりを示す終了識別データＰ２Ｅが配置されている。ＣＰＵ３プログラムデータの先頭には、ＣＰＵ３プログラムデータの先頭を示す開始識別データＰ３Ｓ、その終わりには、ＣＰＵ３プログラムデータの終わりを示す終了識別データＰ３Ｅが配置されている。このような識別データをプログラムデータに配置すると、Ｓｎｏｏｐコントローラ１８０は、ＣＰＵ１プログラムデータとＣＰＵ２プログラムデータとの切れ目、ＣＰＵ２プログラムデータとＣＰＵ３プログラムデータとの切れ目、ＣＰＵ３プログラムデータと更にその他のプログラムデータとの切れ目を判断する。なお、Ｓｎｏｏｐコントローラ１８０は、プログラムデータの切れ目を、当該識別データに代えて、各プログラムデータの記憶されているアドレスを用いて、判断するようにしてもよい。ＡＳＩＣ１０４内部もしくは外部の不揮発性メモリに識別データやアドレスを格納しておき、プログラムデータの識別子を可変にしたり、あらかじめ決められた値以外に設定したり、してもよい。
【００３１】
次に、第１の実施の形態の作用を説明する。
【００３２】
図２には、ＣＰＵ１＿１１２がＣＰＵ１プログラムを実行することにより行われるＣＰＵ２プログラムデータ及びＣＰＵ３プログラムデータの転送処理のフローチャートが示されている。図３には、Ｓｎｏｏｐコントローラ１８０が実行する、ＣＰＵ２プログラムデータ及びＣＰＵ３プログラムデータをＲＡＭ＿Ｂ１０８に格納するプログラムデータ格納処理のフローチャートが示されている。図４（（Ａ）から（Ｃ））には、ＣＰＵ２プログラムデータ及びＣＰＵ３プログラムデータの転送処理及びプログラムデータ格納処理の際のＣＰＵ１＿１１２、ＤＭＡＣ１１８、及びＳｎｏｏｐコントローラ１８０のタイミングチャートが示されている。
【００３３】
ＳｏＣ１０２及びＡＳＩＣ１０４に電源が投入されると、ＣＰＵ１＿１１２及びＳｎｏｏｐコントローラ１８０にも電源が投入される。
【００３４】
電源が投入されたＳｎｏｏｐコントローラ１８０は、図３の処理をスタートし、ステップ２５２で、ＲＯＭ１００から転送されたプログラムデータに、指定された開始識別データＰ２Ｓ又は開始識別データＰ３Ｓがあるか否かを判断する（図４：時刻ｔ０から時刻ｔ４）。
【００３５】
ＣＰＵ１＿１１２に電源が投入されて起動すると（時刻ｔ０からｔ１）、ステップ２０２（図２参照）で、ＣＰＵ１＿１１２は、ＣＰＵ１プログラムをＲＯＭ１００からＲＡＭ＿Ａ１０６に転送するように、ＤＭＡＣ１１８を設定する（時刻ｔ１からｔ２参照）。ステップ２０４で、ＣＰＵ１＿１１２は、ＣＰＵ１プログラムの転送が終了したか否かを判断する。
【００３６】
ステップ２０２の上記設定がされたＤＭＡＣ１１８は、ＲＯＭ１００からＣＰＵ１プログラムデータを読み出し、ＲＡＭ＿Ａ１０６に展開する（時刻ｔ２から時刻ｔ３の前）。ＤＭＡＣ１１８により読み出されたＣＰＵ１プログラムデータは、バス１０１、ＲＯＭコントローラ１１４、バス１２２、ＤＲＡＭコントローラ１１６を介して、ＲＡＭ＿Ａ１０６に転送され、記憶される。
【００３７】
上記のようにバス１０１には、Ｓｎｏｏｐコントローラ１８０に他端が接続されたバス１０３の一端が接続されているので、ＣＰＵ１プログラムデータは、バス１０１、１０３を介してＳｎｏｏｐコントローラ１８０にも転送される。Ｓｎｏｏｐコントローラ１８０は、上記のように、図３のステップ２５２で、転送されたプログラムデータに、指定された開始識別データＰ２Ｓ又は開始識別データＰ３Ｓがあるか否かを判断する。つまり、Ｓｎｏｏｐコントローラ１８０は、転送されたプログラムデータが、ＣＰＵ２プログラムデータなのかＣＰＵ３プログラムデータなのかを判断している。
【００３８】
上記のように、時刻ｔ２から時刻ｔ３の前までは、ＣＰＵ１プログラムデータがＳｎｏｏｐコントローラ１８０にも転送されているので、ステップ２５２の判定結果は、否定判定となる。この場合、Ｓｎｏｏｐコントローラ１８０は、転送されたプログラムデータは無視する（ＲＡＭ＿Ｂ１０８に記憶しない）。
【００３９】
ＤＭＡＣ１１８は、ステータス（転送状態）を、アドレスＭ１からＭ２までのプログラムデータを読み出し、ＲＡＭ＿Ａ１０６に展開している状態では、転送中として、当該展開が終了した場合は、ＣＰＵ１プログラムの転送が終了したことを示す転送終了に切り替える。ＣＰＵ１＿１１２は、ＤＭＡＣ１１８のステータスを確認し、ステータスが転送終了であることを検出した場合、図２のステップ２０４が肯定判定となる（時刻ｔ３）。
【００４０】
ステップ２０４が肯定判定となった場合、ステップ２０６で、ＣＰＵ１＿１１２は、ＣＰＵ２用プログラム、続いてＣＰＵ３用プログラムを転送することを、ＤＭＡＣ１１８に設定する（時刻ｔ３から時刻ｔ４）。ステップ２０８で、ＣＰＵ１＿１１２は、ＰＣＩＥ１０５を初期化し（時刻ｔ４から時刻ｔ５）、ステップ２１０で、ＣＰＵ１＿１１２は、ＣＰＵ２用プログラムの転送が終了したか否かを判断する（時刻ｔ５から時刻ｔ６）。
【００４１】
ＣＰＵ２用プログラム、続いてＣＰＵ３用プログラムを転送することが設定されたＤＭＡＣ１１８は、ＲＯＭ１００からＣＰＵ２プログラムデータを読み出し、ＲＡＭ＿Ａ１０６に展開する。ＤＭＡＣ１１８により読み出されたＣＰＵ２プログラムデータは、バス１０１、ＲＯＭコントローラ１１４Ａ、バス１２２、ＤＲＡＭコントローラ１１６を介して、ＲＡＭ＿Ａ１０６に転送され、記憶される。
【００４２】
ＣＰＵ２プログラムデータは更に、バス１０１、１０３を介してＳｎｏｏｐコントローラ１８０にも転送される。この場合、ＤＭＡＣ１１８は、最初に、ＣＰＵ２プログラムデータの先頭を示す開始識別データＰ２Ｓから読み出し、Ｓｎｏｏｐコントローラ１８０とに転送する。
【００４３】
開始識別データＰ２ＳがＳｎｏｏｐコントローラ１８０に転送されると、図３のステップ２５２の判定結果は肯定判定となる。ステップ２５２の判定結果が肯定判定となると、ステップ２５４で、Ｓｎｏｏｐコントローラ１８０は、指定されたアドレスに転送を開始する。具体的には、Ｓｎｏｏｐコントローラ１８０は、ＣＰＵ２プログラムデータを、図５に示すＲＡＭ＿Ｂ１０８のアドレスＰ２Ａから順に記憶する（時刻ｔ４から時刻ｔ６）。
【００４４】
上記処理により、図４に示すように、ＣＰＵ１＿１１２によりＰＣＩＥ１０５が初期化されている間（時刻ｔ４から時刻ｔ５）、Ｓｎｏｏｐコントローラ１８０により、ＣＰＵ２プログラムデータが、ＰＣＩＥ１０５ではなく、バス１０１、１０３、バス１６２、ＤＲＡＭコントローラ１５６を介して、ＲＡＭ＿Ｂ１０８に転送される。このように、ＰＣＩＥ１０５の初期化が完了するまでに、ＣＰＵ２プログラムデータのＲＡＭ＿Ｂ１０８への転送が開始される。
【００４５】
第１の実施の形態では、ＰＣＩＥ１０５の初期化と、ＣＰＵ２プログラムデータのＲＡＭ＿Ｂ１０８への転送とは、同じ時刻ｔ４に開始され、ＰＣＩＥ１０５の初期化は、ＣＰＵ２プログラムデータのＲＡＭ＿Ｂ１０８への転送が完了する前に、終了する。
【００４６】
上記のように図２のステップ２１０で、ＣＰＵ１＿１１２は、ＣＰＵ２プログラムの転送が終了したか否かを判断する（時刻ｔ５から時刻ｔ６）。
【００４７】
ＤＭＡＣ１１８は、ステータス（転送状態）を、アドレスＭ２からＭ３までのプログラムデータを読み出し、ＲＡＭ＿Ｂ１０８に展開した場合は、ＣＰＵ２プログラムの転送が終了したことに切り替える。ＣＰＵ１＿１１２は、ＤＭＡＣ１１８のステータスを確認し、ステータスが、ＣＰＵ２プログラムの転送が終了したことに切り替わったことを検出した場合、図２のステップ２１０が肯定判定となる（時刻ｔ６）。
【００４８】
その他、Ｓｎｏｏｐコントローラ１８０においても、ＤＭＡＣ１１８のステータスの切り替えと同様にステータスの切り替えを行う。ＣＰＵ１＿１１２は、Ｓｎｏｏｐコントローラ１８０のステータスを確認し、ステータスが、ＣＰＵ２プログラムの転送が終了したことに切り替わったか否かを検出するようにしてもよい。更に、ＣＰＵ１＿１１２は、ＣＰＵ２プログラムがＲＡＭ＿Ａ１０６に記憶されているか否かを判断するようにしてもよい。
【００４９】
上記のようにＰＣＩＥ１０５が初期化され、ＣＰＵ２プログラムデータのＲＡＭ＿Ｂ１０８への転送が完了したので、ステップ２１２で、ＣＰＵ１＿１１２は、ＣＰＵ２＿１５２のリセットを解除する（ＣＰＵ２＿１５２の起動開始：時刻ｔ６から時刻ｔ７）。具体的には、ＣＰＵ１＿１１２は、ＣＰＵ２＿１５２に、リセットの解除を通知する。これは、ＣＰＵ２＿１５２が、ＣＰＵ２プログラムの全てのプログラムデータがＲＡＭ＿Ｂ１０８に記憶される前に、ＣＰＵ２プログラムを実行しようとすることを防止するためである。なお、ＣＰＵ２管理部（Ｏｔｈｅｒ２コントローラ１６０Ｂ）が初期化される（時刻ｔ９）。
【００５０】
ステップ２１４で、ＣＰＵ１＿１１２は、ＣＰＵ３プログラムの転送が終了したか否かを判断する（時刻ｔ７から時刻ｔ８）。ＣＰＵ３プログラムの転送が終了したと判断した場合、ステップ２１６で、ＣＰＵ１＿１１２は、ＣＰＵ３＿１５４のリセットを解除する。ステップ２１４、２１６ではＣＰＵ３プログラムについて実行する点が、ステップ２１０、２１２においてＣＰＵ２プログラムについて実行する点で、異なるだけであるので、その説明を省略する。なお、ＣＰＵ３管理部（Ｏｔｈｅｒ３コントローラ１６０Ｃ）が初期化される（時刻ｔ１０）。
【００５１】
ＤＭＡＣ１１８は、時刻ｔ４から時刻ｔ６まで、ＣＰＵ２プログラムの転送を行い、時刻ｔ６から時刻ｔ８までＣＰＵ３プログラムの転送を行う。
【００５２】
Ｓｎｏｏｐコントローラ１８０においても、図３のステップ２５４により、時刻ｔ４から時刻ｔ６まで、ＣＰＵ２プログラムの転送を行い、時刻ｔ６から時刻ｔ８までＣＰＵ３プログラムの転送を行う。
【００５３】
ステップ２５６で、Ｓｎｏｏｐコントローラ１８０は、バス１０１、１０３を介して転送されたプログラムデータに、指定された終了識別データＰ３Ｅがあるか否かを判断する。バス１０１、１０３を介して転送されたプログラムデータに、指定された終了識別データＰ３Ｅがあると判断されるまで、ステップ２５６が繰り返される。転送されたプログラムデータに、指定された終了識別データＰ３Ｅがあると判断された場合、ＣＰＵ３プログラムの転送が終了したと判断し、処理を終了する。
【００５４】
以上説明したように第１の実施の形態では、ＰＣＩＥ１０５の初期化と、ＣＰＵ２プログラムデータのＲＡＭ＿Ｂ１０８への転送とは、同じ時刻ｔ４に開始される。つまり、ＰＣＩＥ１０５の初期化とは独立して、ＣＰＵ２プログラムデータのＲＡＭ＿Ｂ１０８への転送が行われる。よって、第１の実施の形態では、ＣＰＵ２は、ＰＣＩＥの初期化後に、ＣＰＵ２プログラムデータが転送される従来技術より早く起動される。
【００５５】
第１の実施の形態では、Ｓｎｏｏｐコントローラ１８０は、ＲＯＭ１００とＣＰＵ１＿１１２との間のバス１０１に、１本のバス１０３を介して接続されている。通信線は１本にしている点で、マルチプロセッサシステムの構成は簡略されている。
【００５６】
（第２の実施の形態）
第２の実施の形態に係るマルチプロセッサシステムの構成は、第１の実施の形態に係るマルチプロセッサシステムの構成と略同様であるので、同一部分には同一の符号を付してその説明を省略し、異なる部分を主として説明する。
【００５７】
図６には、第２の実施の形態のマルチプロセッサシステムのブロック図が示されている。図６に示すように、ＣＰＵ１＿１１２とＲＯＭ１００とは、Ｓｎｏｏｐコントローラ１８０及び通信線１０７Ａ、１０７Ｂを介して接続されている。具体的には、ＲＯＭ１００とＳｎｏｏｐコントローラ１８０との間は通信線１０７Ａにより接続され、Ｓｎｏｏｐコントローラ１８０とＣＰＵ１＿１１２との間は、通信線１０７Ｂ、インターフェース（Ｉ／Ｆ）コントローラ１１４Ｂ、及びバス１２２により接続されている。
【００５８】
ＲＯＭ１００とＳｎｏｏｐコントローラ１８０との間は、１対１（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）で接続され、Ｓｎｏｏｐコントローラ１８０とＣＰＵ１＿１１２との間は、１対１（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）で接続されている。
【００５９】
第２の実施の形態の作用は第１の実施の形態の作用と略同様であるので、その説明を省略する。なお、第２の実施の形態においては、各プログラムデータは、通信線１０７Ａ、Ｓｎｏｏｐコントローラ１８０、及び通信線１０７Ｂ、及びＳｏＣ１０２を介して、ＲＡＭ＿Ａ１０６に転送される。特に、ＣＰＵ２プログラムデータ及びＣＰＵ３プログラムデータは更に、通信線１０７Ａ、ＡＳＩＣ１０４（Ｓｎｏｏｐコントローラ１８０）を介して、ＲＡＭ＿Ｂ１０８に転送される。
【００６０】
第２の実施の形態では、ＣＰＵ２は、ＰＣＩＥの初期化後に、ＣＰＵ２プログラムデータが転送される従来技術より早く起動される
【００６１】
ＲＯＭ１００とＳｎｏｏｐコントローラ１８０との間は、１対１（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）で接続され、Ｓｎｏｏｐコントローラ１８０とＣＰＵ１＿１１２との間は、１対１（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）で接続されている。よって、通信速度は、バスで接続されるより、早い。
【００６２】
Ｓｎｏｏｐコントローラ１８０が各プログラムの転送を一括して管理する。
【００６３】
（変形例）
（第１の変形例）
第１の変形例を説明する。なお、第１の変形例の構成は、第１の実施の形態及び第２の実施の形態の構成の何れでもよい。
【００６４】
第１の変形例の作用を説明する。図７（（Ａ）から（Ｃ））には、第１の変形例における、ＣＰＵ２プログラムデータ及びＣＰＵ３プログラムデータの転送処理及びプログラムデータ格納処理の際のＣＰＵ１＿１１２、ＤＭＡＣ１１８、及びＳｎｏｏｐコントローラ１８０のタイミングチャートが示されている。
【００６５】
第１の実施の形態及び第２の実施の形態では、ＣＰＵ１が、ＣＰＵ２プログラムが転送された場合に、ＣＰＵ２を起動させているが、第１の変形例では、Ｓｎｏｏｐコントローラ１８０が、ＣＰＵ２用プログラムをＲＡＭ＿Ｂ１０８に格納した場合に、ＣＰＵ２＿１５２を起動させる。
【００６６】
（第２の変形例）
第２の変形例を説明する。なお、第２の変形例は、の構成は、第１の実施の形態及び第２の実施の形態の構成の何れでもよい。
【００６７】
第２の変形例の作用を説明する。図８（（Ａ）から（Ｃ））には、第２の変形例における、ＣＰＵ２プログラムデータ及びＣＰＵ３プログラムデータの転送処理及びプログラムデータ格納処理の際のＣＰＵ１＿１１２、ＤＭＡＣ１１８、及びＳｎｏｏｐコントローラ１８０のタイミングチャートが示されている。
【００６８】
第１の実施の形態及び第２の実施の形態では、ＰＣＩＥ１０５の初期化中（時刻ｔ４から時刻ｔ５）に、ＣＰＵ２用プログラムを転送しているが、第２の変形例では、ＰＣＩＥ１０５の初期化開始（時刻Ｔ４）前に、ＣＰＵ２用プログラムを転送する（時刻Ｔ２から時刻Ｔ３）。このように本開示の技術は、ＰＣＩＥ１０５の初期化と、ＣＰＵ２プログラムデータのＲＡＭ＿Ｂ１０８への転送とは独立して行われる。少なくとも、ＰＣＩＥ１０５の初期化が完了する前に、ＣＰＵ２用プログラムの転送を開始する。これにより、ＣＰＵ２は、ＰＣＩＥの初期化後に、ＣＰＵ２プログラムデータが転送される従来技術より早く起動される。
なお、第２の変形例では、ＣＰＵ２プログラムが、ＣＰＵ１プログラムデータの転送（時刻Ｔ６から時刻Ｔ７）よりも前に転送される（時刻Ｔ２から時刻Ｔ３）。
【００６９】
その他、上記例で説明したマルチプロセッサシステムの構成（図１、図６参照）は一例であり、本発明の主旨を逸脱しない範囲内において不要な部分を削除したり、新たな部分を追加したりしてもよいことは言うまでもない。
【００７０】
また、上記例における処理の流れ（図２から４参照）も一例であり、本発明の主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよいことは言うまでもない。
【符号の説明】
【００７１】
１００  ＲＯＭ
１０１ バス
１０３ バス
１０８  ＲＡＭ＿Ｂ
１１２  ＣＰＵ１
１１８  ＤＭＡＣ
１５２  ＣＰＵ２
１８０  Ｓｎｏｏｐコントローラ
１０７Ａ、１０７Ｂ  通信線
【図１】
2020154518.tif 000003
【図２】
2020154518.tif 000004
【図３】
2020154518.tif 000005
【図４】
2020154518.tif 000006
【図５】
2020154518.tif 000007
【図６】
2020154518.tif 000008
【図７】
2020154518.tif 000009
【図８】
2020154518.tif 000010