(57)【要約】【課題】単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する際に、元となる単一プロセッサ用ソフトウェアプログラムの長所を生かしつつ、変換作業の手間を解消し、バグ発生のおそれも低減することができる、単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法を提供することである。【解決手段】単一メモリ空間上で走行するソフトウエアをマルチプロセッサ上で動作させるための実行形式プログラムを生成する際、オブジェクトファイル単位で、各プロセッサへ割り当て、それぞれのプロセッサ毎に実行形式プログラムを生成することを特徴とする。【選択図】  図６
2004252508.tif 000002
【特許請求の範囲】
【請求項１】
単一メモリ空間上で走行するソフトウエアをマルチプロセッサ上で動作させるための実行形式プログラムを生成する際、オブジェクトファイル単位で、各プロセッサへ割り当て、それぞれのプロセッサ毎に実行形式プログラムを生成することを特徴とする単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法。
【請求項２】
各プロセッサが管理するメモリ空間に実装される前記実行形式プログラムは、プロセッサ間でアドレスが重複しないように配置されることを特徴とする請求項１に記載の単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法。
【請求項３】
前記実行形式プログラムが走行中に、他のプロセッサが管理するメモリ空間上に配置された変数への参照が発生した場合、参照元のプロセッサが持つ例外処理を起動させることにより当該事象を検出し、適切なプロセッサへ参照要求し、参照要求されたプロセッサは変数を参照し、参照結果を参照元に返信し、参照元のプロセッサは、返信結果から変数参照命令をエミュレーション実行し、例外処理から次ぎの命令へ復帰することを特徴とする請求項１または２に記載の単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法。
【請求項４】
前記実行形式プログラムが走行中に、他のプロセッサが管理するメモリ空間上に配置された変数への書きこみが発生した場合、書きこみ要求元のプロセッサが持つ例外処理を起動させることにより当該事象を検出し、適切なプロセッサへ書きこみ要求し、書きこみ要求されたプロセッサは変数に書きこみし、書きこみ要求元のプロセッサは、例外処理から次ぎの命令へ復帰することを特徴とする請求項１または２に記載の単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法。
【請求項５】
前記実行形式プログラムが走行中に、他のプロセッサが管理するメモリ空間上に配置された関数の呼び出しが発生した場合、呼び出し要求元のプロセッサが持つ例外処理を起動させることにより当該事象を検出し、適切なプロセッサへ呼び出し要求し、呼び出し要求されたプロセッサは関数を呼び出し、呼び出し結果を呼び出し要求元に返信し、呼び出し要求元のプロセッサは、返信結果から関数呼び出し命令をエミュレーション実行し、例外処理から次ぎの命令へ復帰することを特徴とする請求項１または２に記載の単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法。
【請求項６】
前記例外処理を介しての処理要求送信と該処理結果返信の通信を可能とするプロセッサ間通信を備えていることを特徴とする請求項３、４または５に記載の単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法。
【請求項７】
請求項１ないし６のうちのいずれか１項に記載の変換する方法によって変換されたマルチプロセッサ用ソフトウェアプログラムを実装したことを特徴とする携帯電話機。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法に関する。
【０００２】
【従来の技術】
通常、ソフトウェアプログラム（以下、単に「プログラム」ともいう）を開発する際には、エディタ等によってソースファイルを書き上げ、それをコンパイラによってコンパイルしてオブジェクトファイルを生成し、さらにオブジェクトファイルをリンカに通すことによってプログラム内の関数や変数等のアドレス割り当て、リンクを行い、実行形式ファイルすなわち実行形式プログラムを生成する。
【０００３】
このようにして作成されるソフトウェアプログラムのソースファイルは、その動作環境たとえばハードウェアの構成に合わせて作成される。したがって、単一プロセッサ用ソフトウェアプログラムは、単一プロセッサであるというハードウェア構成を前提にして作成される。
【０００４】
ところが最近では、ハードウェアコストの低減を背景に、単一プロセッサで構成された装置をマルチプロセッサにすることによる処理能力の向上が望まれてきており、これに対応し、単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用に変換する要求が生じてきている。
【０００５】
そこで、特許文献１では、単一プロセッサ用に作成されたソースファイルに対してプログラム並列化処理を施し、複数のプロセッサを有するハードウェア構成に対応したプログラムのソースファイルを生成するプログラム並列方法を開示している。
【０００６】
【特許文献１】
特開平７−１１４５１６号公報
【発明が解決しようとする課題】
しかしながら、従来の方法には次のような問題があった。
【０００７】
従来一般的には、単一プロセッサ用に作成されたソフトウェアプログラムをマルチプロセッサ用に変換するためには、単一プロセッサ用ソフトウェアプログラムのソースファイルをマルチプロセッサ用に書きなおす必要があり、この作業を行うには、単一プロセッサ用ソフトウェアプログラムと等価な動作を保証しなければならないため、複数のプロセッサ間で独立に処理が可能となるようソフトウエアプログラムの論理を理解した上でソフトウエアプログラムの構造や実行単位を根本から見直し、分割し、論理を再構築を行う必要があった。
【０００８】
こうなると、作業者は、単一プロセッサ用ソフトウェアプログラムの構造を熟知するとともに、マルチプロセッサとなったハードウェア構成についても熟知する必要があり、対応できる人が限られてしまうし、変換作業に大変な手間がかかるとともに、複雑な作業のためバグ発生のおそれが増加してしまうという問題があった。
【０００９】
また、特許文献１に記載のプログラム並列方法では、単一プロセッサ用ソフトウェアプログラムのソースファイルに基づいてマルチプロセッサ用ソフトウェアプログラムのソースファイルを自動的に生成するようにしており、不必要なプロセッサ間通信を行わないようプログラムを生成するようにしているが、生成されたマルチプロセッサ用ソフトウェアプログラムのソースファイルは、いわば機械的に作成されたものであり、人間がプログラミングした場合と比べると、どうしても冗長的な処理を記載してしまったりして、人間がプログラミングしたものと比べて処理速度や必要なメモリ容量の点などで不利なものとなってしまうおそれがあり、元となる単一プロセッサ用ソフトウェアプログラムの長所を消してしまうおそれもあった。
【００１０】
本発明は上記の点にかんがみてなされたもので、単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する際に、元となる単一プロセッサ用ソフトウェアプログラムの長所を生かしつつ、変換作業の手間を解消し、バグ発生のおそれも低減することができる、単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明は上記の目的を達成するために、単一メモリ空間上で走行するソフトウエアをマルチプロセッサ上で動作させるための実行形式プログラムを生成する際、オブジェクトファイル単位で、各プロセッサへ割り当て、それぞれのプロセッサ毎に実行形式プログラムを生成することを特徴とする。
【００１２】
また本発明は、各プロセッサが管理するメモリ空間に実装される前記実行形式プログラムは、プロセッサ間でアドレスが重複しないように配置されることを特徴とする請求項１に記載の単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法。
【００１３】
また本発明は、前記実行形式プログラムが走行中に、他のプロセッサが管理するメモリ空間上に配置された変数への参照が発生した場合、参照元のプロセッサが持つ例外処理を起動させることにより当該事象を検出し、適切なプロセッサへ参照要求し、参照要求されたプロセッサは変数を参照し、参照結果を参照元に返信し、参照元のプロセッサは、返信結果から変数参照命令をエミュレーション実行し、例外処理から次ぎの命令へ復帰することを特徴とする。
【００１４】
また本発明は、前記実行形式プログラムが走行中に、他のプロセッサが管理するメモリ空間上に配置された変数への書きこみが発生した場合、書きこみ要求元のプロセッサが持つ例外処理を起動させることにより当該事象を検出し、適切なプロセッサへ書きこみ要求し、書きこみ要求されたプロセッサは変数に書きこみし、書きこみ要求元のプロセッサは、例外処理から次ぎの命令へ復帰することを特徴とする。
【００１５】
また本発明は、前記実行形式プログラムが走行中に、他のプロセッサが管理するメモリ空間上に配置された関数の呼び出しが発生した場合、呼び出し要求元のプロセッサが持つ例外処理を起動させることにより当該事象を検出し、適切なプロセッサへ呼び出し要求し、呼び出し要求されたプロセッサは関数を呼び出し、呼び出し結果を呼び出し要求元に返信し、呼び出し要求元のプロセッサは、返信結果から関数呼び出し命令をエミュレーション実行し、例外処理から次ぎの命令へ復帰することを特徴とする。
【００１６】
また本発明は、前記例外処理を介しての処理要求送信と該処理結果返信の通信を可能とするプロセッサ間通信を備えていることを特徴とする。
【００１７】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００１８】
図１は、本発明による単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法の一実施の形態を実行する装置の一例であるプログラム開発用端末装置の概要を示す外観図である。
【００１９】
本実施の形態において、単一プロセッサ用ソフトウェアプログラムからマルチプロセッサ用ソフトウェアプログラムへの変換は、図１に示すプログラム開発用端末装置１０で行われる。
【００２０】
図１に示すように、プログラム開発用端末装置１０は、たとえばパーソナルコンピュータを用いることができ、マウスやキーボード等の入力手段１３およびディスプレイ等の表示手段１４を備えて構成される。
【００２１】
図２は、図１に示したプログラム開発用端末装置１０の内部構成を示すブロック図である。
【００２２】
プログラム開発用端末装置１０は、図２に示すように、全体の動作を制御するＣＰＵ１１と、ＣＰＵ１１で動作するアプリケーションファイルや各種データ等を記憶する記憶手段１２と、マウスやキーボード等の入力手段１３と、ディスプレイ等の表示手段１４とを備えて構成される。
【００２３】
また、記憶手段１２には、ＣＰＵ１１で動作するアプリケーションファイルの一種である、コンパイラ２およびリンカ４が記憶されている。このコンパイラ２およびリンカ４は、単一プロセッサ用ソフトウェアプログラムやマルチプロセッサ用ソフトウェアプログラムの生成に用いられる。
【００２４】
図３は、本発明による単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法の一実施の形態によって生成された、マルチプロセッサ用ソフトウェアプログラムによって動作する装置の一例である携帯電話機の概要を示す外観図である。
【００２５】
本実施の形態では、プロセッサエレメント（以下「ＰＥ」という）が単一の携帯電話機を動作させるための単一プロセッサ用ソフトウェアプログラムを、ＰＥが２つの携帯電話機を動作させるためのマルチプロセッサ用ソフトウェアプログラムに変換する例について説明する。
【００２６】
図３に示すように、携帯電話機２０は、アンテナ２３と、プッシュ式のボタンスイッチ等を備えた入力手段３９と、ＬＣＤ等を備えた表示手段３６と、マイク等を備えた送話手段３７と、スピーカ等を備えた受話手段３８とを備えて構成される。
【００２７】
図４は、図３に示した携帯電話機２０の内部構成を示すブロック図である。
【００２８】
携帯電話機２０は、図４に示すように、全体の動作を制御する制御手段２１と、通話等のため無線の送受信をする送受信手段２２およびアンテナ２３と、プッシュ式のボタンスイッチ等を備えた入力手段３９と、ＬＣＤ等を備えた表示手段３６と、マイク等を備えた送話手段３７と、スピーカ等を備えた受話手段３８とを備えて構成される。
【００２９】
また、本実施の形態において、制御手段２１は、２つのプロセッサエレメントであるＰＥ２６とＰＥ３１とを有する。本発明はこれに限られるものではなく、３つ以上のＰＥを有する装置にも適用することができることはいうまでもない。
【００３０】
ＰＥ２６は、ＣＰＵ２７と、ＰＥ２６とＰＥ３１との通信を行うＰＥ間通信手段２８と、ＣＰＵ２７で動作するプログラム等を実行時に展開するメモリ２９と、ＣＰＵ２７で動作するプログラムや各種データ等を不揮発的に記憶する不揮発性メモリ３０とを有して構成される。
【００３１】
ＰＥ３１は、ＣＰＵ３２と、ＰＥ３１とＰＥ２６との通信を行うＰＥ間通信手段３３と、ＣＰＵ３２で動作するプログラム等を実行時に展開するメモリ３４と、ＣＰＵ３２で動作するプログラムや各種データ等を不揮発的に記憶する不揮発性メモリ３５とを有して構成される。
【００３２】
図５は、単一プロセッサ用ソフトウェアプログラムの実行形式ファイルを生成する手順を説明する図である。
【００３３】
本実施の形態においては、図５に示すように、ソースファイル１ａ〜１ｅの５個のソースファイルから、単一プロセッサ用ソフトウェアプログラムである１つの実行形式ファイル（実行形式プログラム）５を生成する場合について説明する。
【００３４】
まずソースファイル１ａ〜１ｅのそれぞれを、コンパイラ２によってコンパイルし、これによってオブジェクトファイル３ａ〜３ｅを生成する。また、オブジェクトファイル３ａ〜３ｅのすべてをリンカ４によってリンクし、単一プロセッサ用ソフトウェアプログラムである１つの実行形式ファイル５を生成する。
【００３５】
続いて、図５に示したソースファイル１ａ〜１ｅから、２つのＰＥに対応したマルチプロセッサ用ソフトウェアプログラムである２つの実行形式ファイルを生成する場合について説明する。
【００３６】
図６は、マルチプロセッサ用ソフトウェアプログラムの実行形式ファイルを生成する手順を説明する図である。
【００３７】
本実施の形態においては、図６に示すように、図５に示したのと同じソースファイル１ａ〜１ｅの５個のソースファイルから、マルチプロセッサ用ソフトウェアプログラムである２つの実行形式ファイル（実行形式プログラム）６ａ、６ｂを生成する場合について説明する。
【００３８】
まずソースファイル１ａ〜１ｅのそれぞれを、コンパイラ２によってコンパイルし、これによってオブジェクトファイル３ａ〜３ｅを生成する。
【００３９】
次に、オブジェクトファイル３ａ〜３ｅをＰＥの数（本実施の形態では図４に示したようにＰＥの数は２つ）のグループに分け、グループごとにリンカ４によってリンクする。図６に示した例では、オブジェクトファイル３ａ〜３ｃをリンクすることによって実行形式ファイル６ａを生成し、オブジェクトファイル３ｄ〜３ｅをリンクすることによって実行形式ファイル６ｂを生成する。
【００４０】
ここで、たとえばオブジェクトファイル３ａに含まれる関数が、自分と別のグループのオブジェクトファイルである３ｄに実体が存在する関数や変数を参照している場合には、オブジェクトファイル３ａと３ｂと３ｄとでリンクをする際に実体がない関数や変数のアドレスがわからず、リンクできない状態となってしまう。そこで、本実施の形態では、リンクの際に、関数や変数の実体が存在するグループでアドレスが確定したならば、その確定したアドレスを実体がなく参照しているグループのリンクの際に通知してやり、これによってリンクを完成させる。
【００４１】
このようにして完成した実行形式ファイル６ａは図４に示したＰＥ２６の不揮発性メモリ３０に記憶され、メモリ２９に展開されてＣＰＵ２７によって実行される。また、実行形式ファイル６ｂは図４に示したＰＥ３１の不揮発性メモリ３５に記憶され、メモリ３４に展開されてＣＰＵ３２によって実行される。
【００４２】
図７は、本実施の形態によって生成されたマルチプロセッサ用ソフトウェアプログラムが割り当てられるアドレス空間を示す図であり、（ａ）は図４に示したＰＥ２６のメモリ２９に実体があるメモリ空間を示す図であり、（ｂ）は図４に示したＰＥ３１のメモリ３４に実体があるメモリ空間を示す図であり、（ｃ）は図４に示したＰＥ２６のＣＰＵ２７やＰＥ３１のＣＰＵ３２が取り扱う仮想的なメモリ空間を示す図である。
【００４３】
図７（ａ）〜図７（ｃ）に示すように、本実施の形態のＣＰＵ２７およびＣＰＵ３２はそれぞれが、アドレス００００ｈ〜ｆｆｆｆｈをプログラム実行の際のメモリ空間としており、ＰＥ２６ではそのうちの００００ｈ〜７ｆｆｆｈをメモリ２９に実体として有し、ＰＥ３１ではそのうちの８０００ｈ〜ｆｆｆｆｈをメモリ３４に実体として有している。
【００４４】
図８は、図６に示した実行形式ファイル６ａがＰＥ２６のメモリ２９に展開された状態を示す図である。
【００４５】
本実施の形態では、図８に示すように、実行形式ファイル６ａは、関数Ａ、関数Ｂ、関数Ｃ、変数Ｄ、変数Ｅ、変数Ｆおよび変数Ｇの実体を有し、それぞれがメモリ２９のアドレス空間に展開される。
【００４６】
また、メモリ２９にはＤａｔａ  ａｂｏｒｔ時割込処理格納領域４５が設けられている。このＤａｔａ  ａｂｏｒｔ時割込処理格納領域４５は、ＣＰＵ２７がメモリ２９に実体のアドレスがない変数の読み出し（参照）や書きこみを行おうとしたときに、いわゆる例外処理の一種である、割込みで実行する処理を格納する領域である。
【００４７】
Ｄａｔａ  ａｂｏｒｔ時割込処理格納領域４５に格納される割込み処理は、割り込みの原因となった、メモリ２９に実体のアドレスがない変数の読み出しや書きこみを、ＰＥ間通信手段２８を使用してＰＥ３１と通信し、変数の実体があるメモリ３４に対して行うものである。このため、ＰＥ３１にはこれに呼応して実際にメモリ３４に対してその変数のアクセスを行うプログラムが必要となる。
【００４８】
さらに、メモリ２９にはＰｒｅｆｅｔｃｈ  ａｂｏｒｔ時割込処理格納領域４６が設けられている。このＰｒｅｆｅｔｃｈ  ａｂｏｒｔ時割込処理格納領域４６は、ＣＰＵ２７がメモリ２９に実体のアドレスがない関数の呼び出しを行おうとしたときに、いわゆる例外処理の一種である、割込みで実行する処理を格納する領域である。
【００４９】
Ｐｒｅｆｅｔｃｈ  ａｂｏｒｔ時割込処理格納領域４６に格納される割込み処理は、割り込みの原因となった、メモリ２９に実体のアドレスがない関数の呼び出しを、ＰＥ間通信手段２８を使用してＰＥ３１と通信し、関数の実体があるメモリ３４に対して行うものである。このため、ＰＥ３１にはこれに呼応して実際にメモリ３４に対してその関数の呼び出しを行い、実行するプログラムが必要となる。
【００５０】
なお、Ｄａｔａ  ａｂｏｒｔ時割込処理格納領域４５やＰｒｅｆｅｔｃｈ  ａｂｏｒｔ時割込処理格納領域４６に格納される割込み処理は予めプログラミングして不揮発性メモリ３０に記憶しておき、実行時にメモリ２９に展開するようにしてもよい。また、Ｄａｔａ  ａｂｏｒｔ時割込処理格納領域４５やＰｒｅｆｅｔｃｈ  ａｂｏｒｔ時割込処理格納領域４６はＣＰＵ２７内に設けてもよい。
【００５１】
図９は、図６に示した実行形式ファイル６ｂがＰＥ３１のメモリ３４に展開された状態を示す図である。
【００５２】
本実施の形態では、図９に示すように、実行形式ファイル６ｂは、関数Ｊ、関数Ｋ、変数Ｌ、変数Ｍ、変数Ｎ、変数Ｏおよび変数Ｐの実体を有し、それぞれがメモリ３４のアドレス空間に展開される。
【００５３】
また、メモリ３４にはＤａｔａ  ａｂｏｒｔ時割込処理格納領域５０が設けられている。このＤａｔａ  ａｂｏｒｔ時割込処理格納領域５０は、ＣＰＵ３２がメモリ３４に実体のアドレスがない変数の読み出しや書きこみを行おうとしたときに、いわゆる例外処理の一種である、割込みで実行する処理を格納する領域である。
【００５４】
Ｄａｔａ  ａｂｏｒｔ時割込処理格納領域５０に格納される割込み処理は、割り込みの原因となった、メモリ３４に実体のアドレスがない変数の読み出しや書きこみを、ＰＥ間通信手段３３を使用してＰＥ２６と通信し、変数の実体があるメモリ２９に対して行うものである。このため、ＰＥ２６にはこれに呼応して実際にメモリ２９に対してその変数のアクセスを行うプログラムが必要となる。
【００５５】
さらに、メモリ３４にはＰｒｅｆｅｔｃｈ  ａｂｏｒｔ時割込処理格納領域５１が設けられている。このＰｒｅｆｅｔｃｈ  ａｂｏｒｔ時割込処理格納領域５１は、ＣＰＵ３２がメモリ３４に実体のアドレスがない関数の呼び出しを行おうとしたときに、いわゆる例外処理の一種である、割込みで実行する処理を格納する領域である。
【００５６】
Ｐｒｅｆｅｔｃｈ  ａｂｏｒｔ時割込処理格納領域５１に格納される割込み処理は、割り込みの原因となった、メモリ３４に実体のアドレスがない関数の呼び出しを、ＰＥ間通信手段３３を使用してＰＥ２６と通信し、関数の実体があるメモリ２９に対して行うものである。このため、ＰＥ２６にはこれに呼応して実際にメモリ２９に対してその関数の呼び出しを行い、実行するプログラムが必要となる。
【００５７】
なお、Ｄａｔａ  ａｂｏｒｔ時割込処理格納領域５０やＰｒｅｆｅｔｃｈ  ａｂｏｒｔ時割込処理格納領域５１に格納される割込み処理は予めプログラミングして不揮発性メモリ３５に記憶しておき、実行時にメモリ３４に展開するようにしてもよい。また、Ｄａｔａ  ａｂｏｒｔ時割込処理格納領域４５やＰｒｅｆｅｔｃｈ  ａｂｏｒｔ時割込処理格納領域４６はＣＰＵ２７内に設けてもよい。
【００５８】
ここで、上記のＤａｔａ  ａｂｏｒｔ時割込処理格納領域４５やＰｒｅｆｅｔｃｈ  ａｂｏｒｔ時割込処理格納領域４６やＤａｔａ  ａｂｏｒｔ時割込処理格納領域５０やＰｒｅｆｅｔｃｈ  ａｂｏｒｔ時割込処理格納領域５１に格納される割込み処理であるａｂｏｒｔ時処理についてさらに説明する。
【００５９】
図１０は、本実施の形態におけるａｂｏｒｔ時処理のフローチャートを示す図である。
【００６０】
各ＰＥでは、実体が自分側にないアドレスに対するアクセス（データの読み出し、書きこみ、関数の呼び出し）要求があった場合、割込み処理が実行される。この割込み処理では、ＰＥ間通信を行い、自分以外のＰＥに対してアクセス要求の実行を依頼する（Ａ−１）。依頼を受けたＰＥではその実体が自身にあればその依頼を実行し、必要に応じて実行結果を依頼元のＰＥに返す（Ａ−２）。依頼元のＰＥでは割込み処理の完了により、割込み前の処理に復帰する（Ａ−３）。
【００６１】
なお、上述の実施の形態では、携帯電話機用の単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法について説明したが、本発明が携帯電話機用に限定されるものでないことはいうまでもない。
【００６２】
以上説明したように本発明によれば、単一メモリ空間上で走行するソフトウエアをマルチプロセッサ上で動作させる場合、ソフト構造や論理を変更することなく、ソースファイル、オブジェクトファイル、ライブラリ等のソフトウエアの構成要素単位でプロセッサへの割り付けを考えればよいので、開発や検証の期間、およびそれら作業に要する費用を抑えることが可能となる。
【００６３】
【発明の効果】
以上説明したように、本発明によれば、単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する際に、元となる単一プロセッサ用ソフトウェアプログラムの長所を生かしつつ、変換作業の手間を解消し、バグ発生のおそれも低減することができる、単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法を提供することができる。
【００６４】
すなわち、本発明によれば、単一メモリ空間上で走行するソフトウエアをマルチプロセッサ上で動作させる場合、ソフト構造や論理を変更することなく、ソースファイル、オブジェクトファイル、ライブラリ等のソフトウエアの構成要素単位でプロセッサへの割り付けを考えればよいので、開発や検証の期間、およびそれら作業に要する費用を抑えることが可能となる。
【図面の簡単な説明】
【図１】本発明による単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法の一実施の形態を実行する装置の一例であるプログラム開発用端末装置の概要を示す外観図である。
【図２】図１に示したプログラム開発用端末装置１０の内部構成を示すブロック図である。
【図３】本発明による単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法の一実施の形態によって生成された、マルチプロセッサ用ソフトウェアプログラムによって動作する装置の一例である携帯電話機の概要を示す外観図である。
【図４】図３に示した携帯電話機２０の内部構成を示すブロック図である。
【図５】単一プロセッサ用ソフトウェアプログラムの実行形式ファイルを生成する手順を説明する図である。
【図６】マルチプロセッサ用ソフトウェアプログラムの実行形式ファイルを生成する手順を説明する図である。
【図７】本実施の形態によって生成されたマルチプロセッサ用ソフトウェアプログラムが割り当てられるアドレス空間を示す図であり、（ａ）は図４に示したＰＥ２６のメモリ２９に実体があるメモリ空間を示す図であり、（ｂ）は図４に示したＰＥ３１のメモリ３４に実体があるメモリ空間を示す図であり、（ｃ）は図４に示したＰＥ２６のＣＰＵ２７やＰＥ３１のＣＰＵ３２が取り扱う仮想的なメモリ空間を示す図である。
【図８】図６に示した実行形式ファイル６ａがＰＥ２６のメモリ２９に展開された状態を示す図である。
【図９】図６に示した実行形式ファイル６ｂがＰＥ３１のメモリ３４に展開された状態を示す図である。
【図１０】本実施の形態におけるａｂｏｒｔ時処理のフローチャートを示す図である。
【符号の説明】
１ａ〜１ｅ  ソースファイル
２  コンパイラ
３ａ〜３ｅ  オブジェクトファイル
４  リンカ
５、６ａ、６ｂ  実行形式ファイル
１０  プログラム開発用端末装置
１１  ＣＰＵ
１２  記憶手段
１３  入力手段
１４  表示手段
２０  携帯電話機
２１  制御手段
２２  送受信手段
２３  アンテナ
２６、３１  ＰＥ
２７、３２  ＣＰＵ
２８、３３  ＰＥ間通信手段
２９、３４  メモリ
３０、３５  不揮発性メモリ
【図１】
2004252508.tif 000003
【図２】
2004252508.tif 000004
【図３】
2004252508.tif 000005
【図４】
2004252508.tif 000006
【図５】
2004252508.tif 000007
【図６】
2004252508.tif 000008
【図７】
2004252508.tif 000009
【図８】
2004252508.tif 000010
【図９】
2004252508.tif 000011
【図１０】
2004252508.tif 000012