(57)【要約】【課題】  メインプロセッサと複数のサブプロセッサを備え、各プロセッサ間でメモリを共有するマルチプロセッサシステムにおいて、低コスト化が可能なマルチプロセッサシステムを提供する。【解決手段】  サブプロセッサのプログラムを初期化部分、各動作共通部分、各動作固有部分に分割し、初期化部分、各動作共通部分は１度メモリに格納されたら上書きを禁止し、各動作固有部分はサブプロセッサの動作に必要なもののみメモリに格納し、メモリに格納された動作固有部分はサブプロセッサが停止したら上書きを許可する。【選択図】図１
2007094528.tif 000002
【特許請求の範囲】
【請求項１】
メインプロセッサと、
複数のサブプロセッサと、
各プロセッサ間で共有するメモリを備え、
前記サブプロセッサは前記メモリからプログラムを読み込み動作し、かつ、
前記サブプロセッサのプログラムは前記メインプロセッサのみが前記メモリに格納可能であり、かつ、
前記サブプロセッサはシステム動作中に起動、動作、停止を繰り返すマルチプロセッサシステムにおいて、
前記サブプロセッサのプログラムを初期化部分、各動作共通部分、各動作固有部分に分割し、
前記初期化部分、各動作共通部分は1度前記メモリに格納されたら上書きを禁止し、
前記各動作固有部分は前記サブプロセッサの動作に必要なもののみ前記メモリに格納し、
前記メモリに格納された動作固有部分は前記サブプロセッサが停止したら上書きを許可する
ことを特徴とするマルチプロセッサシステムのメモリ使用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メインプロセッサと複数のサブプロセッサを備え、各プロセッサ間でメモリを共有するマルチプロセッサシステムにおいて、特にメモリの使用方法に関する。
【背景技術】
【０００２】
近年のシステムLSIは、高機能及び高性能を実現するために、複数のプロセッサを搭載するものも一般的になっている。このようなシステムの例として、図1のようなものがある。１チップとして実現されるシステムLSI１には、メインプロセッサ１０とサブプロセッサ１１が搭載され、それぞれ独立したバスを介してRAMコントローラ１３及び外部RAM２２を共有する。電源投入時は、メインプロセッサ１０のみが動作し、ROMコントローラ１２を経由して外部ROM２１から、プログラムをロードして実行する。メインプロセッサ１０は、サブプロセッサ１１の起動・停止の制御、及び、外部RAM２２へサブプロセッサ１１用プログラムの格納を行う。サブプロセッサ１１は、メインプロセッサ１０による起動命令により、外部RAM２２からプログラムをロードして実行する。また、サブプロセッサ１１は、消費電力を抑えるために、処理が必要な時のみ起動し、処理が終了したら停止する。
【０００３】
従来例としては、例えば特許文献１をあげることが出来る。
【特許文献１】特開平１１−３３８８３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前記システムLSI１を機器に組み込む場合、機器全体の性能に大きく影響を与えるものにメインプロセッサ１０による外部RAM２２へのサブプロセッサ１１用プログラム書き込みがある。例えば、サブプロセッサ１１用プログラム書き込み回数が1回のみなら、機器全体に与える影響は最小限であるが、これを実現するには一旦サブプロセッサ１１用プログラムが書き込まれた領域は、変更しないよう十分な容量の外部RAM２２が必要となり機器のコストを増大させる問題がある。
【０００５】
また、サブプロセッサ１１の停止時に、サブプロセッサ１１用プログラムが書き込まれた領域をメインプロセッサ１０が変更可能なように解放すると、サブプロセッサ１１を再起動する際、サブプロセッサ１１用プログラム書き込みも行わねばならず、サブプロセッサ１１の起動に時間がかかり、機器全体の性能を低下させる問題がある。
【０００６】
本発明は、このような問題を解決するためになされたもので、機器全体の性能を著しく低下させることなく、外部RAMを効率的に使用することで、低コスト化が可能なマルチプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１記載の発明に係るマルチプロセッサシステムのメモリ使用方法は、メインプロセッサと、複数のサブプロセッサと、各プロセッサ間で共有するメモリを備え、前記サブプロセッサは前記メモリからプログラムを読み込み動作し、かつ、前記サブプロセッサのプログラムは前記メインプロセッサのみが前記メモリに格納可能であり、かつ、前記サブプロセッサはシステム動作中に起動、動作、停止を繰り返すマルチプロセッサシステムにおいて、前記サブプロセッサのプログラムを初期化部分、各動作共通部分、各動作固有部分に分割し、前記初期化部分、各動作共通部分は1度前記メモリに格納されたら上書きを禁止し、前記各動作固有部分は前記サブプロセッサの動作に必要なもののみ前記メモリに格納し、前記メモリに格納された動作固有部分は前記サブプロセッサが停止したら上書きを許可することを特徴とする。
【０００８】
これにより、サブプロセッサの2度目以降の起動時にメインプロセッサは、初期化部分、各動作共通部分を除く動作固有部分のみメモリに格納すればよいので、サブプロセッサの起動時間を短縮できる。
【０００９】
また、動作固有部分はサブプロセッサが停止したら他のプロセッサに使用を許可するので、メモリを効率的に使用でき、搭載するメモリの容量を大きくしなくてもよい。
【発明の効果】
【００１０】
請求項１記載のマルチプロセッサシステムにおけるメモリ使用方法によれば、
システムに搭載するメモリの容量を増大させなくても、サブプロセッサの起動時間を短縮することができ、性能が著しく低下しない低コストなマルチプロセッサシステムを実現できる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明の実施の形態を説明する。
【００１２】
図１は本発明のメモリ使用方法を応用したマルチプロセッサシステムを示す構成図である。
【００１３】
１は複数のプロセッサや各種回路を１チップとして構成したシステムＬＳＩである。
【００１４】
メインプロセッサ１０は、システムＬＳＩ１全体を制御し、システムの電源投入直後にリセット解除され動作を開始し、システム動作中は停止することはない。起動時は、ＲＯＭコントローラ１２を介して外部のＲＯＭ２１からプログラムをロードし実行する。起動後は、ＲＡＭコントローラ１３を介して外部のＲＡＭ２２へプログラムを格納し、ＲＡＭ２２からプログラムをロードして実行することもできる。
【００１５】
サブプロセッサ１１は、システムの電源投入直後はリセット状態で停止している。メインプロセッサ１０によってリセットが解除されると、ＲＡＭ２２からプログラムをロードして実行する。所定の動作が終わるとメインプロセッサ１０へ終了通知し、再びメインプロセッサ１０によってリセット状態に設定される。
【００１６】
ＲＯＭコントローラ１２は、メインプロセッサ１０が外部のＲＯＭ２１のデータを読み込めるようにＲＯＭ２１を制御する。
【００１７】
ＲＡＭコントローラ１３は、メインプロセッサ１０とサブプロセッサ１１が外部のＲＡＭ２２へデータを読み書きできるようにＲＡＭ２２を制御する。
【００１８】
サブプロセッサ制御回路１４は、サブプロセッサ１１のリセット信号の制御やサブプロセッサ１１からメインプロセッサ１０への通知機能を有する。
【００１９】
ROM２１は、メインプロセッサ１０とサブプロセッサ１１のプログラム等が保存されている不揮発性メモリである。
【００２０】
RAM２２は、システム動作中はデータを保持できる揮発性メモリである。メインプロセッサ１０及びサブプロセッサ１１のプログラムの格納やワークエリアとして使用される。
【００２１】
図２はROM２１に保存されているサブプロセッサ１１のプログラムである。
【００２２】
サブプロセッサ１１のプログラムは、サブプロセッサ１１起動時に1度だけ実行される初期化部分３１、特定の動作に依存せず各動作時に共通で実行される各動作共通部分３２、特定の動作に依存して実行される各動作固有部分３３に分割されている。
【００２３】
次に動作について説明する。
【００２４】
本発明のメモリ使用方法を応用したマルチプロセッサシステムは、システムの電源投入後メインプロセッサ１０のリセットが解除され、ROM２１に保存されているプログラムを実行し、システム全体の初期化を開始する。初期化処理においてメインプロセッサ１０は、各種回路の初期化、RAM２２の自身が使用する領域の初期化等を行う。
【００２５】
システム動作中は、メインプロセッサ１０が各種回路の制御を行いながら、必要に応じてサブプロセッサ１１を起動し、所定の処理をさせ、停止させる行為を繰り返す。例えば、画像処理のようなプロセッサに負荷のかかる処理が必要な場合は、サブプロセッサ１１にその処理を行わせ、終了したら停止させる。このようにサブプロセッサ１１を制御することで、サブプロセッサ１１の動作による消費電力を抑えることができる。
【００２６】
図３は、サブプロセッサ１１の起動から停止までのフローチャートである。
【００２７】
メインプロセッサ１０は、サブプロセッサ１１の起動が1回目かどうかを判定する（ステップS11）。起動1回目の場合（ステップS11のYES）は、ROM２１からサブプロセッサプログラムの初期化部分３１と各動作共通部分３２をロードし、RAM２２の所定の領域へ格納する（ステップS12）。この処理において、RAM２２へ格納されたサブプロセッサプログラムは、システム動作中変更されることはない。よって起動２回目以降である場合（ステップS11のNO）は、前述の処理は省略されるためサブプロセッサ１１の起動処理が短縮される。
【００２８】
次に、サブプロセッサ１１に所定の動作を行わせるために、プログラムの動作固有部分３３から必要なものをRAM２２へ格納する（ステップS13）。メインプロセッサ１０は、サブプロセッサ制御回路１４を操作してサブプロセッサ１１のリセットを解除する（ステップS14）。メインプロセッサ１０は、サブプロセッサ１１の動作中他の処理を行いつつ、サブプロセッサ１１の動作終了通知を待つ（ステップS15）。サブプロセッサ１１は、所定の動作が終了するとサブプロセッサ制御回路１４を介してメインプロセッサ１０へ終了を通知する。メインプロセッサ１０は、サブプロセッサ１１の動作終了通知を受け（ステップS15のYES）、サブプロセッサ制御回路１４を操作してサブプロセッサ１１をリセット状態にする（ステップS16）。
【００２９】
サブプロセッサプログラムの動作固有部分を一旦格納したRAM２２の領域は、サブプロセッサ１１が停止中にメインプロセッサ１０が使用することを許可する、また、次回サブプロセッサ起動の動作固有部分ロードの際、上書きを許可することでRAM２２を効率的に使用することができ、システムに搭載するRAM２２の容量を小さくすることができる。
【００３０】
上記説明はサブプロセッサが１つの場合であるが、複数になった場合においても、本発明のメモリ使用方法は同様に適応できる。
【図面の簡単な説明】
【００３１】
【図１】本発明のメモリ使用方法を応用したマルチプロセッサシステムを示す構成図
【図２】ROM２１に保存されているサブプロセッサ１１のプログラム
【図３】サブプロセッサ１１の起動から停止までのフローチャート
【符号の説明】
【００３２】
１  １チップのシステムＬＳＩ
１０  メインプロセッサ
１１  サブプロセッサ
１２  ROMコントローラ
１３  RAMコントローラ
１４  サブプロセッサ制御回路
２１  ROM
２２  RAM
３１  サブプロセッサプログラムの初期化部分
３２  サブプロセッサプログラムの各動作共通部分
３１  サブプロセッサプログラムの各動作固有部分
【図１】
2007094528.tif 000003
【図２】
2007094528.tif 000004
【図３】
2007094528.tif 000005