JP2004252508A - 単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法 - Google Patents

単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法 Download PDF

Info

Publication number
JP2004252508A
JP2004252508A JP2003039059A JP2003039059A JP2004252508A JP 2004252508 A JP2004252508 A JP 2004252508A JP 2003039059 A JP2003039059 A JP 2003039059A JP 2003039059 A JP2003039059 A JP 2003039059A JP 2004252508 A JP2004252508 A JP 2004252508A
Authority
JP
Japan
Prior art keywords
processor
software program
program
multiprocessor
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003039059A
Other languages
English (en)
Inventor
Kenji Kuwabara
賢二 桑原
Masami Kanda
正己 神田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
NEC Informatec Systems Ltd
Original Assignee
NEC Corp
NEC Informatec Systems Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp, NEC Informatec Systems Ltd filed Critical NEC Corp
Priority to JP2003039059A priority Critical patent/JP2004252508A/ja
Priority to US10/780,225 priority patent/US20040181784A1/en
Priority to CNB2004100055848A priority patent/CN1267818C/zh
Priority to EP04003671A priority patent/EP1450254A3/en
Publication of JP2004252508A publication Critical patent/JP2004252508A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/456Parallelism detection

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

【課題】単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する際に、元となる単一プロセッサ用ソフトウェアプログラムの長所を生かしつつ、変換作業の手間を解消し、バグ発生のおそれも低減することができる、単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法を提供することである。
【解決手段】単一メモリ空間上で走行するソフトウエアをマルチプロセッサ上で動作させるための実行形式プログラムを生成する際、オブジェクトファイル単位で、各プロセッサへ割り当て、それぞれのプロセッサ毎に実行形式プログラムを生成することを特徴とする。
【選択図】 図6

Description

