(57)【特許請求の範囲】
【請求項１】
少なくとも第１のプロセッサと第２のプロセッサとを含むマルチプロセッサシステムであって、
第１のプロセッサが実行する第１のプログラムと第２のプロセッサが実行する第２のプログラムを格納する読み出し専用メモリと、
前記第１のプロセッサ及び第２のプロセッサがアクセス可能に接続され、前記第１のプロセッサのメモリ使用領域と、前記第２のプロセッサのメモリ使用領域と、前記第１のプロセッサと前記第２のプロセッサのメモリ共有使用領域とを有する前記ランダムアクセスメモリとを含み、
前記読み出し専用メモリは、プログラムの分割されたコードの外にその内部にヘッダを持ち、各ヘッダ内に対応する分割のサイズ情報や起動モード毎にその転送が必要か否かを示す情報を格納しているものであり、
前記第１のプロセッサは、前記読み出し専用メモリに格納された前記第２のプロセッサ用プログラムにアクセスし、その分割ごとに、前記第２のプロセッサに転送を要するか否かを判定する前提として、前記起動モードについて通常モードでの起動の指示があるか、特殊モードでの起動の指示があるかを判定し、その判定した起動モードに対応するプログラムを前記第２のプロセッサのメモリ使用領域に展開するものであることを特徴とするマルチプロセッサシステム。
【請求項２】
前記第２のプロセッサは、第２のプロセッサのメモリ使用領域への展開完了後、展開したプログラムの妥当性が確認できるまでリセットさせることを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項３】
前記第２のプロセッサのメモリ使用領域への展開完了後、又は前記展開したプログラムの妥当性確認後、前記第２のプロセッサのメモリ使用領域に対し前記第１のプロセッサからのアクセス禁止の設定を可能としたことを特徴とする請求項２記載のマルチプロセッサシステム。
【請求項４】
第１のプロセッサと、第２のプロセッサと、第１のプロセッサが実行する第１のプログラムと第２のプロセッサが実行する第２のプログラムを格納する読み出し専用メモリと、第２のプログラムが展開されて格納されるランダムアクセスメモリとを含むマルチプロセッサシステムにおける転送方法であって、
前記ランダムアクセスメモリに、前記第１のプロセッサのメモリ使用領域と、前記第２のプロセッサのメモリ使用領域と、前記第１のプロセッサと前記第２のプロセッサのメモリ共有使用領域とを割り振り、
前記読み出し専用メモリに、プログラムの分割されたコードの外にその内部にヘッダを持ち、各ヘッダ内に対応する分割のサイズ情報や起動モード毎にその転送が必要か否かを示す情報を格納し、
前記第１のプロセッサが、前記読み出し専用メモリに格納された前記第２のプロセッサ用プログラムにアクセスし、その分割ごとに、前記第２のプロセッサに転送を要するか否かを判定する前提として、前記起動モードについて通常モードでの起動の指示があるか、特殊モードでの起動の指示があるかを判定し、その判定した起動モードに対応するプログラムを前記第２のプロセッサのメモリ使用領域に展開することを特徴とするマルチプロセッサシステムにおける転送方法。
【請求項５】
第１のプロセッサと、第２のプロセッサと、第１のプロセッサが実行する第１のプログラムと第２のプロセッサが実行する第２のプログラムを格納する読み出し専用メモリと、第２のプログラムが展開されて格納されるランダムアクセスメモリとを含むマルチプロセッサシステムに使用するプログラムであって、
コンピュータに、
前記ランダムアクセスメモリに、前記第１のプロセッサのメモリ使用領域と、前記第２のプロセッサのメモリ使用領域と、前記第１のプロセッサと前記第２のプロセッサのメモリ共有使用領域とを割り振る機能と、
前記読み出し専用メモリに、プログラムの分割されたコードの外にその内部にヘッダを持ち、各ヘッダ内に対応する分割のサイズ情報や起動モード毎にその転送が必要か否かを示す情報を格納する機能と、
前記第１のプロセッサが、前記読み出し専用メモリに格納された前記第２のプロセッサ用プログラムにアクセスし、その分割ごとに、前記第２のプロセッサに転送を要するか否かを判定する前提として、前記起動モードについて通常モードでの起動の指示があるか、特殊モードでの起動の指示があるかを判定し、その判定した起動モードに対応するプログラムを前記第２のプロセッサのメモリ使用領域に展開する機能とを実行させることを特徴とするマルチプロセッサシステムに使用するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサを搭載した携帯端末に関し、特に特定のプロセッサから他のプロセッサへプログラムを転送して起動するように構成されるマルチプロセッサシステムにおける起動時間の高速化に関する。
【背景技術】
【０００２】
携帯電話機、携帯情報端末などの携帯端末は、サービス機能の拡大、高速化の要求にしたがって、複数プロセッサを使用するマルチプロセッサシステムで実現する場合が多くなると考えられる。【０００３】
特定のプロセッサから他のプロセッサへプログラムを転送して起動するように構成されるマルチプロセッサシステムは、他のプロセッサ用のプログラムも含め、格納するメモリを集約することにより、メモリチップ数を低減でき、システムの小型化にも有利である（特許文献１）。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、このようなシステムでは、起動時に特定のプロセッサから他のプロセッサへプログラムを転送する必要があるため、その分の処理時間が増え、システム起動時間としては不利な面がある。この点の改善方法として、転送するプログラムを圧縮して格納しておき、圧縮プログラムを転送することによって転送時間を低減し、これに起動時間を短縮する方法が考えられる。圧縮プログラムを格納することにすれば、必要メモリ容量の削減、メモリコストの削減が可能である。【０００５】
しかしながら、圧縮プログラムを転送に用いるマルチプロセッサシステムでも、
そのプログラムの内容の全体を転送するため起動時間の増加低減には制約がある。【０００６】
なお、マルチシステムに関連する従来技術として、特許文献１のほかに特許文献２が知られている。【０００７】
【特許文献１】特開平５−２４２０５７号公報
【特許文献２】特開平１１−１８４８３１号公報
【０００８】
本願発明者は、マルチプロセッサシステムにおいて、起動時に、必ずしもプログラムの全体を特定のプロセッサから他のプロセッサ転送する必要はないことに着目し、本発明をするに至った。【０００９】
本発明の目的は、起動モードによって起動時間を短縮できるマルチプロセッサシステム、転送方法及び携帯端末を提供することである。
【課題を解決するための手段】
【００１０】
本発明によれば、少なくとも第１のプロセッサと第２のプロセッサとを含むマルチプロセッサシステムであって、第１のプロセッサが実行する第１のプログラムと第２のプロセッサが実行する第２のプログラムを格納する読み出し専用メモリと、前記第２のプログラムが展開されて格納されるランダムアクセスメモリとを含み、マルチプロセッサシステムの起動時に、前記第１のプロセッサは指定された起動モードにしたがって、前記第２のプログラムのうち前記起動モードに関係して必要な前記第２のプログラムの部分を選択して前記ランダムアクセスメモリに展開することを特徴とするマルチプロセッサシステムが得られる。【００１１】
読出し専用メモリに、第２のプログラムが分割された分割部分と、各分割部分に関する情報サイズ及び各分割部分と起動モードに関する情報を含むヘッダが格納されている。【００１２】
望ましくは、前記プログラムの分割部分は、圧縮及び／又は暗号化されて格納される。【００１３】
本発明の１実施形態によれば、前記第１のプロセッサがアクセスする第１のプロセッサ用のランダムアクセスメモリを有する。また、前記第２のプログラムが展開されて格納されるランダムアクセスメモリは、前記第２のプロセッサがアクセスする第２のプロセッサ用のランダムアクセスメモリである。【００１４】
本発明の別の実施形態によれば、前記ランダムアクセスメモリは、前記第１のプロセッサ及び第２のプロセッサがアクセス可能に接続され、前記第１のプロセッサのメモリ使用領域と、前記第２のプロセッサのメモリ使用領域と、前記第１のプロセッサと前記第２のプロセッサのメモリ共有使用領域とを有する。【００１５】
その実施の形態において前記第２のプロセッサのメモリ使用領域への展開完了後、前記展開したプログラムの妥当性が確認できるまで前記第２のプロセッサをリセットさせたままとする。【００１６】
また、実施形態の特徴として、前記第２のプロセッサのメモリ使用領域への展開完了後、又は前記展開したプログラムの妥当性確認後、前記第２のプロセッサのメモリ使用領域に対し前記第１のプロセッサからのアクセス禁止の設定ができる。【００１７】
本発明によれば、また、上記マルチプロセッサシステムを使用した携帯端末が得られる。【００１８】
さらに、本発明によれば、第１のプロセッサと、第２のプロセッサと、第１のプロセッサが実行する第１のプログラムと第２のプロセッサが実行する第２のプログラムを格納する読み出し専用メモリと、第２のプログラムが展開されて格納されるランダムアクセスメモリとを含むマルチプロセッサシステムにおける転送方法であって、マルチプロセッサシステムの起動時に、前記第１のプロセッサは指定された起動モードにしたがって、前記第２のプログラムのうち前記起動モードに関係して必要な前記第２のプログラムの部分を選択して前記ランダムアクセスメモリに転送することを特徴とするマルチプロセッサシステムにおける転送方法が得られる。【００１９】
前記第１のプロセッサは、前記転送に先立って第２のプロセッサ用のブートローダの妥当性を判断して前記ブートローダの転送をする工程と、前記第２のプロセッサをコードダウンロードモードに設定してリセット起動する工程と、起動モードを判定しそれに応じた第２のプログラムの対応部分を転送する工程と、前記転送したプログラム部分の妥当性を前記第２のプロセッサに問合せて確認する工程と、確認後に前記第２のプロセッサを通常動作モードに設定してリセット起動する工程とを含む。【００２０】
本発明の１実施形態によれば、前記第１のプロセッサがアクセスする第１のプロセッサ用のランダムアクセスメモリを有する。また、前記第２のプログラムが展開されて格納されるランダムアクセスメモリは、前記第２のプロセッサがアクセスする第２のプロセッサ用のランダムアクセスメモリである。【００２１】
別の実施形態では、前記ランダムアクセスメモリは、前記第１のプロセッサ及び第２のプロセッサがアクセス可能に接続され、前記第１のプロセッサのメモリ使用領域と、前記第２のプロセッサのメモリ使用領域と、前記第１のプロセッサと前記第２のプロセッサのメモリ共有使用領域とを有する。【００２２】
さらに、１実施形態では、本発明のマルチプロセッサにおける転送方法は、前記起動モードを判定処理する工程と、前記起動モードに応じて前記第２のプログラムから前記起動モードに対応するプログラム部分を前記第２のプロセッサのメモリ使用領域に展開処理する工程と、展開したプログラム部分の妥当性をチェックする工程と、前記第２のプロセッサメモリ使用領域に対して前記第１のプロセッサからのアクセスガードを設定する工程と、前記第２のプロセッサのリセットを解除して前記第２のプロセッサを通常動作させ前記モードを起動させる工程とを含む。【００２３】
また、本発明によれば、第１のプロセッサと、第２のプロセッサと、第１のプロセッサが実行する第１のプログラムと第２のプロセッサが実行する第２のプログラムを格納する読み出し専用メモリと、第２のプログラムが展開されて格納されるランダムアクセスメモリとを含むマルチプロセッサシステムに使用するプログラムであって、マルチプロセッサシステムの起動時に、前記第１のプロセッサが指定された起動モードにしたがって、前記第２のプログラムのうち前記起動モードに関係して必要な前記第２のプログラムの部分を選択して前記ランダムアクセスメモリに転送するステップを含むことを特徴とするマルチプロセッサシステムに使用するプログラムが得られる。【００２４】
１実施形態によれば、プログラムは、前記第１のプロセッサが、前記転送に先立ってブートローダの妥当性を判断して前記ブートローダの転送をするステップと、前記第２のプロセッサをコードダウンロードモードに設定してリセット起動するステップと、起動モードを判定しそれに応じた第２のプログラムの対応部分を転送するステップと、前記転送したプログラム部分の妥当性を前記第２のプロセッサに問合せて確認するステップと、確認後に前記第２のプロセッサを通常動作モードに設定してリセット起動するステップを含む。【００２５】
実施形態の１つによれば、前記ランダムアクセスメモリは、前記第１のプロセッサ及び第２のプロセッサがアクセス可能に接続され、前記第１のプロセッサのメモリ使用領域と、前記第２のプロセッサのメモリ使用領域と、前記第１のプロセッサと前記第２のプロセッサのメモリ共有使用領域とを有する。【００２６】
この実施形態におけるプログラムは、前記起動モードを判定処理するステップと、前記起動モードに応じて前記第２のプログラムから前記起動モードに対応するプログラム部分を前記第２のプロセッサのメモリ使用領域に展開処理するステップと、展開したプログラム部分の妥当性をチェックするステップと、前記第２のプロセッサメモリ使用領域に対して前記第１のプロセッサからのアクセスガードを設定するステップと、前記第２のプロセッサのリセットを解除して前記第２のプロセッサを通常動作させ前記モードを起動させるステップを含む。
【発明の効果】
【００２７】
本発明によれば、モード毎の起動時間を短縮できる。
【発明を実施するための最良の形態】
【００２８】
次に、本発明の実施の形態について図面を参照して説明する。【００２９】
（実施例１）
図１に本発明の第１の実施例としてのマルチプロセッサシステム１００のブロック図を示す。図１において、マルチプロセッサシステムは、プロセッサＡ（転送元プロセッサ）１０１からプロセッサＢ（転送先プロセッサ）１０４へプログラムを転送するシステム構成となっている。【００３０】
図１において、システム１００は、プロセッサＡ１０１、プロセッサＡ１０１にバス接続されたＲＯＭ（Read  Only  Memory）１０２及びＲＡＭ (Random  Access  Memory )＿Ａ１０３を含む。さらに、システムは、プロセッサＢ１０４に付随してＲＡＭ＿Ｂ１０５を有する。システムは、プロセッサＡ１０１とプロセッサＢ１０４とのインターフェースとしてプロセッサ間インターフェース回路１０７、プロセッサＡの制御の下にプロセッサ間インターフェース回路経由でプロセッサＡから転送されるプログラムをＲＡＭ＿Ｂ１０５に書き込むメモリ書き込み制御回路１０６を含んでいる。【００３１】
プロセッサＡ１０１とプロセッサＢ１０４のプログラムは、共にＲＯＭ１０２に格納されている。ＲＯＭ１０２は物理的に１つである必要はなく、プロセッサＢ１０４のプログラムも併せて格納し、プロセッサＡ１０１のメモリバスに接続されていればよい。ＲＡＭ＿Ａ１０３は、プロセッサＡ１０１の作業用メモリで、ＲＯＭ１０２が接続されるメモリバスとは別の高速メモリバスに接続される場合もある。ＲＡＭ＿Ｂ１０５は、プロセッサＢ１０４のプログラム展開先としておよび作業用メモリとして使用される。【００３２】
プロセッサ間インターフェース回路１０７は、プロセッサ１０１，１０４間のデータ通信を行うための回路で、起動時は最初に、プロセッサＡ１０１の信号制御により、プロセッサＡ１０１からの転送データ(ブートローダ（Boo   LoaderのCode)）をメモリ書込み制御回路１０６に転送する。メモリ書込み制御回路１０６は、前記転送データをＲＡＭ＿Ｂ１０５に書込む。【００３３】
前記テータの転送が行われる期間、プロセッサＢ１０４は、プロセッサＡ１０１の信号制御によりリセットされたままである。Boot  Loaderのコード（Code）転送完了後、プロセッサＡ１０１の制御により、プロセッサＢ１０４はＲＡＭ＿Ｂ１０５に書込まれたBoot Loaderの実行を開始し、以後のプロセッサＢ１０４用プログラムのプロセッサＡ１０１からの受信、ＲＡＭ＿Ｂ１０５への展開処理は、Boot  Loaderに基づいて行われる。【００３４】
プロセッサＢ１０４用プログラムは圧縮暗号化されたままの形でプロセッサＡ１０１から転送してもよく、この場合、Boot  Loader内にＲＡＭ＿Ｂ１０５の所定のプログラム領域に展開する前に、前記圧縮暗号化された前記プログラムの復号化の処理を行う。プロセッサＢ１０４用プログラム本体の転送が完了すると、プロセッサＡ１０１の制御により、プロセッサＢ１０４は、ＲＡＭ＿Ｂ１０５に書込まれたプログラムの実行を開始する。【００３５】
図２には、ＲＯＭ１０２内のある領域にプロセッサＢ１０４用プログラムが分割格納される形態を図示している。各分割はプログラムの分割されたコードの外にその内部にヘッダを持ち、各ヘッダ内には対応する分割のサイズ情報や起動モード毎にその転送が必要か否かを示す情報が格納される。尚、分割毎に圧縮や暗号化を施してＲＯＭ１０２に格納することも可能であるが、ヘッダ部はプロセッサＡ１０１が直接読んで解釈できる形式とする。また、ヘッダ部はプロセッサＢ１０４への転送対象外とする。図２では、各分割が物理的に連続している状態を示している。【００３６】
分割されるコードはファイルシステムを介して分割毎にファイルとして扱っても良く、必ずしも各分割が物理的に連続している必要はない。【００３７】
図３にも、図２と同様に、ＲＯＭ１０２内のある領域にプロセッサＢ１０４用プログラムが区分けされて格納される形態を図示している。但し、図３では、区分けされた各領域が物理的に連続してつながっているが、各領域の境界が可変であることを想定している。起動モードによって転送不要となるプログラムを後ろの方（図示上は上の方）に配置し、先頭から連続領域で必要なプログラム分をＤＭＡ（Direct  Memory  Access）方式を使って転送可能とすることを考慮した格納形態である。必ず存在する領域（どの起動モードでも転送が必要な領域）内の固定アドレスに、図２のそれと同様の情報を持たせたヘッダを各領域に対応させ、まとめて格納する。固定アドレスにヘッダを格納することにより、プロセッサＡ１０１が直接読んで解釈可能な構成とする。連続領域のＤＭＡ転送を用いる場合は、ヘッダ部も転送対象となる。尚、ヘッダ部をプロセッサＢ１０４用プログラム領域の先頭に配置させることにより、ヘッダ部以外のプログラム本体を領域毎に圧縮や暗号化して格納する構成も可能である。その場合、ヘッダ部は転送対象としなくて良い。また、ヘッダに格納されるサイズ情報は、圧縮や暗号化された後の各領域のサイズとなる。なお、図２と図３に図示はしていないが、プロセッサＢ１０４のBoot  Loaderは、ＲＯＭ１０２内に別に格納されている。【００３８】
次に図４のシーケンスチャートと図５のフローチャートを用いて、プロセッサＡ１０１からプロセッサＢ１０４へプログラム転送する際の動作について説明する。【００３９】
図４は、例えば図２のようにＲＯＭ１０２に格納されたプロセッサＢ１０４用のプログラムをプロセッサＡ１０１からプロセッサＢ１０４へ転送する手順について、（ａ）通常モードと（ｂ）特殊モードに分けて図示したシーケンスチャートである。ここで、通常モードとは、プログラムコード全体が持つフルの機能を使用可能なモードを指し、特殊モードとは、一部の機能のみ使用可能なモード、もしくは一部の機能を使用不可に制限したモードを指す。この例では、起動モードが通常モードの場合、即ち、通常モードの起動では各分割コードの全部の転送が必要、起動モードが特殊モードの場合、即ち、特殊モードの起動では分割１と２のみの転送が必要と想定している。【００４０】
図４に示すシークエンスにおいて、分割コードの転送は、プロセッサＡ１０１がＲＯＭ１０２に格納されたプロセッサＢ１０４用プログラムにアクセスし、その分割ごとに、プロセッサＢ１０４に転送を要するか否かを判定する。その前提として、通常モードでの起動の指示があるか、特殊モードでの起動の指示があるかを判定する。【００４１】
通常モードの起動が指示されている場合には、図４（ａ）に示すように、プロセッサＢ１０４用プログラムである分割コードのすべてについて転送する。その場合、分割のすべてについて、ヘッダを参照しながら、特殊モードではないので、分割毎にプロセッサＢ１０４に対し転送とプロセッサＢからの応答を受け、次の分割コードの転送と応答の受信を行う。このようにして、分割コード１から分割コードＮまで、すべての分割が転送される。【００４２】
特殊モードの場合には、分割の各々のヘッダを調べ、そのヘッダに、特殊モードについて転送が要になっているか否かを判断し、要となっている分割のコードのみをプロセッサＢに転送する。プロセッサＢから転送の受信の応答があると、次の分割コードについて同じような判断をして転送要の場合には、その分割コードを転送し、プロセッサＢからの応答を受ける。図４（ｂ）は、分割コード１と分割コード２だけが転送を必要としていた場合のシークエンスである。【００４３】
図４（ａ）及び（ｂ）を引き続き参照すると、通常モードの場合にも特殊モードの場合にも、必要な分割の転送を完了し、プロセッサＢ１０４からの応答を確認したら、プロセッサＡ１０１から転送完了通知と妥当性確認要求を送信する。それを受けたプロセッサＢ１０４は、ＲＡＭ＿Ｂ１０５に展開したプログラムの妥当性チェック（チェックサム確認、改竄検出など）を行い、結果をプロセッサＡ１０１に返す。受け取った妥当性チェックの結果が問題なければ、プロセッサＡ１０１はプロセッサＢ１０４を制御し、ＲＡＭ＿Ｂ１０５に展開したプログラムの実行をスタートさせる。即ち、プロセッサＢ１０４の動作として、プロセッサＡ１０１から送られるプログラムコードを受け取ってＲＡＭ＿Ｂ１０５へ展開するフェーズとＲＡＭ＿Ｂ１０５へ展開したプログラムを実行するフェーズに分かれるが、前者のフェーズを終了し、リスタートにより、後者のフェーズが開始される。【００４４】
図５は、プロセッサＡ１０１からプロセッサＢ１０４へプログラム転送する際のプロセッサＡ１０１内の処理フローの１例を図示したものである。先ず、プロセッサＢ１０４のBoot  Loaderには暗号解読などの重要な処理が入る可能性があるため、Boot Loaderの妥当性チェック（改竄検出など）を行い(ST501)、問題がなければプロセッサＢ１０４へBoot  Loaderの転送を行う(ST502)。この転送は、具体的には、プロセッサＡ１０１がBoot  Loader をプロセッサ間インターフェース回路に送り、メモリ書き込み制御回路がＲＡＭ_Ｂ１０５に書き込むことによって行われる。【００４５】
次に、Boot Loaderを実行させるため、図示のモード設定とReset制御のラインを介して信号線制御により、プロセッサＢ１０４をプログラムダウンロードモードに設定し、リセットスタートさせる（リセットを解除する）(ST503)。プロセッサＢ１０４のBoot  Loaderが起動したら（図示なし）、プロセッサＡ１０１は、起動モードが通常モードか特殊モードかにより、そのモードの起動に必要なプログラム部のみをプロセッサＢ１０４へ転送し(ST504)、転送が完了したらプロセッサＢ１０４がＲＡＭ＿Ｂ１０５へ展開したプログラムの妥当性（チェックサム確認、改竄検出など）を問い合わせ(ST505)、問題がなければ、転送したプログラムを実行させるために、信号線制御により、プロセッサＢ１０４を通常動作モードに設定し、リセットスタート、即ち、リセットをして起動(通常動作モードで再起動)させる(ST506)。ここで、通常動作モードとは、ダウンロードモードに続くメモリ書込み制御回路を含めたプロセッサＢ側のハードウエア的な動作モードを意味し、先に、システム全体の動作モードとして説明した通常動作モードや特殊モードとは異なる。Boot  Loaderの妥当性チェックやＲＡＭ＿Ｂ１０５へ展開したプログラムの妥当性問い合わせ結果に問題があれば、メモリ（Flashメモリ等の不揮発メモリ、ＲＯＭ１０２として共用する場合もある）にエラー履歴を残して、無限ループ処理とし、或いは、最初からリトライをするなどの処置を施す(ST507)。【００４６】
以上説明したように、本発明の実施形態によれば、他のプロセッサへ転送されるプログラムのメモリ（ＲＯＭ）への格納形態として、あるCode区分毎にヘッダを持たせ、そのヘッダ内に、対応するCode区分のサイズ情報や起動モード毎にその区分の転送が必要か否かといった情報を格納する。このようなメモリ格納形態とし、起動モード毎に必要な部分のみを転送可能とすることにより、モード毎の起動時間を短縮できる。【００４７】
更に、そのヘッダは転送元のプロセッサが直接読んで解釈できる形式、格納形態とすることにより、転送元のプロセッサが起動モードを判断し、起動モードに応じて最低限必要とするプログラム部のみを転送先プロセッサへ転送してモード起動することを可能とする。これにより、例えば、病院の中などで無線通信を禁止するモードでの起動や、W-CDMAとGSM、W-LANといった複数通信システム対応時のSingle通信モードでの起動、生産工程でハードウエアのチェックのみを対象とした試験モードでの起動といったモード毎の起動に対し、プロセッサ間プログラム転送処理による影響を最小限に抑え、目的に応じて起動時間を短縮することが可能で、商品性、生産性の向上につながる。【００４８】
このようなマルチプロセッサシステムを、特殊モードとして病院などの無線通信が禁止されるエリアでの使用など特定エリアモードを通常に使用する通常モードの他に設けた携帯電話機に適用すれば、特殊モードでの起動を短縮することができる。同様に、特殊モードとしてW-CDMAとGSM、W-LANといった複数通信システム対応時の単一（Single）通信モードでの起動モードを通常に使用する通常モードの他に設けた携帯電話機に本発明のマルチプロセッサシステムを適用すれば、その特殊モードの起動を短縮できる。また、同様に、特殊モードとして、生産工程におけるハードウエアのチェックのみを対象とする試験モードを設けた携帯電話に本発明のシステムを適用すれば、試験モードの起動を短縮することができる。【００４９】
このような特殊モードは一種に限らず複数設けてもよい。即ち、１つの携帯電話機に、特定エリアモード、単一通信モード、試験モードなどを組み込み、携帯電話機が使用される環境に応じて、これら特殊モードを選択して起動させることができる。
（実施例２）【００５０】
次に、本発明の第２の実施例について説明する。その基本的構成は上述の実施例と同様であるが、第２の実施例のマルチプロセッサシステムは、ＲＡＭ共用のマルチプロセッサシステムである。【００５１】
図６を参照すると、マルチプロセッサシステム６００において、ＲＡＭ６０３はプロセッサＡ（転送元プロセッサ）６０１とプロセッサ（転送先プロセッサ）Ｂ６０４のどちらからもアクセス可能な構成になっており、それらの間にバスアクセスに対して使用権を調整して与える調停回路６０５が配置されている。  ＲＡＭ６０３は、主に図１のＲＡＭ＿Ａ１０３とＲＡＭ＿Ｂ１０５を併せた用途で使われるほかに、図１のプロセッサ間インターフェース回路１０７の代わりに、どちらのプロセッサからもアクセス可能でプロセッサ間通信に用いる共有使用領域が設けられる。即ち、図７を参照すると、ＲＡＭ６０３にはプロセッサＡの使用領域７１及びプロセッサＢの使用領域７３のほかに、プロセッサＡとプロセッサＢの共有使用領域７２が設けられている。【００５２】
ＲＯＭ６０２は、図１のＲＯＭ１０２と同等であるが、ＲＯＭ６０２に格納されたプロセッサＢ６０４用プログラムをプロセッサＡ６０１が直接ＲＡＭ６０３のプロセッサＢ使用領域７３へ展開可能であるため、プロセッサＢ６０４用のBoot  Loaderを格納する必要はない。プロセッサＡ６０１がＲＯＭ６０２に格納されたプロセッサＢ６０４用プログラムをＲＡＭ６０３のプロセッサＢ使用領域７３へ展開し、展開したプログラムの妥当性チェック（チェックサム確認、改竄検出など）が完了するまでの間、プロセッサＢ６０４はリセットされたままの状態であり、問題なくプログラム展開されたことが確認できた後、プロセッサＡ６０１の制御によりリセットが解除され、ＲＡＭ６０３に展開されたプログラムの実行を開始する。【００５３】
図８は、第２の実施例において、プロセッサＡ６０１からプロセッサＢ６０４へプログラム転送する際のプロセッサＡ６０１内の処理フローの一例を図示したものである。先ず指示された起動モードを判定し(ST801)、起動モードにより必要なプログラム部のみをＲＡＭ６０３のプロセッサＢ使用領域に展開する(ST802)。ＲＯＭ６０２に格納されたプロセッサＢ用プログラムを分割のヘッダを参照することによって、指示された起動モードに対応する分割コードの有無を判定する。ヘッダにその起動モード対し、その分割コードが要とする書き込みがあれば、その分割コードをＲＡＭ６０３のプロセッサＢ使用領域に展開する。この際、ＲＯＭ６０２に格納されたプロセッサＢ用プログラムが圧縮や暗号化されている場合には、その復号化処理を実施した後にＲＡＭ６０３のプロセッサＢ使用領域７３への展開を行う。次にＲＡＭ６０３に展開したプロセッサＢ用プログラムの妥当性チェック（チェックサム確認、改竄検出など）を行い(ST803)、問題がなければ、ＲＡＭ６０３のプロセッサＢ使用領域に対してプロセッサＡのアクセスを禁止するガード設定を行い(ST804)、その後にプロセッサＢのリセットを解除してＲＡＭ６０３に展開したプログラムの実行を開始させる(ST805)。ＲＡＭ６０３へ展開したプログラムの妥当性チェック結果に問題があれば、メモリ（Flashメモリ等の不揮発メモリ、ＲＯＭ６０２として共用する場合もある）にエラー履歴を残し、プロセッサＢのリセットを解除することなく、ST802のプログラム展開処理以降のリトライを行うなどの対処をする(ST806)。【００５４】
次に、本発明のマルチプロセッサシステムを適用した携帯電話機について説明する。【００５５】
図９は、マルチシステムプロセッサを用いた携帯電話機のブロック図である。この携帯電話機は、第１の実施例に示したマルチプロセッサシステムを使用している。【００５６】
図において、携帯端末１０は、通信部３０とアプリケーション部２０を含む。通信部２０は、通信プロセッサ（転送先プロセッサ）３０４と、ＲＡＭ３０５、ＲＡＭのプログラムにしたがって通信プロセッサ３０４の制御を受けて通信機能をつかさどる通信系回路を含んでいる。また、通信部は、アプリケーション部から転送される通信プロセッサ用のプログラムをＲＡＭ３０５に書き込むＤＭＡ機能を有するメモリ書き込み制御回路３０６を有する。これらのブロックはバス接続されている。アプリケーション部２０は、アプリケーションプロセッサ（転送元プロセッサ）２０１、ＲＡＭ２０３，ＲＯＭ２０２，表示部２０８、操作部２０７、送話器と受話器（図示せず）、これらを制御する周辺回路を含む。アプリケーションプロセッサ２０１は、ＲＡＭ２０３，ＲＯＭ２０２とバス接続されている。また、アプリケーション部２０と通信部１０は、プロセッサ間インターフェース１０７で接続され、データ通信が行われる。【００５７】
ＲＯＭ２０２には、アプリケーションプロセッサ用のプログラム及び通信用プロセッサ用のプログラムの両方が予め格納されている。その格納形態は、第１の実施例に使用されたＲＯＭ１０２のそれと同一とする。したがって、ＲＯＭ２０２の場合、図２のプロセッサＢ用プログラムの領域に、通信用プロセッサ用のプログラムが分割されて格納され、各々の分割にはヘッダが付されており、ヘッダには、その分割のサイズ情報、起動モード番号とその番号のデータ転送の要否が書き込まれている。【００５８】
ＲＡＭ２０３は、アプリケーションプロセッサ２０１用の作業メモリである。ＲＡＭ３０５は、通信用プロセッサ３０４のプログラム展開先と作業用メモリとして使用される。プロセッサ間インターフェース回路１０７は、プロセッサ間のデータ通信を行うための回路で、起動時は最初に、アプリケーションプロセッサ２０１の信号制御により、メモリ書込み制御回路が３０６がプロセッサ間インターフェース回路１０７経由でアプリケーションプロセッサ２０１からの転送データ(Boot LoaderのCode)を受け取り、受け取ったデータをＲＡＭ３０５に書込む。この間、アプリケーションプロセッサ２０１の信号制御により、通信用プロセッサ３０４はリセットされたままである。Boot  LoaderのCode転送完了後、アプリケーションプロセッサ２０１の制御により、通信用プロセッサ３０４はＲＡＭ３０５に書込まれたBoot Loaderの実行を開始し、以後の通信用プロセッサ３０４用プログラム本体のアプリケーションプロセッサ２０１からの受信、ＲＡＭ３０５への展開処理はBoot  Loaderが行う。アプリケーションプロセッサ２０１は、ＲＯＭ２０２内の通信用プロセッサ用プログラムである各分割コードについて、指定された起動モードに対応する分割コードであるか否かを各ヘッダから判定し、指定された起動モードに対応する分割コードだけを転送する。したがって、ＲＡＭ３０５には通信プロセッサ用プログラムの内、指定された起動モードに対応する分割コードだけが転送される。指定された起動モードに対する通信用プロセッサ３０４用プログラム本体は圧縮や暗号化されたままの形でアプリケーションプロセッサ２０１から転送される構成も考えられ、そういったケースでは、Boot  Loader内でＲＡＭ３０５の所定のプログラム領域に展開する前に復号化の処理を行う。通信用プロセッサ３０４用プログラム本体の転送が完了すると、アプリケーションプロセッサ２０１の制御により、通信用プロセッサ３０４はＲＡＭ３０５に書込まれたプログラム本体の実行を開始する。【００５９】
指定された起動モードが単一通信モードの指定で、W-CDMA対応の通信システムに対応するモードの指定である場合には、W-CDMA対応の通信システムに対応する分割コードが、ＲＡＭ３０５に転送され、転送が完了すると、通信用プロセッサによりそのモードに対応した動作を開始する。即ち、GSM、W-LANなどの他の通信システム対応の通信用プログラムの転送はしなくてよいから、携帯端末の起動時間を低減することができる。【００６０】
上記携帯電話機は、第１の実施例のマルチプロセッサシステムを適用し応用例であるが、第２の実施例のシステムを用いてもよい。その場合、先の応用例の携帯電話機と同様に、通信部とアプリケーション部にそれぞれ転送先プロセッサと転送元プロセッサを配置し、通信部には、その機能をつかさどる通信系回路を、アプリケーション部には、表示部、操作部などを設ける。【００６１】
上記実施例及び応用例は、２つのプロセッサを用いマルチプロセッサシステムであるが、３以上のプロセッサを用いてもよい。その場合、第１及び第２の実施例に関して言うと、転送元プロセッサ（プロセッサＡ）に対して、転送先プロセッサ（プロセッサＢ）を複数用意して本発明のマルチプロセッサシステムとする。【００６２】
以上、実施形態（及び実施例）を参照して本願発明を説明したが、本願発明は上記実施形態（及び実施例）に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【００６３】
この出願は２００６年６月２７日に出願された日本出願特願２００６−１７６４３０を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図面の簡単な説明】
【００６４】
【図１】本発明の第１の実施例のマルチプロセッサシステムのブロック図である。
【図２】第１の実施例に使用されるＲＯＭ１０２におけるプロセッサＢ用プログラムの格納状態を示す図である。
【図３】第１の実施例に使用されるＲＯＭ１０２におけるプロセッサＢ用プログラムの別の格納状態を示す図である。
【図４】第１の実施例におけるプロセッサＡ及びプロセッサＢ間のシークエンス図で、（ａ）は通常モード、（ｂ）は特殊モードの場合を示す。
【図５】第１の実施例におけるプロセッサＡ１０１からプロセッサＢ１０４へプログラム転送する際のプロセッサＡ１０１の処理フローを示す図である。
【図６】本発明の第２の実施例のマルチプロセッサシステムを示すブロック図である。
【図７】第２の実施例に使用されるＲＡＭ６０３内の記憶領域を示す図である。
【図８】第２の実施例において、プロセッサＡ６０１からプロセッサＢ６０４へプログラム転送する際のプロセッサＡ６０１内の処理フローの一例を示す図である。
【図９】本発明のマルチシステムプロセッサを用いた応用例で、携帯電話機のブロック図である。
【符号の説明】
【００６５】
１０  携帯電話機
２０  アプリケーション部
３０  通信部
１００、６００  マルチプロセッサシステム
１０１、６０１  転送元プロセッサ（プロセッサＡ）
１０２、２０２、６０２  ＲＯＭ
１０３、１０５、２０３、３０５、６０３  ＲＡＭ
１０４、６０４  転送先プロセッサ（プロセッサＢ）
１０６、３０６  メモリ書込み制御回路
１０７  プロセッサ間インターフェース回路
２０１  アプリケーションプロセッサ
３０４  通信プロセッサ
６０５  調停回路
【図１】
0005458574.tif 000002
【図２】
0005458574.tif 000003
【図３】
0005458574.tif 000004
【図４】
0005458574.tif 000005
【図５】
0005458574.tif 000006
【図６】
0005458574.tif 000007
【図７】
0005458574.tif 000008
【図８】
0005458574.tif 000009
【図９】
0005458574.tif 000010