(57)【要約】【課題】  複数の異なるアーキテクチャを持つマルチプロセッサシステムにおいて、プログラム実行のターンアラウンド時間を短縮することができる技術を提供することにある。【解決手段】  プロセッサ選択手段３２は、中間結果格納手段４に格納されている、プロセッサ１１がサブプログラム３１を実行することにより得た処理結果の値を参照し、その値がプロセッサ１１の実行時間がプロセッサ１２の実行時間より短くなる条件に合致していれば、サブプログラム３３ａをプロセッサ１１上で実行する。一方、中間結果格納手段４の値がプロセッサ１１の実行時間がプロセッサ１２の実行時間より短くなる条件に合致していなければ、プロセッサ１２を選択し、プロセッサ１２上でサブプログラム３３ｂを実行する。【選択図】  図１
2006277364.tif 000002
【特許請求の範囲】
【請求項１】
複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステム上で演算処理をおこなうプログラムの実行方法であって、
プログラム実行中に、所定のプロセッサが行なったプログラムの処理の中間結果を用いて、後続処理を最も高速に実行できるプロセッサを選択し、前記選択したプロセッサ上で後続処理の演算処理を行なわせることを特徴とするプログラム実行方法。
【請求項２】
複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステム上で、複数のサブプログラムから構成されるプログラムを実行するプログラム実行方法であって、
前記複数の異なるアーキテクチャのプロセッサのうち、所定プロセッサが実行したサブプログラムの処理結果に基づいて、前記所定プロセッサが実行したサブプログラムの次に実行するサブプログラムの処理を最も高速に実行できるプロセッサを、前記複数の異なるアーキテクチャのプロセッサから選択するステップと、
前記選択したプロセッサに、前記サブプログラムの次に実行するサブプログラムを実行させるステップと
を有することを特徴とするプログラム実行方法。
【請求項３】
プログラムの処理の中間結果、又はサブプログラムの処理結果の値に対応して、選択すべきプロセッサの条件を予め決定しておくことを特徴とする請求項１又は請求項２に記載のプログラム実行方法。
【請求項４】
複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステムであって、
前記複数の異なるアーキテクチャのプロセッサのうち、所定プロセッサのプログラムの処理の中間結果に基づいて、後続処理を最も高速に実行できるプロセッサを、前記複数の異なるアーキテクチャのプロセッサから選択し、前記選択したプロセッサ上で後続処理の演算処理を行なわせる選択手段を有することを特徴とするマルチプロセッサシステム。
【請求項５】
複数のサブプログラムから構成されるプログラムを実行する、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステムであって、
前記複数の異なるアーキテクチャのプロセッサのうち、所定プロセッサが実行したサブプログラムの処理結果に基づいて、前記所定プロセッサが実行したサブプログラムの次に実行するサブプログラムの処理を最も高速に実行できるプロセッサを、前記複数の異なるアーキテクチャのプロセッサから選択し、前記選択したプロセッサに、前記サブプログラムの次に実行するサブプログラムを実行させる選択手段を有することを特徴とするマルチプロセッサシステム。
【請求項６】
前記プログラムの処理の中間結果が格納される記憶手段を有することを特徴とする請求項４又は請求項５に記載のマルチプロセッサシステム。
【請求項７】
プログラムの処理の中間結果、又はサブプログラムの処理結果の値に対応して、選択すべきプロセッサの条件が記憶された記憶手段を有し、
前記選択手段は、プログラムの処理の中間結果、又はサブプログラムの処理結果を、前記記憶されている条件と比較し、条件に合致するプロセッサを選択する手段であることを特徴とする請求項４から請求項６のいずれかに記載のマルチプロセッサシステム。
【請求項８】
複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステムの演算処理を制御する制御プログラムであって、
前記制御プログラムは、前記マルチプロセッサシステムに、所定のプロセッサが行なった実行プログラムの処理の中間結果を用いて、前記実行プログラムの後続処理を最も高速に実行できるプロセッサを選択し、前記選択したプロセッサ上で後続処理の演算処理を行なわせる処理を実行させることを特徴とするマルチプロセッサシステムの制御プログラム。
【請求項９】
複数のサブプログラムから構成されるプログラムを、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステム上で実行させる際の制御プログラムであって、
前記制御プログラムは、前記マルチプロセッサシステムに、
前記複数の異なるアーキテクチャのプロセッサのうち、所定プロセッサが実行したサブプログラムの処理結果に基づいて、前記所定プロセッサが実行したサブプログラムの次に実行するサブプログラムの処理を最も高速に実行できるプロセッサを、前記複数の異なるアーキテクチャのプロセッサから選択する処理と、
前記選択したプロセッサに、前記サブプログラムの次に実行するサブプログラムを実行させる処理と
を実行させることを特徴とする制御プログラム。
【請求項１０】
前記制御プログラムは、前記マルチプロセッサシステムに、プログラムの処理の中間結果、又はサブプログラムの処理結果を、予め記憶されている、プログラムの処理の中間結果、又はサブプログラムの処理結果の値に対応して選択すべきプロセッサの条件と比較し、条件に合致するプロセッサを選択する処理を実行させることを特徴とする請求項８又は請求項９に記載の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラムの実行方法とマルチプロセッサシステム及びその制御プログラムとに関し、特に、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステム上で高速にプログラムの演算処理を行なうことのできるプログラムの実行方法と、マルチプロセッサシステム及びその制御プログラムとに関する。
【背景技術】
【０００２】
複数のデータに対して同一の演算を連続して行う処理を１命令で非常に高速に実行するベクトルプロセッサのように、一般的な汎用プロセッサのほかに、特定の処理を高速に実行することを目的としたアーキテクチャをもつプロセッサが存在する。このようなプロセッサと一般的な汎用プロセッサといった異なるアーキテクチャをもつプロセッサを組み合わせて、プログラムの処理を実行するマルチプロセッサシステムがある。
【０００３】
このマルチプロセッサシステムにおけるプログラムの実行方法が、特許文献１に開示されている。
【０００４】
この従来のプログラムの実行方法は、次のように動作する。
【０００５】
プログラムが開始されると、システムを構成する、異なるアーキテクチャをもつどのプロセッサでも実行可能なオブジェクトコードが実行され、このプログラムが動作しているプロセッサの識別情報が格納されている主記憶領域を参照し、その識別情報によって、プロセッサごとに用意されたプロセッサ固有のオブジェクトコードを実行する。
【特許文献１】特公平７−５２４３６号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、この従来のプログラム実行方法は、プログラムが最初にロードされたプロセッサを使用して最後まで処理を行うことしかできないため、同じ処理をより短時間で処理できる別のプロセッサが存在しても、そのプロセッサを利用して、プログラムのターンアラウンド時間を短縮することができないという課題があった。
【０００７】
また、上述したベクトルプロセッサのように、一度に多数のデータを処理する命令は、実際の演算を開始するまでの立ち上がり時間が一般的な汎用プロセッサの命令より長くかかるため、処理するデータの数があるしきい値より小さい場合、一般的な汎用プロセッサで、個々のデータを複数命令繰り返して処理するより実行時間が長くなってしまう。
【０００８】
処理するデータ数がプログラムの実行を開始する前に決定できる場合は、実行時間が最も短くなるプロセッサを選択してプログラムの実行を行なうことで、ターンアラウンド時間を短縮することができるが、処理するデータ数がプログラムの処理の途中で決定されるような場合は、最適なプロセッサを選択できないという課題もあった。
【０００９】
そこで、本発明は上記課題に鑑みて発明されたものであって、複数の異なるアーキテクチャを持つマルチプロセッサシステムにおいて、プログラム実行のターンアラウンド時間を短縮することができるプログラムの実行方法と、マルチプロセッサシステム及びその制御プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決する第１の発明は、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステム上で演算処理をおこなうプログラムの実行方法であって、プログラム実行中に、所定のプロセッサが行なったプログラムの処理の中間結果を用いて、後続処理を最も高速に実行できるプロセッサを選択し、前記選択したプロセッサ上で後続処理の演算処理を行なわせることを特徴とする。
【００１１】
上記課題を解決する第２の発明は、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステム上で、複数のサブプログラムから構成されるプログラムを実行するプログラム実行方法であって、前記複数の異なるアーキテクチャのプロセッサのうち、所定プロセッサが実行したサブプログラムの処理結果に基づいて、前記所定プロセッサが実行したサブプログラムの次に実行するサブプログラムの処理を最も高速に実行できるプロセッサを、前記複数の異なるアーキテクチャのプロセッサから選択するステップと、前記選択したプロセッサに、前記サブプログラムの次に実行するサブプログラムを実行させるステップとを有することを特徴とする。
【００１２】
上記課題を解決する第３の発明は、上記第１の発明又は第２の発明において、プログラムの処理の中間結果、又はサブプログラムの処理結果の値に対応して、選択すべきプロセッサの条件を予め決定しておくことを特徴とする。
【００１３】
上記課題を解決する第４の発明は、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステムであって、前記複数の異なるアーキテクチャのプロセッサのうち、所定プロセッサのプログラムの処理の中間結果に基づいて、後続処理を最も高速に実行できるプロセッサを、前記複数の異なるアーキテクチャのプロセッサから選択し、前記選択したプロセッサ上で後続処理の演算処理を行なわせる選択手段を有することを特徴とする。
【００１４】
上記課題を解決する第５の発明は、複数のサブプログラムから構成されるプログラムを実行する、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステムであって、前記複数の異なるアーキテクチャのプロセッサのうち、所定プロセッサが実行したサブプログラムの処理結果に基づいて、前記所定プロセッサが実行したサブプログラムの次に実行するサブプログラムの処理を最も高速に実行できるプロセッサを、前記複数の異なるアーキテクチャのプロセッサから選択し、前記選択したプロセッサに、前記サブプログラムの次に実行するサブプログラムを実行させる選択手段を有することを特徴とする。
【００１５】
上記課題を解決する第６の発明は、上記第４の発明又は第５の発明において、前記プログラムの処理の中間結果が格納される記憶手段を有することを特徴とする。
【００１６】
上記課題を解決する第７の発明は、上記第４から第６の発明のいずれかにおいて、プログラムの処理の中間結果、又はサブプログラムの処理結果の値に対応して、選択すべきプロセッサの条件が記憶された記憶手段を有し、前記選択手段は、プログラムの処理の中間結果、又はサブプログラムの処理結果を、前記記憶されている条件と比較し、条件に合致するプロセッサを選択する手段であることを特徴とする。
【００１７】
上記課題を解決する第８の発明は、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステムの演算処理を制御する制御プログラムであって、前記制御プログラムは、前記マルチプロセッサシステムに、所定のプロセッサが行なった実行プログラムの処理の中間結果を用いて、前記実行プログラムの後続処理を最も高速に実行できるプロセッサを選択し、前記選択したプロセッサ上で後続処理の演算処理を行なわせる処理を実行させることを特徴とする。
【００１８】
上記課題を解決する第９の発明は、複数のサブプログラムから構成されるプログラムを、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステム上で実行させる際の制御プログラムであって、前記制御プログラムは、前記マルチプロセッサシステムに、前記複数の異なるアーキテクチャのプロセッサのうち、所定プロセッサが実行したサブプログラムの処理結果に基づいて、前記所定プロセッサが実行したサブプログラムの次に実行するサブプログラムの処理を最も高速に実行できるプロセッサを、前記複数の異なるアーキテクチャのプロセッサから選択する処理と、前記選択したプロセッサに、前記サブプログラムの次に実行するサブプログラムを実行させる処理とを実行させることを特徴とする。
【００１９】
上記課題を解決する第１０の発明は、上記第８の発明又は第９の発明において、前記制御プログラムは、前記マルチプロセッサシステムに、プログラムの処理の中間結果、又はサブプログラムの処理結果を、予め記憶されている、プログラムの処理の中間結果、又はサブプログラムの処理結果の値に対応して選択すべきプロセッサの条件と比較し、条件に合致するプロセッサを選択する処理を実行させることを特徴とする。
【００２０】
本発明の作用を説明すると、例えば、図１に示される如く、プログラム３は、プロセッサ１１上で動作するサブプログラム３１、サブプログラム３３ａ、サブプログラム３４およびプロセッサ選択手段３２と、サブプログラム３３ａと同等の処理をプロセッサ１２上で行なうサブプログラム３３ｂとを含む。
【００２１】
プロセッサ選択手段３２は、中間結果格納手段４に格納されている、プロセッサ１１がサブプログラム３１を実行することにより得た処理結果の値を参照し、その値がプロセッサ１１の実行時間がプロセッサ１２の実行時間より短くなる条件に合致していれば、サブプログラム３３ａをプロセッサ１１上で実行する。
【００２２】
一方、中間結果格納手段４の値がプロセッサ１１の実行時間がプロセッサ１２の実行時間より短くなる条件に合致していなければ、プロセッサ１２を選択し、プロセッサ１２上でサブプログラム３３ｂを実行する。
【発明の効果】
【００２３】
本発明は、複数の異なるアーキテクチャを持つマルチプロセッサシステムにおいて、プログラム実行のターンアラウンド時間を短縮できるという優れた効果を奏する。
【００２４】
その理由は、プログラム実行中に、処理の中間結果の値を用いて、後続処理を最も高速に実行できるプロセッサを選択し、そのプロセッサ上で該処理の演算処理を行なわせるためである。
【発明を実施するための最良の形態】
【００２５】
次に、本発明の実施の形態について、図面を参照して詳細に説明する。
【００２６】
図１は本発明の実施の形態の構成を示すブロック図である。
【００２７】
図１を参照すると、本発明のマルチプロセッサシステムは、プログラム制御により動作するアーキテクチャの異なる２個のプロセッサ１１及びプロセッサ１２（中央処理装置又はデータ処理装置）と、これらのプロセッサと結合された主記憶装置（メモリ）２と、主記憶装置（メモリ）２中に格納されるプログラム３及び中間結果格納手段４とから構成されている。
【００２８】
プログラム３は、サブプログラム３１と、サブプログラム３３ａと、サブプログラム３３ｂと、サブプログラム３４と、プロセッサ選択手段３２を機能させるプログラムとを含む。
【００２９】
サブプログラム３１、サブプログラム３３ａ、サブプログラム３４及びプロセッサ選択手段３２は、プロセッサ１１上で動作する。
【００３０】
サブプログラム３３ｂは、サブプログラム３３ａと同等の処理をプロセッサ１２上で行なわせるプログラムである。
【００３１】
上記プログラム３は、次のように動作する。
【００３２】
プログラム３が起動されると、サブプログラム３１は、プロセッサ１１上で実行され、中間結果の値を中間結果格納手段４に格納する。
【００３３】
プロセッサ選択手段３２は、中間結果格納手段４の値を参照し、その値がプロセッサ１１の実行時間がプロセッサ１２の実行時間より短くなる条件に合致していれば、プロセッサ１１を選択してサブプログラム３３ａをプロセッサ１１上で実行する。一方、中間結果格納手段４の値がプロセッサ１１の実行時間がプロセッサ１２の実行時間よりも長くなる条件に合致していなければ、プロセッサ１２を選択してサブプログラム３３ｂをプロセッサ１２上で実行する。
【００３４】
前記プロセッサ選択手段３２で選択されたサブプログラム３３ａ、又はサブプログラム３３ｂの実行が終了すると、サブプログラム３４がプロセッサ１１で実行される。
【００３５】
次に、図３のフローチャートを参照して本発明の実施の形態の動作について詳細に説明する。尚、サブプログラム３３ａ、及びサブプログラム３３ｂは、図２に示すＦｏｒｔｒａｎ言語で記述された処理を行なうものとする。
【００３６】
また、プロセッサ１１がサブプログラム３３ａを実行するのに必要な時間をＴ１（Ｎ）、プロセッサ１２がサブプログラム３３ｂを実行する時間をＴ２（Ｎ）とする。ここで、Ｎは図２のＤＯループの繰り返し数とする。Ｎは、サブプログラム３１の処理により決定されるものとする。さらに、Ｎ≦１０ならばＴ１（Ｎ）≦Ｔ２（Ｎ）が成り立つものとする。尚、この条件はプログラム３に記述されており、主記憶装置２に記憶されており、判断にあたってプロセッサ選択手段３２が適時利用するものとする。
【００３７】
まず、プログラム３が起動されると、サブプログラム３１がプロセッサ１１上で実行され、処理結果である決定されたＮの値が中間結果格納手段４に格納される（Ｓｔｅｐ  １００）。
【００３８】
次に、プロセッサ格納手段３２０は、中間結果格納手段４に格納されたＮの値を参照し（Ｓｔｅｐ  １０１）、その値がプロセッサ１１の実行時間Ｔ１（Ｎ）がプロセッサ１２の実行時間Ｔ２（Ｎ）より短くなる条件であるＮ＜１０に合致していれば（Ｓｔｅｐ  １０２）、サブプログラム３３ａをプロセッサ１１上で実行させる（Ｓｔｅｐ  １０３）。一方、Ｎ≧１０ならば、サブプログラム３３ｂをプロセッサ１２上で実行させる（Ｓｔｅｐ  １０４）。
【００３９】
サブプログラム３３ａ、又はサブプログラム３３ｂの処理が終了したら、サブプログラム３４がプロセッサ１１上で実行される（Ｓｔｅｐ  １０５）。
【００４０】
このように構成された実施の形態によれば、プロセッサ選択手段３２により、中間結果格納手段４を参照して、プロセッサ１１とプロセッサ１２とのうち、実行時間が短くなるプロセッサを選択して実行しているので、プログラムのターンアラウンド時間を短縮することができる。
【００４１】
次に、本発明の他の実施の形態を説明する。
【００４２】
図４は本発明の他の実施の形態の構成を示すブロック図である。
【００４３】
図４を参照すると、他の実施の形態におけるマルチプロセッサシステムは、プログラム制御により動作するアーキテクチャの異なるｎ個のプロセッサ（中央処理装置；データ処理装置）プロセッサ４１１ａ、プロセッサ４１１ｂ‥プロセッサ４１１ｎと、これらのプロセッサと結合された主記憶装置（メモリ）４２と、主記憶装置（メモリ）４２中に格納されるプログラム４３及び中間結果格納手段４４とから構成されている。
【００４４】
プログラム４３は、サブプログラム４３１と、ｎ個のサブプログラム４３３ａ、サブプログラム４３３ｂ‥サブプログラム４３３ｎと、サブプログラム４３４と、プロセッサ選択手段４３２を機能させるプログラムとを含む。
【００４５】
サブプログラム４３１、サブプログラム４３３ａ、サブプログラム４３４、及びプロセッサ選択手段４３２は、プロセッサ４１１ａ上で動作する。
【００４６】
サブプログラム４３３ｂはサブプログラム４３３ａと同等の処理がプロセッサ４１１ｂ上で、‥、サブプログラム４３３ｎはサブプログラム４３３ａと同等の処理がプロセッサ４１１ｎ上で行なわれる。
【００４７】
プログラム４３は、次のように動作する。
【００４８】
プログラム４３が起動されると、サブプログラム４３１は、プロセッサ４１１ａ上で実行され、中間結果の値を中間結果格納手段４４に格納する。
【００４９】
プロセッサ選択手段４３２は、中間結果格納手段４４の値を参照し、その値がプロセッサ４１１ａの実行時間が他のすべてのプロセッサの実行時間より短くなる条件に合致していれば、サブプログラム４３３ａをプロセッサ４１１ａ上で実行させる。
【００５０】
また、中間結果格納手段４４の値がプロセッサ４１１ｂの実行時間が他のすべてのプロセッサの実行時間より短くなる条件に合致していれば、サブプログラム４３３ｂをプロセッサ４１１ｂ上で実行させる。
【００５１】
同様に、プロセッサ４１１ｎの実行時間が他のすべてのプロセッサの実行時間より短くなる条件に合致していれば、サブプログラム４３３ｎをプロセッサ４１１ｎ上で実行させる。
【００５２】
プロセッサ選択手段４３２で選択されたサブプログラムの実行が終了すると、次にサブプログラム４３４がプロセッサ４１１ａ上で実行される。
【００５３】
このように、３個以上の異なるプロセッサから構成されるマルチプロセッサシステムにおいても、プロセッサ選択手段４３２において、最も実行時間が短いプロセッサを選択して処理を行うため、プログラムのターンアラウンド時間を短縮することができる。
【産業上の利用可能性】
【００５４】
本発明は、異なるプロセッサから構成されるマルチプロセッサシステム上で効率よく実行可能なプログラムを作成するといった用途に適用することができる。
【図面の簡単な説明】
【００５５】
【図１】図１は本発明の実施の形態の構成を示すブロック図である。
【図２】図２はサブプログラム３３ａ及びサブプログラム３３ｂの一例を示した図である。
【図３】図３は本発明の実施の形態の動作フローチャートである。
【図４】図４は本発明の他の実施の形態の構成を示すブロック図である。
【符号の説明】
【００５６】
２            主記憶装置
３            プログラム
４            中間結果格納手段
１１，１２    プロセッサ
３１          サブプログラム
３２          プロセッサ選択手段
３３ａ        サブプログラム
３３ｂ        サブプログラム
３４          サブプログラム
【図１】
2006277364.tif 000003
【図２】
2006277364.tif 000004
【図３】
2006277364.tif 000005
【図４】
2006277364.tif 000006