【0001】
【発明の属する技術分野】
本発明は、単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法に関する。
【0002】
【従来の技術】
通常、ソフトウェアプログラム(以下、単に「プログラム」ともいう)を開発する際には、エディタ等によってソースファイルを書き上げ、それをコンパイラによってコンパイルしてオブジェクトファイルを生成し、さらにオブジェクトファイルをリンカに通すことによってプログラム内の関数や変数等のアドレス割り当て、リンクを行い、実行形式ファイルすなわち実行形式プログラムを生成する。
【0003】
このようにして作成されるソフトウェアプログラムのソースファイルは、その動作環境たとえばハードウェアの構成に合わせて作成される。したがって、単一プロセッサ用ソフトウェアプログラムは、単一プロセッサであるというハードウェア構成を前提にして作成される。
【0004】
ところが最近では、ハードウェアコストの低減を背景に、単一プロセッサで構成された装置をマルチプロセッサにすることによる処理能力の向上が望まれてきており、これに対応し、単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用に変換する要求が生じてきている。
【0005】
そこで、特許文献1では、単一プロセッサ用に作成されたソースファイルに対してプログラム並列化処理を施し、複数のプロセッサを有するハードウェア構成に対応したプログラムのソースファイルを生成するプログラム並列方法を開示している。
【0006】
【特許文献1】
特開平7−114516号公報
【発明が解決しようとする課題】
しかしながら、従来の方法には次のような問題があった。
【0007】
従来一般的には、単一プロセッサ用に作成されたソフトウェアプログラムをマルチプロセッサ用に変換するためには、単一プロセッサ用ソフトウェアプログラムのソースファイルをマルチプロセッサ用に書きなおす必要があり、この作業を行うには、単一プロセッサ用ソフトウェアプログラムと等価な動作を保証しなければならないため、複数のプロセッサ間で独立に処理が可能となるようソフトウエアプログラムの論理を理解した上でソフトウエアプログラムの構造や実行単位を根本から見直し、分割し、論理を再構築を行う必要があった。
【0008】
こうなると、作業者は、単一プロセッサ用ソフトウェアプログラムの構造を熟知するとともに、マルチプロセッサとなったハードウェア構成についても熟知する必要があり、対応できる人が限られてしまうし、変換作業に大変な手間がかかるとともに、複雑な作業のためバグ発生のおそれが増加してしまうという問題があった。
【0009】
また、特許文献1に記載のプログラム並列方法では、単一プロセッサ用ソフトウェアプログラムのソースファイルに基づいてマルチプロセッサ用ソフトウェアプログラムのソースファイルを自動的に生成するようにしており、不必要なプロセッサ間通信を行わないようプログラムを生成するようにしているが、生成されたマルチプロセッサ用ソフトウェアプログラムのソースファイルは、いわば機械的に作成されたものであり、人間がプログラミングした場合と比べると、どうしても冗長的な処理を記載してしまったりして、人間がプログラミングしたものと比べて処理速度や必要なメモリ容量の点などで不利なものとなってしまうおそれがあり、元となる単一プロセッサ用ソフトウェアプログラムの長所を消してしまうおそれもあった。
【0010】
本発明は上記の点にかんがみてなされたもので、単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する際に、元となる単一プロセッサ用ソフトウェアプログラムの長所を生かしつつ、変換作業の手間を解消し、バグ発生のおそれも低減することができる、単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法を提供することを目的とする。
【0011】
【課題を解決するための手段】
本発明は上記の目的を達成するために、単一メモリ空間上で走行するソフトウエアをマルチプロセッサ上で動作させるための実行形式プログラムを生成する際、オブジェクトファイル単位で、各プロセッサへ割り当て、それぞれのプロセッサ毎に実行形式プログラムを生成することを特徴とする。
【0012】
また本発明は、各プロセッサが管理するメモリ空間に実装される前記実行形式プログラムは、プロセッサ間でアドレスが重複しないように配置されることを特徴とする請求項1に記載の単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法。
【0013】
また本発明は、前記実行形式プログラムが走行中に、他のプロセッサが管理するメモリ空間上に配置された変数への参照が発生した場合、参照元のプロセッサが持つ例外処理を起動させることにより当該事象を検出し、適切なプロセッサへ参照要求し、参照要求されたプロセッサは変数を参照し、参照結果を参照元に返信し、参照元のプロセッサは、返信結果から変数参照命令をエミュレーション実行し、例外処理から次ぎの命令へ復帰することを特徴とする。
【0014】
また本発明は、前記実行形式プログラムが走行中に、他のプロセッサが管理するメモリ空間上に配置された変数への書きこみが発生した場合、書きこみ要求元のプロセッサが持つ例外処理を起動させることにより当該事象を検出し、適切なプロセッサへ書きこみ要求し、書きこみ要求されたプロセッサは変数に書きこみし、書きこみ要求元のプロセッサは、例外処理から次ぎの命令へ復帰することを特徴とする。
【0015】
また本発明は、前記実行形式プログラムが走行中に、他のプロセッサが管理するメモリ空間上に配置された関数の呼び出しが発生した場合、呼び出し要求元のプロセッサが持つ例外処理を起動させることにより当該事象を検出し、適切なプロセッサへ呼び出し要求し、呼び出し要求されたプロセッサは関数を呼び出し、呼び出し結果を呼び出し要求元に返信し、呼び出し要求元のプロセッサは、返信結果から関数呼び出し命令をエミュレーション実行し、例外処理から次ぎの命令へ復帰することを特徴とする。
【0016】
また本発明は、前記例外処理を介しての処理要求送信と該処理結果返信の通信を可能とするプロセッサ間通信を備えていることを特徴とする。
【0017】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【0018】
図1は、本発明による単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法の一実施の形態を実行する装置の一例であるプログラム開発用端末装置の概要を示す外観図である。
【0019】
本実施の形態において、単一プロセッサ用ソフトウェアプログラムからマルチプロセッサ用ソフトウェアプログラムへの変換は、図1に示すプログラム開発用端末装置10で行われる。
【0020】
図1に示すように、プログラム開発用端末装置10は、たとえばパーソナルコンピュータを用いることができ、マウスやキーボード等の入力手段13およびディスプレイ等の表示手段14を備えて構成される。
【0021】
図2は、図1に示したプログラム開発用端末装置10の内部構成を示すブロック図である。
【0022】
プログラム開発用端末装置10は、図2に示すように、全体の動作を制御するCPU11と、CPU11で動作するアプリケーションファイルや各種データ等を記憶する記憶手段12と、マウスやキーボード等の入力手段13と、ディスプレイ等の表示手段14とを備えて構成される。
【0023】
また、記憶手段12には、CPU11で動作するアプリケーションファイルの一種である、コンパイラ2およびリンカ4が記憶されている。このコンパイラ2およびリンカ4は、単一プロセッサ用ソフトウェアプログラムやマルチプロセッサ用ソフトウェアプログラムの生成に用いられる。
【0024】
図3は、本発明による単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法の一実施の形態によって生成された、マルチプロセッサ用ソフトウェアプログラムによって動作する装置の一例である携帯電話機の概要を示す外観図である。
【0025】
本実施の形態では、プロセッサエレメント(以下「PE」という)が単一の携帯電話機を動作させるための単一プロセッサ用ソフトウェアプログラムを、PEが2つの携帯電話機を動作させるためのマルチプロセッサ用ソフトウェアプログラムに変換する例について説明する。
【0026】
図3に示すように、携帯電話機20は、アンテナ23と、プッシュ式のボタンスイッチ等を備えた入力手段39と、LCD等を備えた表示手段36と、マイク等を備えた送話手段37と、スピーカ等を備えた受話手段38とを備えて構成される。
【0027】
図4は、図3に示した携帯電話機20の内部構成を示すブロック図である。
【0028】
携帯電話機20は、図4に示すように、全体の動作を制御する制御手段21と、通話等のため無線の送受信をする送受信手段22およびアンテナ23と、プッシュ式のボタンスイッチ等を備えた入力手段39と、LCD等を備えた表示手段36と、マイク等を備えた送話手段37と、スピーカ等を備えた受話手段38とを備えて構成される。
【0029】
また、本実施の形態において、制御手段21は、2つのプロセッサエレメントであるPE26とPE31とを有する。本発明はこれに限られるものではなく、3つ以上のPEを有する装置にも適用することができることはいうまでもない。
【0030】
PE26は、CPU27と、PE26とPE31との通信を行うPE間通信手段28と、CPU27で動作するプログラム等を実行時に展開するメモリ29と、CPU27で動作するプログラムや各種データ等を不揮発的に記憶する不揮発性メモリ30とを有して構成される。
【0031】
PE31は、CPU32と、PE31とPE26との通信を行うPE間通信手段33と、CPU32で動作するプログラム等を実行時に展開するメモリ34と、CPU32で動作するプログラムや各種データ等を不揮発的に記憶する不揮発性メモリ35とを有して構成される。
【0032】
図5は、単一プロセッサ用ソフトウェアプログラムの実行形式ファイルを生成する手順を説明する図である。
【0033】
本実施の形態においては、図5に示すように、ソースファイル1a〜1eの5個のソースファイルから、単一プロセッサ用ソフトウェアプログラムである1つの実行形式ファイル(実行形式プログラム)5を生成する場合について説明する。
【0034】
まずソースファイル1a〜1eのそれぞれを、コンパイラ2によってコンパイルし、これによってオブジェクトファイル3a〜3eを生成する。また、オブジェクトファイル3a〜3eのすべてをリンカ4によってリンクし、単一プロセッサ用ソフトウェアプログラムである1つの実行形式ファイル5を生成する。
【0035】
続いて、図5に示したソースファイル1a〜1eから、2つのPEに対応したマルチプロセッサ用ソフトウェアプログラムである2つの実行形式ファイルを生成する場合について説明する。
【0036】
図6は、マルチプロセッサ用ソフトウェアプログラムの実行形式ファイルを生成する手順を説明する図である。
【0037】
本実施の形態においては、図6に示すように、図5に示したのと同じソースファイル1a〜1eの5個のソースファイルから、マルチプロセッサ用ソフトウェアプログラムである2つの実行形式ファイル(実行形式プログラム)6a、6bを生成する場合について説明する。
【0038】
まずソースファイル1a〜1eのそれぞれを、コンパイラ2によってコンパイルし、これによってオブジェクトファイル3a〜3eを生成する。
【0039】
次に、オブジェクトファイル3a〜3eをPEの数(本実施の形態では図4に示したようにPEの数は2つ)のグループに分け、グループごとにリンカ4によってリンクする。図6に示した例では、オブジェクトファイル3a〜3cをリンクすることによって実行形式ファイル6aを生成し、オブジェクトファイル3d〜3eをリンクすることによって実行形式ファイル6bを生成する。
【0040】
ここで、たとえばオブジェクトファイル3aに含まれる関数が、自分と別のグループのオブジェクトファイルである3dに実体が存在する関数や変数を参照している場合には、オブジェクトファイル3aと3bと3dとでリンクをする際に実体がない関数や変数のアドレスがわからず、リンクできない状態となってしまう。そこで、本実施の形態では、リンクの際に、関数や変数の実体が存在するグループでアドレスが確定したならば、その確定したアドレスを実体がなく参照しているグループのリンクの際に通知してやり、これによってリンクを完成させる。
【0041】
このようにして完成した実行形式ファイル6aは図4に示したPE26の不揮発性メモリ30に記憶され、メモリ29に展開されてCPU27によって実行される。また、実行形式ファイル6bは図4に示したPE31の不揮発性メモリ35に記憶され、メモリ34に展開されてCPU32によって実行される。
【0042】
図7は、本実施の形態によって生成されたマルチプロセッサ用ソフトウェアプログラムが割り当てられるアドレス空間を示す図であり、(a)は図4に示したPE26のメモリ29に実体があるメモリ空間を示す図であり、(b)は図4に示したPE31のメモリ34に実体があるメモリ空間を示す図であり、(c)は図4に示したPE26のCPU27やPE31のCPU32が取り扱う仮想的なメモリ空間を示す図である。
【0043】
図7(a)〜図7(c)に示すように、本実施の形態のCPU27およびCPU32はそれぞれが、アドレス0000h〜ffffhをプログラム実行の際のメモリ空間としており、PE26ではそのうちの0000h〜7fffhをメモリ29に実体として有し、PE31ではそのうちの8000h〜ffffhをメモリ34に実体として有している。
【0044】
図8は、図6に示した実行形式ファイル6aがPE26のメモリ29に展開された状態を示す図である。
【0045】
本実施の形態では、図8に示すように、実行形式ファイル6aは、関数A、関数B、関数C、変数D、変数E、変数Fおよび変数Gの実体を有し、それぞれがメモリ29のアドレス空間に展開される。
【0046】
また、メモリ29にはData abort時割込処理格納領域45が設けられている。このData abort時割込処理格納領域45は、CPU27がメモリ29に実体のアドレスがない変数の読み出し(参照)や書きこみを行おうとしたときに、いわゆる例外処理の一種である、割込みで実行する処理を格納する領域である。
【0047】
Data abort時割込処理格納領域45に格納される割込み処理は、割り込みの原因となった、メモリ29に実体のアドレスがない変数の読み出しや書きこみを、PE間通信手段28を使用してPE31と通信し、変数の実体があるメモリ34に対して行うものである。このため、PE31にはこれに呼応して実際にメモリ34に対してその変数のアクセスを行うプログラムが必要となる。
【0048】
さらに、メモリ29にはPrefetch abort時割込処理格納領域46が設けられている。このPrefetch abort時割込処理格納領域46は、CPU27がメモリ29に実体のアドレスがない関数の呼び出しを行おうとしたときに、いわゆる例外処理の一種である、割込みで実行する処理を格納する領域である。
【0049】
Prefetch abort時割込処理格納領域46に格納される割込み処理は、割り込みの原因となった、メモリ29に実体のアドレスがない関数の呼び出しを、PE間通信手段28を使用してPE31と通信し、関数の実体があるメモリ34に対して行うものである。このため、PE31にはこれに呼応して実際にメモリ34に対してその関数の呼び出しを行い、実行するプログラムが必要となる。
【0050】
なお、Data abort時割込処理格納領域45やPrefetch abort時割込処理格納領域46に格納される割込み処理は予めプログラミングして不揮発性メモリ30に記憶しておき、実行時にメモリ29に展開するようにしてもよい。また、Data abort時割込処理格納領域45やPrefetch abort時割込処理格納領域46はCPU27内に設けてもよい。
【0051】
図9は、図6に示した実行形式ファイル6bがPE31のメモリ34に展開された状態を示す図である。
【0052】
本実施の形態では、図9に示すように、実行形式ファイル6bは、関数J、関数K、変数L、変数M、変数N、変数Oおよび変数Pの実体を有し、それぞれがメモリ34のアドレス空間に展開される。
【0053】
また、メモリ34にはData abort時割込処理格納領域50が設けられている。このData abort時割込処理格納領域50は、CPU32がメモリ34に実体のアドレスがない変数の読み出しや書きこみを行おうとしたときに、いわゆる例外処理の一種である、割込みで実行する処理を格納する領域である。
【0054】
Data abort時割込処理格納領域50に格納される割込み処理は、割り込みの原因となった、メモリ34に実体のアドレスがない変数の読み出しや書きこみを、PE間通信手段33を使用してPE26と通信し、変数の実体があるメモリ29に対して行うものである。このため、PE26にはこれに呼応して実際にメモリ29に対してその変数のアクセスを行うプログラムが必要となる。
【0055】
さらに、メモリ34にはPrefetch abort時割込処理格納領域51が設けられている。このPrefetch abort時割込処理格納領域51は、CPU32がメモリ34に実体のアドレスがない関数の呼び出しを行おうとしたときに、いわゆる例外処理の一種である、割込みで実行する処理を格納する領域である。
【0056】
Prefetch abort時割込処理格納領域51に格納される割込み処理は、割り込みの原因となった、メモリ34に実体のアドレスがない関数の呼び出しを、PE間通信手段33を使用してPE26と通信し、関数の実体があるメモリ29に対して行うものである。このため、PE26にはこれに呼応して実際にメモリ29に対してその関数の呼び出しを行い、実行するプログラムが必要となる。
【0057】
なお、Data abort時割込処理格納領域50やPrefetch abort時割込処理格納領域51に格納される割込み処理は予めプログラミングして不揮発性メモリ35に記憶しておき、実行時にメモリ34に展開するようにしてもよい。また、Data abort時割込処理格納領域45やPrefetch abort時割込処理格納領域46はCPU27内に設けてもよい。
【0058】
ここで、上記のData abort時割込処理格納領域45やPrefetch abort時割込処理格納領域46やData abort時割込処理格納領域50やPrefetch abort時割込処理格納領域51に格納される割込み処理であるabort時処理についてさらに説明する。
【0059】
図10は、本実施の形態におけるabort時処理のフローチャートを示す図である。
【0060】
各PEでは、実体が自分側にないアドレスに対するアクセス(データの読み出し、書きこみ、関数の呼び出し)要求があった場合、割込み処理が実行される。この割込み処理では、PE間通信を行い、自分以外のPEに対してアクセス要求の実行を依頼する(A−1)。依頼を受けたPEではその実体が自身にあればその依頼を実行し、必要に応じて実行結果を依頼元のPEに返す(A−2)。依頼元のPEでは割込み処理の完了により、割込み前の処理に復帰する(A−3)。
【0061】
なお、上述の実施の形態では、携帯電話機用の単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法について説明したが、本発明が携帯電話機用に限定されるものでないことはいうまでもない。
【0062】
以上説明したように本発明によれば、単一メモリ空間上で走行するソフトウエアをマルチプロセッサ上で動作させる場合、ソフト構造や論理を変更することなく、ソースファイル、オブジェクトファイル、ライブラリ等のソフトウエアの構成要素単位でプロセッサへの割り付けを考えればよいので、開発や検証の期間、およびそれら作業に要する費用を抑えることが可能となる。
【0063】
【発明の効果】
以上説明したように、本発明によれば、単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する際に、元となる単一プロセッサ用ソフトウェアプログラムの長所を生かしつつ、変換作業の手間を解消し、バグ発生のおそれも低減することができる、単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法を提供することができる。
【0064】
すなわち、本発明によれば、単一メモリ空間上で走行するソフトウエアをマルチプロセッサ上で動作させる場合、ソフト構造や論理を変更することなく、ソースファイル、オブジェクトファイル、ライブラリ等のソフトウエアの構成要素単位でプロセッサへの割り付けを考えればよいので、開発や検証の期間、およびそれら作業に要する費用を抑えることが可能となる。
【図面の簡単な説明】
【図1】本発明による単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法の一実施の形態を実行する装置の一例であるプログラム開発用端末装置の概要を示す外観図である。
【図2】図1に示したプログラム開発用端末装置10の内部構成を示すブロック図である。
【図3】本発明による単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法の一実施の形態によって生成された、マルチプロセッサ用ソフトウェアプログラムによって動作する装置の一例である携帯電話機の概要を示す外観図である。
【図4】図3に示した携帯電話機20の内部構成を示すブロック図である。
【図5】単一プロセッサ用ソフトウェアプログラムの実行形式ファイルを生成する手順を説明する図である。
【図6】マルチプロセッサ用ソフトウェアプログラムの実行形式ファイルを生成する手順を説明する図である。
【図7】本実施の形態によって生成されたマルチプロセッサ用ソフトウェアプログラムが割り当てられるアドレス空間を示す図であり、(a)は図4に示したPE26のメモリ29に実体があるメモリ空間を示す図であり、(b)は図4に示したPE31のメモリ34に実体があるメモリ空間を示す図であり、(c)は図4に示したPE26のCPU27やPE31のCPU32が取り扱う仮想的なメモリ空間を示す図である。
【図8】図6に示した実行形式ファイル6aがPE26のメモリ29に展開された状態を示す図である。
【図9】図6に示した実行形式ファイル6bがPE31のメモリ34に展開された状態を示す図である。
【図10】本実施の形態におけるabort時処理のフローチャートを示す図である。
【符号の説明】
1a〜1e ソースファイル
2 コンパイラ
3a〜3e オブジェクトファイル
4 リンカ
5、6a、6b 実行形式ファイル
10 プログラム開発用端末装置
11 CPU
12 記憶手段
13 入力手段
14 表示手段
20 携帯電話機
21 制御手段
22 送受信手段
23 アンテナ
26、31 PE
27、32 CPU
28、33 PE間通信手段
29、34 メモリ
30、35 不揮発性メモリ

Claims (7)

  1. 単一メモリ空間上で走行するソフトウエアをマルチプロセッサ上で動作させるための実行形式プログラムを生成する際、オブジェクトファイル単位で、各プロセッサへ割り当て、それぞれのプロセッサ毎に実行形式プログラムを生成することを特徴とする単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法。
  2. 各プロセッサが管理するメモリ空間に実装される前記実行形式プログラムは、プロセッサ間でアドレスが重複しないように配置されることを特徴とする請求項1に記載の単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法。
  3. 前記実行形式プログラムが走行中に、他のプロセッサが管理するメモリ空間上に配置された変数への参照が発生した場合、参照元のプロセッサが持つ例外処理を起動させることにより当該事象を検出し、適切なプロセッサへ参照要求し、参照要求されたプロセッサは変数を参照し、参照結果を参照元に返信し、参照元のプロセッサは、返信結果から変数参照命令をエミュレーション実行し、例外処理から次ぎの命令へ復帰することを特徴とする請求項1または2に記載の単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法。
  4. 前記実行形式プログラムが走行中に、他のプロセッサが管理するメモリ空間上に配置された変数への書きこみが発生した場合、書きこみ要求元のプロセッサが持つ例外処理を起動させることにより当該事象を検出し、適切なプロセッサへ書きこみ要求し、書きこみ要求されたプロセッサは変数に書きこみし、書きこみ要求元のプロセッサは、例外処理から次ぎの命令へ復帰することを特徴とする請求項1または2に記載の単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法。
  5. 前記実行形式プログラムが走行中に、他のプロセッサが管理するメモリ空間上に配置された関数の呼び出しが発生した場合、呼び出し要求元のプロセッサが持つ例外処理を起動させることにより当該事象を検出し、適切なプロセッサへ呼び出し要求し、呼び出し要求されたプロセッサは関数を呼び出し、呼び出し結果を呼び出し要求元に返信し、呼び出し要求元のプロセッサは、返信結果から関数呼び出し命令をエミュレーション実行し、例外処理から次ぎの命令へ復帰することを特徴とする請求項1または2に記載の単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法。
  6. 前記例外処理を介しての処理要求送信と該処理結果返信の通信を可能とするプロセッサ間通信を備えていることを特徴とする請求項3、4または5に記載の単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法。
  7. 請求項1ないし6のうちのいずれか1項に記載の変換する方法によって変換されたマルチプロセッサ用ソフトウェアプログラムを実装したことを特徴とする携帯電話機。
JP2003039059A 2003-02-18 2003-02-18 単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法 Pending JP2004252508A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2003039059A JP2004252508A (ja) 2003-02-18 2003-02-18 単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法
US10/780,225 US20040181784A1 (en) 2003-02-18 2004-02-17 Method of converting software program for single processor to software program for multiprocessor
CNB2004100055848A CN1267818C (zh) 2003-02-18 2004-02-18 将单处理器的软件程序转换为多处理器的软件程序的方法
EP04003671A EP1450254A3 (en) 2003-02-18 2004-02-18 Method of converting software program for single processor to software program for multiprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003039059A JP2004252508A (ja) 2003-02-18 2003-02-18 単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法

Publications (1)

Publication Number Publication Date
JP2004252508A true JP2004252508A (ja) 2004-09-09

Family

ID=32732908

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003039059A Pending JP2004252508A (ja) 2003-02-18 2003-02-18 単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法

Country Status (4)

Country Link
US (1) US20040181784A1 (ja)
EP (1) EP1450254A3 (ja)
JP (1) JP2004252508A (ja)
CN (1) CN1267818C (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9021430B2 (en) 2010-12-21 2015-04-28 Samsung Electronics Co., Ltd. Method of determining multimedia architectural pattern, and apparatus and method for transforming single-core based architecture to multi-core based architecture
JP2020519979A (ja) * 2017-05-12 2020-07-02 グーグル エルエルシー 設定可能な数のアクティブなコアを有する画像処理プロセッサおよびサポートする内部ネットワーク

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5119590B2 (ja) * 2005-11-10 2013-01-16 富士通セミコンダクター株式会社 マルチプロセッサを有するプロセッサ装置用のタスク分配プログラム及びタスク分配装置
JP5906325B2 (ja) * 2011-12-16 2016-04-20 インテル・コーポレーション トランザクションをサポートするコンピューターアーキテクチャにおけるコード特殊化のための例外を用いるプログラム及びコンピューティングデバイス
US10061609B2 (en) 2013-06-26 2018-08-28 Intel Corporation Method and system using exceptions for code specialization in a computer architecture that supports transactions

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01108638A (ja) * 1987-10-21 1989-04-25 Hitachi Ltd 並列化コンパイル方式
US5123094A (en) * 1990-01-26 1992-06-16 Apple Computer, Inc. Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
US5619680A (en) * 1994-11-25 1997-04-08 Berkovich; Semyon Methods and apparatus for concurrent execution of serial computing instructions using combinatorial architecture for program partitioning
US6360303B1 (en) * 1997-09-30 2002-03-19 Compaq Computer Corporation Partitioning memory shared by multiple processors of a distributed processing system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9021430B2 (en) 2010-12-21 2015-04-28 Samsung Electronics Co., Ltd. Method of determining multimedia architectural pattern, and apparatus and method for transforming single-core based architecture to multi-core based architecture
JP2020519979A (ja) * 2017-05-12 2020-07-02 グーグル エルエルシー 設定可能な数のアクティブなコアを有する画像処理プロセッサおよびサポートする内部ネットワーク

Also Published As

Publication number Publication date
EP1450254A3 (en) 2006-04-12
CN1523493A (zh) 2004-08-25
EP1450254A2 (en) 2004-08-25
CN1267818C (zh) 2006-08-02
US20040181784A1 (en) 2004-09-16

Similar Documents

Publication Publication Date Title
JP5934094B2 (ja) データ並列スレッドを有する処理論理の複数のプロセッサにわたるマッピング
JP6240745B2 (ja) 複数のハイパーバイザを実行するシステムおよび方法
CN106909441B (zh) 一种基于jvm的磁盘直接i/o访问的方法
Moyer Real World Multicore Embedded Systems
Eckert et al. Operating system concepts for reconfigurable computing: review and survey
JP2014501412A (ja) 拡張可能なデータ並列セマンティクス
JP5307133B2 (ja) デバイスエミュレーション支援装置、デバイスエミュレーション支援方法、デバイスエミュレーション支援回路及び情報処理装置
JP2013232215A (ja) 複数のタスクにわたる複数のオペレーティングシステム・サブプロセスの共有
US6684395B2 (en) Multiple image dynamic bind and load procedure for a multi-processor
US20070300210A1 (en) Compiling device, list vector area assignment optimization method, and computer-readable recording medium having compiler program recorded thereon
JP6326047B2 (ja) 集積回路型無線
JP2004252508A (ja) 単一プロセッサ用ソフトウェアプログラムをマルチプロセッサ用ソフトウェアプログラムに変換する方法
KR100735560B1 (ko) 가상 메모리를 제어하는 장치 및 방법
JP6495290B2 (ja) Ic無線装置
CN116360925A (zh) 一种半虚拟化实现方法、装置、设备及介质
CN114880076B (zh) 一种用户态虚拟机的动态映像文件的动态加载方法及装置
CN113791873B (zh) 一种虚拟机创建方法、计算设备及存储介质
JP4594889B2 (ja) 複数の処理装置を備えたシステム上で実行されるプログラムのトレース方法、および、複数の処理装置を備えたシステム
JP5293609B2 (ja) マルチプロセッサ並びにそのキャッシュ同期制御方法及びプログラム
JPH06202877A (ja) エミュレーション装置
JP4755371B2 (ja) 計算機システム
Marzi et al. Microkernel based real-time embedded operating systems efficiency improvement
Blinzer The Heterogeneous System Architecture: It's beyond the GPU.
JPWO2007088581A1 (ja) 共有メモリ型マルチプロセッサにおける手続き呼び出し方法、手続き呼び出しプログラムおよび記録媒体
TW201030622A (en) Paging instructions for a virtualization engine to local storage

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090623